我只是想说对这种难度之题目就是是根据着20%底数暴力。我就想说当这种难度之题目就是是冲在20%的多少暴力。

我偏偏想说给这种难度的题材就是是冲着20%之数目暴力。。。

本身只是想说当这种难度之问题就是冲在20%的多寡暴力。。。

分数:40+20+36.1+38+0+19

分数:40+20+36.1+38+0+19

T1 签到题 III

T1 签到题 III

题目背景

pj组选手zzq近日学会了央最大公约数的辗转相除法。

问题背景

pj组选手zzq近日学会了央最大公约数的折腾相除法。

题材叙述

仿佛比较辗转相除法,zzq定义了一个竟然之函数:

typedef long long ll;
ll f(ll a,ll b)
{
    if(a==b) return 0;
    if(a>b) return f(a-b,b+b)+1;
    else return f(a+a,b-a)+1;
}

zzq定义完这个函数兴高采烈,随便输入了少单数,打算计算f值,发现此函数死循环了…于是zzq定义这个函数递归死循环的事态下f值为0。

今昔zzq输入了一个数n,想要求来图片 1

题目叙述

类比较辗转相除法,zzq定义了一个意料之外的函数:

typedef long long ll;
ll f(ll a,ll b)
{
    if(a==b) return 0;
    if(a>b) return f(a-b,b+b)+1;
    else return f(a+a,b-a)+1;
}

zzq定义完这函数兴高采烈,随便输入了个别独数,打算计算f值,发现这个函数死循环了…于是zzq定义这个函数递归死循环的状下f值为0。

现在zzq输入了一个数n,想求发出图片 2

输入输出格式

输入格式:

一样实践两单数n。

输出格式:

一行一个频图片 3

输入输出格式

输入格式:

平等实行两单数n。

出口格式:

一行一个屡次图片 4

输入输出样例

输入样例#1:

100

出口样例#1:

1124

输入样例#2:

2000

输出样例#2:

68204

输入输出样例

输入样例#1:

100

输出样例#1:

1124

输入样例#2:

2000

出口样例#2:

68204

说明

对于10%的数据,图片 5

对于40%的数据,图片 6

对于70%的数据,图片 7

对于100%的数据,图片 8

图片 9图片 10

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 using namespace std;
 5 typedef long long ll;
 6 ll i,j;
 7 int tot=0;
 8 int flag=0;
 9 inline ll f(ll a,ll b)
10 {
11     if(tot>10)
12     {
13         flag=1;
14         return 0;
15     }
16     if(a==b) return 0;
17     if(a>b) 
18     {
19         tot++;
20         return f(a-b,b+b)+1;
21     }
22     else 
23     {
24         tot++;
25         return f(a+a,b-a)+1;
26     }
27 }
28 int main()
29 {
30         ll n;
31         ll ans=0;
32         cin>>n;
33         for(i=1;i<=n;i++)
34         {
35             for(j=1;j<=n;j++)
36             {
37                 tot=0;
38                 flag=0;
39                 ll p=f(i,j);
40                 if(flag==1)continue;
41                 else
42                 ans=ans+p;
43             }
44         }    cout<<ans;        
45     return 0;
46 }

View Code

 

说明

对于10%的数据,图片 11

对于40%的数据,图片 12

对于70%的数据,图片 13

对于100%的数据,图片 14

图片 15图片 16

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 using namespace std;
 5 typedef long long ll;
 6 ll i,j;
 7 int tot=0;
 8 int flag=0;
 9 inline ll f(ll a,ll b)
10 {
11     if(tot>10)
12     {
13         flag=1;
14         return 0;
15     }
16     if(a==b) return 0;
17     if(a>b) 
18     {
19         tot++;
20         return f(a-b,b+b)+1;
21     }
22     else 
23     {
24         tot++;
25         return f(a+a,b-a)+1;
26     }
27 }
28 int main()
29 {
30         ll n;
31         ll ans=0;
32         cin>>n;
33         for(i=1;i<=n;i++)
34         {
35             for(j=1;j<=n;j++)
36             {
37                 tot=0;
38                 flag=0;
39                 ll p=f(i,j);
40                 if(flag==1)continue;
41                 else
42                 ans=ans+p;
43             }
44         }    cout<<ans;        
45     return 0;
46 }

View Code

 

T2 总统选举

T2 总统选举

题目背景

