CF475D. CGCDSSQ
来源:互联网 发布:ubuntu 查看重启日志 编辑:程序博客网 时间:2024/06/07 22:53
同时打两场比赛果然是作死,都没有时间冷静的思考。
这个题大意是给你一行数,m个询问,每次输入x,询问w【L】到w【R】的所有数的gcd等于x的有多少对。
我们可以固定右端点,然后把之前得到的gcd值进行更新,而左端点的更新就在q.push_back(w[i]); num.push_back(1);
map的本质是一个pair,然后扫一下就可以了。
#include <iostream>#include <algorithm>#include <cstring>#include <cstdio>#include <vector>#include <map>#include <cmath>using namespace std;#define LL long longmap<int,int>myp;map<int,LL>ans;int n,w[110000],m;int gcd(int a,int b){ if(b==0) { return a; } return gcd(b,a%b);}map<int,int>::iterator it;void solve(){ vector<int>q,num; int u,v; for(int i=1;i<=n;i++) { q.clear(); num.clear(); for(it=myp.begin();it!=myp.end();it++) { u=it->first; v=it->second; ans[u]+=v; u=gcd(w[i],u); q.push_back(u); num.push_back(v); } myp.clear(); q.push_back(w[i]); num.push_back(1); for(int j=0;j<q.size();j++) { it=myp.find(q[j]); if(it==myp.end()) { myp[q[j]]=num[j]; } else { myp[q[j]]+=num[j]; } } } for(it=myp.begin(); it!=myp.end(); it++) { u=it->first; ans[u]+=it->second; } //printf("orz\n"); // system("pause"); scanf("%d",&m); int x; while(m--) { scanf("%d",&x); printf("%I64d\n",ans[x]); }}int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&w[i]); } solve(); return 0;}
0 0
- CF475D. CGCDSSQ
- Codeforces475D-CGCDSSQ
- 【codeforces】 475D CGCDSSQ
- Codeforce P471D CGCDSSQ
- rmq cf CGCDSSQ
- Codeforces 475 D. CGCDSSQ
- CodeForces 475D CGCDSSQ
- 【CODEFORCES】 D. CGCDSSQ
- CodeForces 475D CGCDSSQ
- codeforces475D——CGCDSSQ
- Codeforces457-D. CGCDSSQ
- [题解]codeforces475d CGCDSSQ
- CodeForces 475D CGCDSSQ RMQ
- Codeforces 475D CGCDSSQ 题解
- RMQ(ST表)的一些应用 CF475D&&CF386C
- CF - 475 - D. CGCDSSQ(枚举)
- codeforces 475D CGCDSSQ ST表+二分
- [Codeforces475D]CGCDSSQ(数学相关+二分)
- 工作周报三
- 【BZOJ】【P1951】【Sdoi2010】【古代猪文】【题解】【数论】
- POJ 3237 树链剖分
- [设计模式01]-单例模式
- Vuforia SDK---- Vuforia识别类型介绍
- CF475D. CGCDSSQ
- 扩展cxLookupComboBox,使其支持多列查询的cxLookupComboBoxEx
- JNI学习之一:怪异的JNI报错:Caused by: java.lang.UnsatisfiedLinkError
- java实现冒泡排序算法
- 一种简单实用的双向电平转换电路(非常实用!)3.3V--5V
- UVA - 10148 Advertisement
- OC语言description方法和sel
- Linux - 标准输入转换为标准输出 代码(C)
- 中国人出境旅游每秒花3万元