#include<iostream> using namespace std; long long f(long long n) { if (n < 20180001) return n + 2017; return f(f(n - 2018)); } int main() { long long n; cin >> n; cout << f(n) << endl; return 0; }
输入一个整数n。(1 ≤ n ≤ 10^18)
输出一个整数表示答案。
20182017
20182017
解题思路:暴力多试几组数据可以发现:当n<=20180000时,f(n)=n+2017;否则f(n)恒等于20182017。
AC代码:
1 #include<iostream> 2 using namespace std; 3 typedef long long LL;LL n; 4 int main(){ 5 while(cin>>n){ 6 if(n<20180001)cout<<n+2017<<endl; 7 else cout<<20182017<<endl; 8 } 9 return 0; 10 }
输入两个整数α和β,表示MWH和CSL的命中率。(0≤α,β≤100).
若MWH获胜的概率大,则输出"MWH"。 若CSL获胜的概率大,则输出"CSL",否则输出"equal"。
100 100
MWH
0 100
CSL
解题思路:这道题和cf上的一道题很类似,思路都是一样的,链接:B - Archer。简单说一下:如果先手第n场赢,那么前n-1场的概率如图所示,累加所有情况的概率即可(有点坑,比赛时多乘了一个后手失败的概率,导致一直WA,QAQ=_=||);如果后手第n场赢,那么要多乘上一个先手失败的概率,再累加所有情况的概率即可。同时还要注意,如果n==0&&m!=0,那么先手必败;如果n==100,m无论为何值,先手必赢;如果n==0&&m==0,那么两者赢的概率肯定相等。最后贴一下大佬的标程!!!
AC代码:
1 #include<bits/stdc++.h> 2 using namespace std; 3 int main(){ 4 int n,m; 5 while(cin>>n>>m){ 6 if(!n&&m)cout<<"CSL"<<endl; 7 else if(n==100)cout<<"MWH"<<endl; 8 else if(!n&&!m)cout<<"equal"<<endl; 9 else { 10 double x=n*0.01*(1/(1-(1-n*0.01)*(1-m*0.01))); 11 double y=m*0.01*(1-n*0.01)*(1/(1-(1-m*0.01)*(1-n*0.01))); 12 if(x>y)cout<<"MWH"<<endl; 13 else if(x<y)cout<<"CSL"<<endl; 14 else cout<<"equal"<<endl; 15 } 16 } 17 return 0; 18 }
输入两个整数n,m(1 ≤ n, m ≤ 10^9)
如果Applese能完成,输出"Yes",否则输出"No"。
10 7
No
解题思路:用1个硬币替换m个硬币,每次操作减少了m-1个,由于最终要合并为1个硬币,所以一共减少了n-1个,如果有k次操作使得减少的个数恰为n-1,即(n-1)%(m-1)==0,前提是m!=1,如果m为1,那么合并到最后永远都不会剩下1个硬币。如果m==1&&n==1,那么也符合情况。
AC代码:
1 #include<bits/stdc++.h> 2 using namespace std; 3 int main(){ 4 int n,m; 5 while(cin>>n>>m){ 6 cout<<(((n==1&&m==1)||(m!=1&&(n-1)%(m-1)==0))?"Yes":"No")<<endl; 7 } 8 return 0; 9 }
输入一个不含空格的字符串S(可能含有大小写字母,数字)。(1 ≤ |S| ≤ 100)
输出一个数字,表示"Bob"第一次出现的位置(下标从0开始)。
如果没有出现,则输出"-1"。
Bobob
0
bobby
0
BFS
-1
解题思路:
AC代码:
1 #include<iostream> 2 using namespace std; 3 string str; 4 int main(){ 5 while(cin>>str){ 6 for(int i=0;str[i];++i) 7 if(isupper(str[i]))str[i]+=32; 8 size_t pos=str.find("bob"); 9 if(pos!=string::npos)cout<<pos<<endl; 10 else cout<<-1<<endl; 11 } 12 return 0; 13 }
原文:https://www.cnblogs.com/acgoto/p/9653077.html