黑恶势力的反扑计划被小C成功摧毁,黑恶势力只好屈从。秋的国之人民解放了,举国欢庆。此时,原秋之国管为无能够守护好土地,申请辞去,并请求秋的国公民之大救星小C钦定下一样不管。作为一如既往叫作民主人士,小C决定召开公民大选来决定下一样任。为了要末段成为部之总人口获多数丁确认,小C认为,一个总人口必得到过全体人数总数的一半之票数才能够成为总统。如果非在符合条件的候选人,小C只好自己来当临时大统。为了尽量避免这种情况,小C决定先进行几不成稍圈圈预选,根据预选的景况,选民可以又决定自己选票的去向。由于秋的国人口较多,统计投票结果跟选票变更为改为了麻烦的工作,小C找到了公,让您拉他解决这个题材。

题目背景

黑恶势力的反攻计划为小C成功摧毁,黑恶势力只好屈从。秋之国之国民解放了,举国欢庆。此时,原秋之国总统为没能守护好土地,申请辞去,并告秋的国公民之百般救星小C钦定下同样无。作为同样称呼民主人士,小C决定做全民大选来控制下同样管。为了使末段变成部的食指拿走多数口肯定,小C看,一个丁要取得超过任何总人口总数的一半的票数才能够化部。如果未存符合条件的候选人,小C只好自己来当临时大统。为了尽可能避免这种景象,小C决定先进行几赖稍框框预选,根据预选的景,选民可以更决定自己选票的去向。由于秋之国人口比多,统计投票结果以及选票变更为化为了麻烦的事体,小C找到了卿,让您拉他解决这个题材。

题目叙述

成熟之国共有n个丁,分别编号为1,2,…,n,一开始每个人犹映射了平等票,范围1~n,表示支持对诺编号的人当总统。共有m次预选,每次选编号[li,ri]内的选民展开小圈圈预选,在该距离内得到过区间大小一半底宗底人数战胜,如果没丁战胜,则由小C钦定一位候选人获得本次预选的赢(获胜者可以无以拖欠区间内),每次预选的结果需公布出来,并且每次见面时有发生ki个人说了算用票改投向该次预选的获胜者。全部预选结束晚,公布最后变成总统的候选人。

题材叙述

熟之国共有n个人数,分别编号吧1,2,…,n,一开始每个人犹投了同一批,范围1~n,表示支持对承诺编号的人当总统。共有m次预选,每次选编号[li,ri]外的选民展开小框框预选,在拖欠距离内获得超过区间大小一半的批之人数战胜,如果无丁战胜,则由于小C钦定一各项候选人获得此次预选的制胜(获胜者可以免在拖欠区间内),每次预选的结果要公布出来,并且每次见面出ki个人决定以票改投向该次预选的获胜者。全部预选结束后,公布最后变成部之候选人。

输入输出格式

输入格式:

第一实行两个整数n,m,表示秋的国人口与预选次数。

其次行n独整数,分别代表编号1~n的选民投的票。

接通下去m行,每行先来4只整数,分别表示li,ri,si,ki,si代表若本次预选无人胜选,视作编号吧si的丁获得胜利,接下去ki个整数,分别代表决定改投的选民。

输出格式:

一道m+1行,前m行表示各次预选的结果,最后一行表示最终变成部之候选人,若最后准管人胜选,输出-1。

输入输出格式

输入格式:

第一尽两个整数n,m,表示秋的国人口与预选次数。

仲行n独整数,分别代表编号1~n的选民投的宗。

对接下去m行,每行先出4只整数,分别代表li,ri,si,ki,si代表只要本次预选无人胜选,视作编号为si的人头获得胜利,接下去ki个整数,分别代表决定改投的选民。

输出格式:

并m+1行,前m行表示各次预选的结果,最后一行表示最终变成部之候选人,若最后准管人胜选,输出-1。

输入输出样例

输入样例#1:

5 4
1 2 3 4 5
1 2 1 1 3
5 5 1 2 2 4
2 4 2 0
3 4 2 1 4

出口样例#1:

1
5
5
2
-1

输入输出样例

输入样例#1:

5 4
1 2 3 4 5
1 2 1 1 3
5 5 1 2 2 4
2 4 2 0
3 4 2 1 4

出口样例#1:

1
5
5
2
-1

说明

对于前20%的数据,图片 17

对于前40%的数据,图片 18图片 19

对于前50%的数据,图片 20图片 21

对此数据点6~7,保证所有选票始终以1~10之间。

对于100%的数据,图片 22图片 23图片 24图片 25

 

图片 26图片 27

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 using namespace std;
 5 const int MAXN=10001;
 6 int p;
 7 int n,m;
 8 int a[MAXN];
 9 int tou[MAXN];
