当前位置: 首页 > news >正文

ps做网站页面期末网页设计学生作业代码

ps做网站页面,期末网页设计学生作业代码,百度竞价推广账户,wordpress照相馆主题各种操作o(╯□╰)o...不过都挺简单#xff0c;不需要lazy标记。 方法1#xff1a;块状链表 块状链表太强大了#xff0c;区间操作实现起来简单暴力#xff0c;效率比splay稍微慢一点#xff0c;内存开销小很多。 1 #include iostream2 #include cstring3…各种操作o(╯□╰)o...不过都挺简单不需要lazy标记。 方法1块状链表 块状链表太强大了区间操作实现起来简单暴力效率比splay稍微慢一点内存开销小很多。 1 #include iostream2 #include cstring3 #include cstdio4 using namespace std;5 6 const int N 900;7 const int LOW 260;8 const int UP 320;9 int sz[N];10 int next[N];11 int g[N][2];12 int n, m, ps, bl;13 14 struct B15 {16 int v, s;17 } b[N][N];18 19 int gcd( int x, int y )20 {21 if ( y ) return gcd( y, x % y );22 return x;23 }24 25 void update( int cur, int stu )26 {27 g[cur][stu] 0;28 for ( int i 0; i sz[cur]; i )29 {30 if ( b[cur][i].s stu )31 {32 g[cur][stu] gcd( g[cur][stu], b[cur][i].v );33 }34 }35 }36 37 void spilt( int cur )38 {39 int tmp next[cur];40 int ncur bl;41 next[cur] ncur;42 next[ncur] tmp;43 for ( int i sz[cur] / 2; i sz[cur]; i )44 {45 b[ncur][sz[ncur]] b[cur][i];46 }47 sz[cur] sz[cur] / 2;48 update( cur, 0 );49 update( cur, 1 );50 update( ncur, 0 );51 update( ncur, 1 );52 }53 54 void insert( int pos, int val, int stu )55 {56 int cur 0, p sz[cur];57 while ( p pos 1 next[cur] ! -1 )58 {59 cur next[cur];60 p sz[cur];61 }62 if ( p pos 1 )63 {64 pos p;65 }66 p - sz[cur];67 pos - p;68 for ( int j sz[cur] - 1; j pos; j-- )69 {70 b[cur][j 1] b[cur][j];71 }72 b[cur][pos].v val;73 b[cur][pos].s stu;74 sz[cur];75 if ( sz[cur] UP )76 {77 spilt(cur);78 }79 else80 {81 g[cur][stu] gcd( g[cur][stu], val );82 }83 }84 85 void remove( int pos )86 {87 int cur 0, p sz[cur];88 while ( p pos 1 next[cur] ! -1 )89 {90 cur next[cur];91 p sz[cur];92 } 93 if ( p pos 1 )94 {95 return ;96 }97 else98 {99 p - sz[cur]; 100 pos - p; 101 int tt b[cur][pos].s; 102 for ( int j pos; j sz[cur] - 1; j ) 103 { 104 b[cur][j] b[cur][j 1]; 105 } 106 sz[cur]--; 107 update( cur, tt ); 108 } 109 } 110 111 void reverse( int pos ) 112 { 113 int cur 0, p sz[cur]; 114 while ( p pos 1 next[cur] ! -1 ) 115 { 116 cur next[cur]; 117 p sz[cur]; 118 } 119 if ( p pos 1 ) 120 { 121 return ; 122 } 123 else 124 { 125 p - sz[cur]; 126 pos - p; 127 int tt b[cur][pos].s; 128 b[cur][pos].s ^ 1; 129 update( cur, tt ); 130 g[cur][tt ^ 1] gcd( g[cur][tt ^ 1], b[cur][pos].v ); 131 } 132 } 133 134 void modify( int pos, int val ) 135 { 136 int cur 0, p sz[cur]; 137 while ( p pos 1 next[cur] ! -1 ) 138 { 139 cur next[cur]; 140 p sz[cur]; 141 } 142 if ( p pos 1 ) 143 { 144 return ; 145 } 146 else 147 { 148 p - sz[cur]; 149 pos - p; 150 b[cur][pos].v val; 151 update( cur, b[cur][pos].s ); 152 } 153 } 154 155 int query( int l, int r, int stu ) 156 { 157 int cur 0, p sz[cur]; 158 while ( p l 1 next[cur] ! -1 ) 159 { 160 cur next[cur]; 161 p sz[cur]; 162 } 163 p - sz[cur]; 164 l - p; 165 int ncur 0, q sz[ncur]; 166 while ( q r 1 next[ncur] ! -1 ) 167 { 168 ncur next[ncur]; 169 q sz[ncur]; 170 } 171 q - sz[ncur]; 172 r - q; 173 int ans 0; 174 if ( cur ! ncur ) 175 { 176 for ( int i next[cur]; i ! ncur; i next[i] ) 177 { 178 if ( g[i][stu] 0 ) continue; 179 ans gcd( ans, g[i][stu] ); 180 } 181 for ( int j l; j sz[cur]; j ) 182 { 183 if ( b[cur][j].s stu ) 184 { 185 ans gcd( ans, b[cur][j].v ); 186 } 187 } 188 for ( int j 0; j r; j ) 189 { 190 if ( b[ncur][j].s stu ) 191 { 192 ans gcd( ans, b[ncur][j].v ); 193 } 194 } 195 } 196 else 197 { 198 for ( int j l; j r; j ) 199 { 200 if ( b[cur][j].s stu ) 201 { 202 ans gcd( ans, b[cur][j].v ); 203 } 204 } 205 } 206 if ( ans 0 ) ans -1; 207 return ans; 208 } 209 210 int main () 211 { 212 while ( scanf(%d%d, n, m) ! EOF ) 213 { 214 ps LOW; 215 memset( sz, 0, sizeof(sz) ); 216 memset( next, -1, sizeof(next) ); 217 memset( g, 0, sizeof(g) ); 218 for ( int i 0; i n; i ) 219 { 220 int la i / ps, lb i % ps; 221 scanf(%d%d, b[la][lb].v, b[la][lb].s); 222 } 223 int k 0; 224 while ( ( k 1 ) * ps n ) k; 225 for ( int i 0; i k; i ) 226 { 227 sz[i] ps; 228 next[i] i 1; 229 } 230 sz[k] n - k * ps; 231 for ( int i 0; i k; i ) 232 { 233 g[i][0] g[i][1] 0; 234 for ( int j 0; j sz[i]; j ) 235 { 236 int ss b[i][j].s; 237 g[i][ss] gcd( g[i][ss], b[i][j].v ); 238 } 239 } 240 bl k 1; 241 char op[2]; 242 int num1, num2, num3; 243 while ( m-- ) 244 { 245 scanf(%s, op); 246 if ( op[0] Q ) 247 { 248 scanf(%d%d%d, num1, num2, num3); 249 num1--; 250 num2--; 251 printf(%d\n, query( num1, num2, num3 )); 252 } 253 else if ( op[0] I ) 254 { 255 scanf(%d%d%d, num1, num2, num3); 256 insert( num1, num2, num3 ); 257 } 258 else if ( op[0] D ) 259 { 260 scanf(%d, num1); 261 num1--; 262 remove(num1); 263 } 264 else if ( op[0] R ) 265 { 266 scanf(%d, num1); 267 num1--; 268 reverse(num1); 269 } 270 else if ( op[0] M ) 271 { 272 scanf(%d%d, num1, num2); 273 num1--; 274 modify( num1, num2 ); 275 } 276 } 277 } 278 return 0; 279 } 方法2splay 写起来也不算特别长。 1 #include iostream2 #include cstring3 #include cstdio4 using namespace std;5 6 const int N 200002;7 int v[N];8 int s[N];9 int n, m;10 11 int gcd( int x, int y )12 {13 if ( y ) return gcd( y, x % y );14 return x;15 }16 17 struct Node 18 {19 Node * ch[2];20 int g[2];21 int val;22 int stu;23 int rank;24 int sz;25 26 int cmp( int x ) const 27 {28 if ( x rank ) return -1;29 return x rank ? 0 : 1;30 }31 32 void maintain()33 {34 sz rank 1;35 g[0] g[1] 0;36 g[stu] val;37 if ( ch[0] ! NULL )38 {39 sz ch[0]-sz;40 rank ch[0]-sz;41 if ( ch[0]-g[0] ) g[0] gcd( g[0], ch[0]-g[0] );42 if ( ch[0]-g[1] ) g[1] gcd( g[1], ch[0]-g[1] );43 }44 if ( ch[1] ! NULL )45 {46 sz ch[1]-sz;47 if ( ch[1]-g[0] ) g[0] gcd( g[0], ch[1]-g[0] );48 if ( ch[1]-g[1] ) g[1] gcd( g[1], ch[1]-g[1] );49 }50 }51 } * root;52 53 void rotate( Node * o, int d )54 {55 Node * k o-ch[d ^ 1];56 o-ch[d ^ 1] k-ch[d];57 k-ch[d] o;58 o-maintain();59 k-maintain();60 o k;61 }62 63 void splay( Node * o, int k )64 {65 int d o-cmp(k);66 if ( d ! -1 )67 {68 if ( d 1 ) k - o-rank;69 Node * p o-ch[d];70 int d2 p-cmp(k);71 if ( d2 ! -1 )72 {73 int k2 ( d2 0 ? k : k - p-rank ); 74 splay( p-ch[d2], k2 );75 if ( d d2 )76 {77 rotate( o, d ^ 1 );78 }79 else80 {81 rotate( o-ch[d], d );82 }83 }84 rotate( o, d ^ 1 );85 }86 }87 88 Node * build( int l, int r )89 {90 if ( l r ) return NULL;91 Node * o new Node();92 int mid ( l r ) 1;93 o-sz r - l 1;94 o-val v[mid];95 o-stu s[mid];96 o-rank mid - l 1;97 o-g[0] o-g[1] 0;98 o-g[o-stu] o-val;99 o-ch[0] build( l, mid - 1 ); 100 o-ch[1] build( mid 1, r ); 101 o-maintain(); 102 return o; 103 } 104 105 int query( int l, int r, int stu ) 106 { 107 splay( root, l ); 108 splay( root-ch[1], r - l 2 ); 109 return root-ch[1]-ch[0]-g[stu]; 110 } 111 112 void insert( int k, int vv, int ss ) 113 { 114 splay( root, k ); 115 splay( root-ch[1], 1 ); 116 Node * o root-ch[1]-ch[0]; 117 o new Node(); 118 o-sz o-rank 1; 119 o-g[0] o-g[1] 0; 120 o-val vv; 121 o-stu ss; 122 o-g[ss] vv; 123 root-ch[1]-maintain(); 124 root-maintain(); 125 } 126 127 void remove( int k ) 128 { 129 splay( root, k ); 130 splay( root-ch[1], 2 ); 131 root-ch[1]-ch[0] NULL; 132 root-ch[1]-maintain(); 133 root-maintain(); 134 } 135 136 void reverse( int k ) 137 { 138 splay( root, k ); 139 root-stu ^ 1; 140 root-maintain(); 141 } 142 143 void modify( int k, int vv ) 144 { 145 splay( root, k ); 146 root-val vv; 147 root-maintain(); 148 } 149 150 int main () 151 { 152 while ( scanf(%d%d, n, m) ! EOF ) 153 { 154 for ( int i 1; i n; i ) 155 { 156 scanf(%d%d, v i, s i); 157 } 158 root build( 0, n 1 ); 159 char cmd[11]; 160 int a, b, c; 161 while ( m-- ) 162 { 163 scanf(%s, cmd); 164 if ( cmd[0] Q ) 165 { 166 scanf(%d%d%d, a, b, c); 167 int tmp query( a, b, c ); 168 if ( !tmp ) tmp -1; 169 printf(%d\n, tmp); 170 } 171 else if ( cmd[0] I ) 172 { 173 scanf(%d%d%d, a, b, c); 174 a; 175 insert( a, b, c ); 176 } 177 else if ( cmd[0] D ) 178 { 179 scanf(%d, a); 180 remove(a); 181 } 182 else if ( cmd[0] R ) 183 { 184 scanf(%d, a); 185 a; 186 reverse(a); 187 } 188 else if ( cmd[0] M ) 189 { 190 scanf(%d%d, a, b); 191 a; 192 modify( a, b ); 193 } 194 } 195 } 196 return 0; 197 }  转载于:https://www.cnblogs.com/huoxiayu/p/4736490.html
http://www.sadfv.cn/news/264383/

