自己只想说面对这种难度的主题材料正是随着五分三的数量暴力

自己只想说面临这种难度的主题素材正是随着六成的数据暴力。。。

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

T1 签到题 III

难点背景

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

输入输出格式

输入格式:

一行五个数n。

出口格式:

一行贰个数图片 2

输入输出样例

输入样例#1:

100

出口样例#1:

1124

输入样例#2:

2000

输出样例#2:

68204

说明

对于10%的数据,图片 3

对于40%的数据,图片 4

对于70%的数据,图片 5

对于100%的数据,图片 6

图片 7图片 8

 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 总统公投

标题背景

黑恶势力的反击陈设被小C成功摧毁,黑恶势力只能坚守。秋之国的平民解放了,举国热闹。此时,原秋之国总理因未能守护好土地,申请辞职,并请秋之国全民的大救星小C钦命下一任。作为一名民主职员,小C决定举行公民众大选举来决定下一任。为了使末段成为总统的人拿走比比较多人认可,小C感到,壹位须求猎取超过一切人总的数量的八分之四的票的数量技巧形成总统。假使官样文章契合条件的候选人,小C只可以本人来当不经常大总统。为了尽只怕制止这种意况,小C决定先实行两遍小圈圈预选,遵照预选的情景,选民能够另行决定本身选票的去向。由于秋之国人数相当多,计算投票结果和选票改造也改为了麻烦的工作,小C找到了你,让您帮他消除这一个难点。

标题汇报

秋之国共有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。

输入输出样例

输入样例#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%的数据,图片 9

对于前40%的数据,图片 10图片 11

对于前50%的数据,图片 12图片 13

对于数分局6~7,保障具有选票始终在1~10之间。

对于100%的数据,图片 14图片 15图片 16图片 17

 

图片 18图片 19

 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

题目背景

黑恶势力的营地被射线火重视创,小C教导ZAJANG人民志愿军乘胜追击,一路屡战屡胜,打得敌人瓦解土崩。终于,小C的枪杆子包围了被黑恶势力占有的秋之国都城,筹划开展最终决战。

但黑恶势力亦非素食的,黑恶势力的头脑们秘密制订了二个反击安插,希图二日内立即实行。可惜,小C研究开发的Very-Strong号非非确定性信号监听器早就将这一新闻呈报给小C,并提供了地下截获的某一黑恶势力头目电子密信中详尽的安顿布置。黑恶势力阴险狡诈,密信中的布署经过了多种复杂的加密管理,小C利用她研究开发的一套完整的破密系统成功破解了八成以上的密码,破密系统提示若要继续破解密码,先要提供多少个复杂函数的总括方法,那自然难不倒小C,但为了节省时间,身为小C帮手的你是不是帮他消除当中一个简练的函数?

标题汇报

令g(n)表示n能表示成三种分歧的一心k次方数(k>1),求图片 20

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

输入输出格式

输入格式:

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

接下去T行,每行二个整数n,表示询问f(n)。

输出格式:

T行,每行多少个实数,表示f(n),保留柒人小数。

鉴于精度相对误差,你的答案和标准答案差的断然值在图片 22以内就能够通过

输入输出样例

输入样例#1:

2
5
15

输出样例#1:

0.25000000
0.48611111

说明

对于20%的数据,图片 23

对于40%的数据,图片 24图片 25

对于100%的数据,图片 26图片 27

图片 28图片 29

 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

难题背景

懒得拷标题背景了,参见大旨密码A…

请小心两道题的绝无仅分歧。

难题陈述

令g(n)表示n能表示成三种不一致的一丝一毫k次方数(k>1),求图片 30

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

输入输出格式

输入格式:

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

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

输出格式:

T行,每行二个实数,表示f(n),保留十肆人小数。

是因为精度标称误差,你的答案和规范答案差的断然值在图片 32以内就能够通过

输入输出样例

输入样例#1:

2
5
15

出口样例#1:

0.25000000000000
0.48611111111111

说明

对于20%的数据,图片 33

对于40%的数据,图片 34图片 35

对于100%的数据,图片 36图片 37

图片 38图片 39

 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 简单的数学题

主题材料叙述

是因为出题人懒得写背景了,标题恐怕轻松一点好。

输入贰个整数n和二个莫西干发型p,你须求求出图片 40,当中gcd(a,b)表示a与b的最大协议数。

刚刚题面打错了,已修改

输入输出格式

输入格式:

一行三个整数p、n。

出口格式:

一行一个整数图片 41

输入输出样例

输入样例#1:

998244353 2000

输出样例#1:

883968974

说明

对于20%的数据,图片 42

对于30%的数据,图片 43

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

对此别的伍分叁的数据,图片 45,时限3s。

对此最终25%的数额,图片 46,时限6s。

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

图片 48图片 49

 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

 

 

赛后感就十分的少说了,。。

暴力打地铁爽!!!

相关文章