博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Bayan 2015 Contest Warm Up D题:区间gcd为定值对数:循环思维技巧(pair+map)
阅读量:6871 次
发布时间:2019-06-26

本文共 903 字,大约阅读时间需要 3 分钟。

1 #include
2 #include
3 #include
4 #include
5 using namespace std; 6 map
ans; 7 pair
mp1[100005]; 8 pair
mp2[100005]; 9 int a[100005];10 int gcd(int x,int y)11 {12 if (y==0) return x;13 return gcd(y,x%y);14 }15 int main()16 {17 int n,i,j,pre=0,now,q,temp;18 scanf("%d",&n);19 for (i=1;i<=n;i++) scanf("%d",&a[i]);20 for (i=1;i<=n;i++)21 {22 now=1;23 mp2[now]=make_pair(a[i],1);24 for (j=1;j<=pre;j++)25 {26 temp=gcd(mp1[j].first,a[i]);27 if (mp2[now].first==temp) mp2[now].second+=mp1[j].second;28 else mp2[++now]=make_pair(temp,mp1[j].second);29 }30 pre=now;31 for (j=1;j<=now;j++) {32 mp1[j]=mp2[j];33 ans[mp1[j].first]+=mp1[j].second;34 }35 }36 scanf("%d",&q);37 while (q--)38 {39 scanf("%d",&j);40 printf("%I64d\n",ans[j]);41 }42 }

转载于:https://www.cnblogs.com/xiao-xin/articles/4012033.html

你可能感兴趣的文章
Java实现的基于socket的一次通信
查看>>
Form保存顺序
查看>>
[python]错误检测及异常处理try-except
查看>>
SharePoint 2010 "客户端不支持使用windows资源管理器打开此列表" 解决方法
查看>>
ZOJ-2913 Bus Pass---BFS进阶版
查看>>
合并排序(非哨兵方法)
查看>>
PHP 依赖管理神器 Composer 基本使用
查看>>
sass进阶篇
查看>>
为项目配置logback日志
查看>>
另外一种C#多选下拉框
查看>>
javascript中base64和Gzip的使用
查看>>
《大话西游》/月光宝盒/大圣取亲
查看>>
laravel创建资源路由控制器
查看>>
使用 Go 的 struct tag 来解析版本号字符串
查看>>
Objective-c——UI基础开发第十一天(UICollectionView)
查看>>
CentOS 7 搭建Jenkins+JDK+Git+Maven+Gradle持续集成系统
查看>>
yarn的 文件名、目录名或卷标语法不正确
查看>>
《C专家编程》笔记(四)——数组和指针并不相同
查看>>
最新工作环境整理遇到的一些问题。
查看>>
ip通信基础第七周(下)
查看>>