打卡信奥刷题(3295)用C++实现信奥题 P9027 [CCC 2021 S5] Math Homework
P9027 [CCC 2021 S5] Math Homework题目描述构造一个长度为N NN的整数序列A AA使得∀ i 1 , 2 , ⋯ , N , 1 ≤ A i ≤ 10 9 \forall i1,2,\cdots,N,1\leq A_i\leq 10^9∀i1,2,⋯,N,1≤Ai≤109∀ i 1 , 2 , ⋯ , M , gcd ( A X i , A X i 1 , ⋯ , A Y i ) Z i \forall i1,2,\cdots,M,\gcd(A_{X_i},A_{X_i1},\cdots,A_{Y_i})Z_i∀i1,2,⋯,M,gcd(AXi,AXi1,⋯,AYi)Zi。或者报告无解。输入格式第一行N , M N,MN,M。接下来M MM行每行有X i , Y i , Z i X_i,Y_i,Z_iXi,Yi,Zi描述一个限制 2.输出格式一行序列A AA或者Impossible。输入输出样例 #1输入 #12 2 1 2 2 2 2 6输出 #14 6输入输出样例 #2输入 #22 2 1 2 2 2 2 5输出 #2Impossible说明/提示1 ≤ N ≤ 150000 , 1 ≤ M ≤ 150000 , 1 ≤ Z i ≤ 16 1\leq N\leq 150000,1\leq M\leq 150000,1\leq Z_i\leq 161≤N≤150000,1≤M≤150000,1≤Zi≤16译自 CCC2021 S5。spj 在附件里发现锅了请联系我。C实现#includeiostream#includecmath#defineintlonglongusingnamespacestd;ints[150005];intn,m;intst[150005][35];intlg[150005];//提前计算log2intgcd(intx,inty){if(y0)returnx;returngcd(y,x%y);}intlcm(intx,inty){intgggcd(x,y);returngg*(x/gg)*(y/gg);}inta[150005],b[150005],c[150005];intvis[150005][20];//桶signedmain(){ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);cinnm;for(inti1;in;i)s[i]1;for(inti1;im;i){cina[i]b[i]c[i];vis[a[i]][c[i]],vis[b[i]1][c[i]]--;//差分记录}for(inti1;in;i){for(intj1;j16;j){vis[i][j]vis[i-1][j];if(vis[i][j]0){//如果这个数存在过s[i]lcm(s[i],j);//求lcm}}st[i][0]s[i];//ST 表初始化}for(inti2;in;i){lg[i]lg[i1]1;}for(intj1;jlg[n];j){for(inti1;i(1j)-1n;i){st[i][j]gcd(st[i][j-1],st[i(1(j-1))][j-1]);//ST 表}}for(inti1;im;i){intla[i],rb[i];inttlg[r-l1];if(gcd(st[l][t],st[r-(1t)1][t])!c[i]){//查询return!(coutImpossible);}}for(inti1;in;i){couts[i] ;}return0;}后续接下来我会不断用C来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现记录日常的编程生活、比赛心得感兴趣的请关注我后续将继续分享相关内容
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2631668.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!