码迷,mamicode.com
首页 > 其他好文 > 详细

bzoj 2749: [HAOI2012]外星人

时间:2019-09-11 12:08:19      阅读:96      评论:0      收藏:0      [点我收藏+]

标签:lap   答案   break   表示   include   一个   closed   turn   图片   

Description

 

Input

 

Output

输出test行,每行一个整数,表示答案。

Sample Input

1
2
2 2
3 1

Sample Output

3

HINT

 

Test<=50 Pi<=10^5,1<=Q1<=10^9

 

技术图片
 1 #include<iostream>
 2 #include<cstdio>
 3 #define ll long long
 4 using namespace std;
 5  
 6 int m,n,cnt,f[100005],c[100005];
 7 void pfs(){
 8     int i,j; f[1]=1;
 9     for (i=2; i<=100000; i++){
10         if (!f[i]){ c[++cnt]=i; f[i]=f[i-1]; }
11         for (j=1; j<=cnt; j++){
12             if (i*c[j]>100000) break;
13             f[i*c[j]]=f[i]+f[c[j]];
14             if (!(i%c[j])) break;
15         }
16     }
17 }
18 int main(){
19     int cas; scanf("%d",&cas); pfs();
20     while (cas--){
21         scanf("%d",&n); int i,flag=1; ll ans=0;
22         for (i=1; i<=n; i++){
23             int x,y; scanf("%d%d",&x,&y);
24             flag&=x&1; ans+=(ll)f[x]*y;
25         }
26         printf("%lld\n",ans+(ll)flag);
27     }
28     return 0;
29 }
View Code

 

 

 

bzoj 2749: [HAOI2012]外星人

标签:lap   答案   break   表示   include   一个   closed   turn   图片   

原文地址:https://www.cnblogs.com/ZJXXCN/p/11505031.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!