10 int piaonow[MAXN];//记录每一个区间内人的得票数 
11 int main()
12 {
13     scanf("%d%d",&n,&m);
14     for(int i=1;i<=n;i++)
15     {
16         scanf("%d",&p);
17         a[p]++;
18         tou[i]=p;//第i个人投给了p个人    
19     }
20     for(int i=1;i<=m;i++)
21     {
22         memset(piaonow,0,sizeof(piaonow));
23         int l,r,s,k;
24         int flag=0;// 区间内没有人获胜
25         int where=-1; 
26         scanf("%d%d%d%d",&l,&r,&s,&k);
27         for(int j=l;j<=r;j++)
28         {
29             piaonow[tou[j]]++;
30         }
31         for(int j=l;j<=r;j++)
32             if(piaonow[tou[j]]>(r-l+1)/2)
33             {
34                 flag=1;//有人获胜 
35                 where=tou[j];
36                 break;
37             }
38         int to;// 将要改投谁 
39         if(flag==1)
40         to=where;
41         else to=s;
42         for(int j=1;j<=k;j++)
43         {
44             scanf("%d",&p);
45             a[tou[p]]--;
46             a[to]++;
47             tou[p]=to;
48         }
49         int maxn=-1;
50         printf("%d\n",to);
51     }
52     for(int i=1;i<=n;i++)
53     {
54         if(a[i]>(n/2))
55         {
56             printf("%d",a[i]);
57             return 0;
58         }
59     }
60     printf("-1");
61     return 0;
62 }

View Code

 

说明

对于前20%的数据,图片 28

对于前40%的数据,图片 29图片 30

对于前50%的数据,图片 31图片 32

于数据点6~7,保证拥有选票始终以1~10之间。

对于100%的数据,图片 33图片 34图片 35图片 36

 

图片 37图片 38

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 using namespace std;
 5 const int MAXN=10001;
 6 int p;
 7 int n,m;
 8 int a[MAXN];
 9 int tou[MAXN];
10 int piaonow[MAXN];//记录每一个区间内人的得票数 
11 int main()
12 {
13     scanf("%d%d",&n,&m);
14     for(int i=1;i<=n;i++)
15     {
16         scanf("%d",&p);
17         a[p]++;
18         tou[i]=p;//第i个人投给了p个人    
19     }
20     for(int i=1;i<=m;i++)
21     {
22         memset(piaonow,0,sizeof(piaonow));
23         int l,r,s,k;
24         int flag=0;// 区间内没有人获胜
25         int where=-1; 
26         scanf("%d%d%d%d",&l,&r,&s,&k);
27         for(int j=l;j<=r;j++)
28         {
29             piaonow[tou[j]]++;
30         }
31         for(int j=l;j<=r;j++)
32             if(piaonow[tou[j]]>(r-l+1)/2)
33             {
34                 flag=1;//有人获胜 
35                 where=tou[j];
36                 break;
37             }
38         int to;// 将要改投谁 
39         if(flag==1)
40         to=where;
41         else to=s;
42         for(int j=1;j<=k;j++)
43         {
44             scanf("%d",&p);
45             a[tou[p]]--;
46             a[to]++;
47             tou[p]=to;
48         }
49         int maxn=-1;
50         printf("%d\n",to);
51     }
52     for(int i=1;i<=n;i++)
53     {
54         if(a[i]>(n/2))
55         {
56             printf("%d",a[i]);
57             return 0;
58         }
59     }
60     printf("-1");
61     return 0;
62 }

View Code

 

T3 核心密码A

T3 核心密码A

题目背景

黑恶势力的营地被射线武器重创,小C带领ZAJANG人民志愿军乘胜追击,一路频战屡胜,打得敌人溃不成军。终于,小C的人马包围了受黑恶势力占领的熟之国首都,准备进行最后决战。

但黑恶势力也不是吃素的,黑恶势力的头目等秘密制定了一个反击计划,准备一定量天内顿时执行。可惜,小C研发的Very-Strong号信号监听器早已拿及时无异于音汇报给小C,并提供了隐秘截获的某一样黑恶势力头目电子密信中详尽的计划安排。黑恶势力阴险狡诈,密信中之计划经过了多再复杂的加密处理,小C以他研发的一样效完整的破密系统成功破解了90%之上的密码,破密系统提示而要继续破解密码,先使供几乎独复杂函数的测算方法,这自难以不倒小C,但以节省时间,身为小C助手的卿能否帮助他解决中一个简练的函数?

题材背景

黑恶势力的驻地被射线武器重创,小C带领ZAJANG人民志愿军乘胜追击,一路往往战屡胜,打得敌人溃不成军。终于,小C的部队包围了给黑恶势力占领的成熟的国首都,准备开展最后决战。

