BestCoder Round #78 (div.1) CA Loves GCD
2016-04-02 22:56
232 查看
因子分解,然后把约数为1到1000的方案都求出来,比如约数为2的方案为2^(n个数中能被2整除的个数)-1,然后从1000到1逆推,推的过程要更更新小约数的值比如推完am[8]时,am[2],am[4],am[1]都要减去am[8](因为m个数的公约数为8时那公约数一定也为2和4,)逆推可以保证最大公约数。
这么水的题都要想很长时间我真是太渣了。。。
这么水的题都要想很长时间我真是太渣了。。。
#include<cstdio> #include<cstring> #define mod 100000007 int am[1005],as[1005]; long long ans; int main() { int n,t; scanf("%d",&t); while(t--) { ans = 0; memset(as,0,sizeof(as)); scanf("%d",&n); while(n--) { int a; scanf("%d",&a); for(int j=1;j<=a;j++) if(!(a%j))as[j]++; } for(int i=1;i<=1000;i++) { long long w = 1; for(int j=0;j<as[i];j++) { w*=2; w%=mod; } w-=1; w=(w%mod+mod)%mod; am[i] = w; } for(int i=1000;i>=1;i--) { ans=ans+((long long)am[i]*i)%mod; ans%=mod; for(int j=1;j<=i;j++) if(!(i%j)) { am[j]-=am[i]; am[j]=(am[j]%mod+mod)%mod; } } printf("%I64d\n",ans); } return 0; }
相关文章推荐
- [Asp.net 开发系列之SignalR篇]专题一:Asp.net SignalR快速入门
- Leetcode 146. LRU Cache
- Spring中的事务管理
- “扫码派”与“闪付派”的市场之争
- Z.ExtensionMethods 一个强大的开源扩展库
- 记录几次产品面试和笔试总结
- 二维数组中的查找
- 64位内存
- HIVE 新特性 ACID 初试
- fzu 2105 线段树经典题目
- bzoj 1407: [Noi2002]Savage
- mac配置java环境和maven环境
- dpdk & cpu affinity(cpu亲和性)
- 每天laravel-20160626|RetrievesMultipleKeys
- 每天laravel-20160626|RetrievesMultipleKeys
- 如何在ubuntu中通过串口访问开发板(如:树莓派)
- python抓取东方财富网股票的公告的里面的链接
- mysql 备份(直接拷贝数据文件)仅限myisam数据库可以
- log4j配置文件加载
- Rotate String 问题使用取余解法