前言
第一次codeforces,发现几个问题:
1,不知道选language,结果用C语言的GCC提交几次都complilation error(编译错误)
2,审题不清,由于全英,虽然我会逐个翻译不认识的单词,依然存在直译导致错误理解的情况
3,做了一个小时才知道前两题是签到题,就是有手就行,比如第一题,一开始以为数据量要求30位以上,
搞了半天写了个函数,以为要自己求出圆周率小数点后30位,结果一看double最多到小数点后18位,
最后才知道从样例粘贴复制
第一题Polycarp and The Day of Pi(圆周率日)
Problem - A - Codeforces
下面是中文翻译
签到题真的很简单,还是div3的签到题,本题逐个对照,不一样break就可以
#include<iostream>
#include<cstdio> //scanf()
using namespace std;
int main()
{
string s = "314159265358979323846264338327";
int n;
cin>>n;
while(n) {
string s1;
cin>>s1;
int ans = 0;
for(int i = 0; i < s1.size(); ++i) {
if(s1[i] != s[i]) break;
else ans++;
}
cout<<ans<<endl;
n--;
}
return 0;
}
第二题Taisia and Dice(太细亚和骰子)
问题 - B - 代码强制 (codeforces.com)
以下中文翻译
本题理解题意是关键,只求出一种可能的结果就行,不要求求所有可能
其次,要求一种可能,一个思路是,每次求最小的最大值m即可
#include<iostream>
using namespace std;
int main()
{
int N;
cin>>N;
while(N) {
int n, s, r;
cin>>n>>s>>r;
cout<<s - r<<" ";
n = n - 1;
while(n) {
int m;
if(r % n == 0)
m = r / n; //最小的最大值
else
m = r / n + 1;
cout<<m<<" ";
n--; r -= m;
}
cout<<endl;
N--;
}
return 0;
}
总结
第三题都没时间看了,第一次问题太多
真的做题做少了,没做过什么比赛,最近的CSDN周赛,洛谷入门赛,AcWing周赛,codeforces div3是我以赛促学的开始,当然4月初还有个蓝桥杯