相关文章:

  • 如何优化m网站福建设厅官方网站
  • 自己做提卡网站找人做网站一般要多少钱
  • 廊坊企业免费建站pacdora 设计网
  • 贵阳论坛网站建设怎样建立网站建设
  • 做零售去哪个外贸网站近期十大热点新闻
  • 提供常州网站建设公司有域名了怎么建设网站
  • 宁波专业建网站外包深圳网站制作公司兴田德润官方网站
  • 中国商标官方网站Wordpress修改主题默认头像
  • 网站建设提问网站后台怎么用ftp打开
  • 品牌做网站厦门建网站多少钱
  • 网站平台推广方案传统软件开发流程
  • 网站建设信息稿哪里有网站开发技术
  • Fastcgi做网站网站开发小程序开发
  • 台州快速建站公司wordpress多线程
  • 陕西有色建设有限公司网站百度竞价软件哪个好
  • 厦门市湖里区建设局网站免费网站备案号码
  • 行政审批局政务服务网站建设情况公司怎么申请企业邮箱
  • 凡科手机网站设置问题策划公司有哪些
  • 山西省这房和城乡建设厅网站网站建设工作要求
  • 昆山建设企业网站谷歌官方建站服务
  • 重庆网站建设方案产品软文范例800字
  • 宁波pc营销型网站制作网站建立的步骤是( )。
  • 免费ppypp网站搭建网站一般要多少钱
  • 自己模板做网站个人可做网站需要什么材料
  • 360免费建站官网笑话网站源码带wap
  • 做国外产品描述的网站dedecms做的网站如何上线
  • 项城市建设规划局网站wordpress摘要添加省略号
  • 创业做网站APP开发绍兴seo排名收费
  • 做视频网站怎么挣钱吗wordpress默认ssl
  • 惠州网站建设创业如何给自己开发的网站加域名