但是黑恶势力也未是素食的,黑恶势力的领导干部等秘密制定了一个反击计划,准备简单上内立即实施。可惜,小C研发的Very-Strong号信号监听器早已用随即等同音讯汇报给小C,并提供了私截获的某个同黑恶势力头目电子密信中详尽的计划部署。黑恶势力阴险狡诈,密信中之计划经过了差不多更复杂的加密处理,小C以他研发的同等仿完整的破密系统成功破解了90%上述的密码,破密系统提示而使累破解密码,先使供几乎个复杂函数的乘除办法,这自然难以休倒小C,但为节省时间,身为小C助手的君能否帮忙他解决之中一个粗略的函数?

题材叙述

令g(n)表示n能表示成几种植不同的毕k次方数(k>1),求图片 39

例如,图片 40,所以g(64)=3。

题材叙述

令g(n)表示n能表示成几栽不同的毕k次方数(k>1),求图片 41

例如,图片 42,所以g(64)=3。

输入输出格式

输入格式:

多组询问,第一实践一个整数T表示了解组数。

搭下T行,每行一个平头n,表示询问f(n)。

出口格式:

T行,每行一个实数,表示f(n),保留八位小数。

出于精度误差,你的答案和标准答案差之断然值当图片 43内即可通过

输入输出格式

输入格式:

多组询问,第一行一个整数T表示了解组数。

连通下T行,每行一个整数n,表示询问f(n)。

出口格式:

T行,每行一个实数,表示f(n),保留八号小数。

由精度误差,你的答案和标准答案差之绝对化值在图片 44里即可通过

输入输出样例

输入样例#1:

2
5
15

输出样例#1:

0.25000000
0.48611111

输入输出样例

输入样例#1:

2
5
15

输出样例#1:

0.25000000
0.48611111

说明

对于20%的数据,图片 45

对于40%的数据,图片 46图片 47

对于100%的数据,图片 48图片 49

图片 50图片 51

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<map>
 5 using namespace std;
 6 int n;
 7 double ans;
 8 int x;
 9 map<double,int>ma;
10 int main()
11 {
12     for(int i=2;i<=1000;i++)
13         for(int j=2;j<=1000;j++)
14             ma[pow(i,j)]++;
15     cin>>n;
16     for(int i=0;i<n;i++)
17     {
18         cin>>x;
19         for(int i=2;i<=x;i++)
20             ans+=ma[i]*1.0000/i;
21         printf("%.8lf\n",ans);
22         ans=0;
23     }
24     return 0;
25 }

View Code

 

 

说明

对于20%的数据,图片 52

对于40%的数据,图片 53图片 54

对于100%的数据,图片 55图片 56

图片 57图片 58

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<map>
 5 using namespace std;
 6 int n;
 7 double ans;
 8 int x;
 9 map<double,int>ma;
10 int main()
11 {
12     for(int i=2;i<=1000;i++)
13         for(int j=2;j<=1000;j++)
14             ma[pow(i,j)]++;
15     cin>>n;
16     for(int i=0;i<n;i++)
17     {
18         cin>>x;
19         for(int i=2;i<=x;i++)
20             ans+=ma[i]*1.0000/i;
21         printf("%.8lf\n",ans);
22         ans=0;
23     }
24     return 0;
25 }

View Code

 

 

T4 核心密码B

T4 核心密码B

问题背景

懒得拷题目背景了,参见核心密码A…

吁留心少鸣题的唯一差别。

题目背景

无意拷题目背景了,参见核心密码A…

伸手小心少道题之绝无仅有差别。

问题叙述

令g(n)表示n能表示成几栽不同之完全k次方数(k>1),求图片 59

例如,图片 60,所以g(64)=3。

题目叙述

令g(n)表示n能表示成几种不同的了k次方数(k>1),求图片 61

例如,图片 62,所以g(64)=3。

输入输出格式

输入格式:

多组询问,第一尽一个整数T表示了解组数。

连通下去T行,每行一个平头n,表示询问f(n)。

输出格式:

T行,每行一个实数,表示f(n),保留十四个小数。

鉴于精度误差,你的答案和标准答案差的断值当图片 63以内即可通过

输入输出格式

输入格式:

多组询问,第一履行一个整数T表示了解组数。

接通下去T行,每行一个平头n,表示询问f(n)。

输出格式:

T行,每行一个实数,表示f(n),保留十四个小数。

由于精度误差,你的答案和标准答案差的断值当图片 64中即可通过

输入输出样例

输入样例#1:

