Codeforces Round #392 (Div. 2)
Posted Storm_Spirit
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Round #392 (Div. 2)相关的知识,希望对你有一定的参考价值。
突然觉得CF的题很锻炼代码能力和反应速度。。更加坚定了我在寒假要多打CF的决心。
AB都是大水题,直接跳过了。
C题,很简单的题目,不过感觉细节必须考虑清楚。WA了很多发才过,而且最终代码还很挫。。还特判了n是1和2的情况= =。。代码太挫了就不贴了。
D题,也是比较简单的贪心,不过感觉直接写for的话可能比较烦= =,借鉴了别人递归的写法,还是挺不错的。代码如下:
1 #include <stdio.h> 2 #include <algorithm> 3 #include <string.h> 4 #include <iostream> 5 using namespace std; 6 typedef long long ll; 7 8 ll base; 9 char s[100]; 10 ll solve(int r) 11 { 12 if(r == 0) return 0; 13 int l = r; 14 ll val = 0; 15 ll t = 1; 16 for(int i=r;i>=1&&t<base;i--,t*=10) 17 { 18 if(val+t*(s[i]-\'0\') < base) 19 { 20 if(s[i] != \'0\') l = i; 21 val = val + t*(s[i]-\'0\'); 22 } 23 else break; 24 } 25 return solve(l-1) * base + val; 26 } 27 28 int main() 29 { 30 cin >> base; 31 scanf("%s",s+1); 32 cout << solve(strlen(s+1)) << endl; 33 return 0; 34 }
还是要提高代码能力啊!
以上是关于Codeforces Round #392 (Div. 2)的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces Round #392 (Div. 2) F. Geometrical Progression
Codeforces Round #392 (Div. 2)
Codeforces Round #392 (Div. 2)
Codeforces Round #392 (div.2) E:Broken Tree