2
5
15

出口样例#1:

0.25000000000000
0.48611111111111

输入输出样例

输入样例#1:

2
5
15

出口样例#1:

0.25000000000000
0.48611111111111

说明

对于20%的数据,图片 65

对于40%的数据,图片 66图片 67

对于100%的数据,图片 68图片 69

图片 70图片 71

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<map>
 5 using namespace std;
 6 int n;
 7 double ans;
 8 int x;
 9 map<double,int>ma;
10 int main()
11 {
12     for(int i=2;i<=1000;i++)
13         for(int j=2;j<=1000;j++)
14             ma[pow(i,j)]++;
15     cin>>n;
16     for(int i=0;i<n;i++)
17     {
18         cin>>x;
19         for(int i=2;i<=x;i++)
20             ans+=ma[i]*1.0000/i;
21         printf("%.14lf\n",ans);
22         ans=0;
23     }
24     return 0;
25 }

View Code

 

说明

对于20%的数据,图片 72

对于40%的数据,图片 73图片 74

对于100%的数据,图片 75图片 76

图片 77图片 78

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<map>
 5 using namespace std;
 6 int n;
 7 double ans;
 8 int x;
 9 map<double,int>ma;
10 int main()
11 {
12     for(int i=2;i<=1000;i++)
13         for(int j=2;j<=1000;j++)
14             ma[pow(i,j)]++;
15     cin>>n;
16     for(int i=0;i<n;i++)
17     {
18         cin>>x;
19         for(int i=2;i<=x;i++)
20             ans+=ma[i]*1.0000/i;
21         printf("%.14lf\n",ans);
22         ans=0;
23     }
24     return 0;
25 }

View Code

 

T4345 简单的数学题

T4345 简单的数学题

问题叙述

鉴于出题人懒得写背景了,题目或者略一接触好。

输入一个整数n和一个平头p,你要求出图片 79,其中gcd(a,b)表示a与b的最大公约数。

刚才题面打错了,已修改

题目叙述

由出题人懒得写背景了,题目或者简单一触及好。

输入一个整数n和一个整数p,你用求出图片 80,其中gcd(a,b)表示a与b的最大公约数。

顷题面打错了,已修改

输入输出格式

输入格式:

平等实施两独整数p、n。

输出格式:

一行一个平头图片 81

输入输出格式

输入格式:

相同行两单整数p、n。

出口格式:

一行一个整数图片 82

输入输出样例

输入样例#1:

998244353 2000

出口样例#1:

883968974

输入输出样例

输入样例#1:

998244353 2000

出口样例#1:

883968974

说明

对于20%的数据,图片 83

对于30%的数据,图片 84

对于60%的数据,图片 85,时限1s。

于另外20%底多寡,图片 86,时限3s。

对此最后20%之数量,图片 87,时限6s。

对于100%的数据,图片 88且p为质数。

图片 89图片 90

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 using namespace std;
 5 typedef long long ll;
 6 ll i,j;
 7 int tot=0;
 8 int flag=0;
 9 ll mod;
10 ll p;
11 ll n;
12 ll ans=0;
13 int gcd(int x,int y)
14 {
15     if(y==0)return x;
16     else return gcd(y,x%y)%p;
17 }
18 int main()
19 {
20         cin>>p>>n;
21         for(i=1;i<=n;i++)
22             for(j=1;j<=n;j++)
23                 ans=(ans%p+(gcd(i,j)*i*j)%p)%p;
24         cout<<ans;
25     return 0;
26 }

View Code

 

 

赛后谢就非多说了,。。

暴力打之爽!!!

说明

对于20%的数据,图片 91

对于30%的数据,图片 92

对于60%的数据,图片 93,时限1s。

对另外20%的多少,图片 94,时限3s。

于最后20%底数据,图片 95,时限6s。

对于100%的数据,图片 96且p为质数。

图片 97图片 98

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 using namespace std;
 5 typedef long long ll;
 6 ll i,j;
 7 int tot=0;
 8 int flag=0;
 9 ll mod;
10 ll p;
11 ll n;
12 ll ans=0;
13 int gcd(int x,int y)
14 {
15     if(y==0)return x;
16     else return gcd(y,x%y)%p;
17 }
18 int main()
19 {
20         cin>>p>>n;
21         for(i=1;i<=n;i++)
22             for(j=1;j<=n;j++)
23                 ans=(ans%p+(gcd(i,j)*i*j)%p)%p;
24         cout<<ans;
25     return 0;
26 }

View Code

 

 

赛后感就是非多说了,。。

强力打之爽!!!

相关文章