CodeForces 664 C.International Olympiad(构造)
2017-08-28 23:28
435 查看
Description
给出一个数字的后缀,要求添加一些前缀使得该数字不小于1989且使得这个数字在之前没有被用过的情况下尽可能小
Input
第一行一个整数T表示用例组数,每组用例输入一个′′ IAO′ ′′+一个数字后缀,保证数字后缀长度不超过9位(1≤T≤1000)
Output
输出添加合法前缀后的数字
Sample Input
5
IAO’15
IAO’2015
IAO’1
IAO’9
IAO’0
Sample Output
2015
12015
1991
1989
1990
Solution
分别考虑后缀长度为1~9的情况,把区间分成若干块
1:1989~1998
2:1999~2098
3:2099~3098
4:3099~13098
5:13099~113098
6:113099~1113098
7:1113099~11113098
8:11113099~111113098
9:111113099~1111113098
然后根据不同的后缀输出对应的前缀即可
Code
给出一个数字的后缀,要求添加一些前缀使得该数字不小于1989且使得这个数字在之前没有被用过的情况下尽可能小
Input
第一行一个整数T表示用例组数,每组用例输入一个′′ IAO′ ′′+一个数字后缀,保证数字后缀长度不超过9位(1≤T≤1000)
Output
输出添加合法前缀后的数字
Sample Input
5
IAO’15
IAO’2015
IAO’1
IAO’9
IAO’0
Sample Output
2015
12015
1991
1989
1990
Solution
分别考虑后缀长度为1~9的情况,把区间分成若干块
1:1989~1998
2:1999~2098
3:2099~3098
4:3099~13098
5:13099~113098
6:113099~1113098
7:1113099~11113098
8:11113099~111113098
9:111113099~1111113098
然后根据不同的后缀输出对应的前缀即可
Code
#include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #include<cmath> #include<vector> #include<queue> #include<map> #include<set> #include<ctime> using namespace std; typedef long long ll; #define INF 0x3f3f3f3f string s,c[10]; //1 1989~1998 //2 1999~2098 //3 2099~3098 //4 3099~13098 //5 13099~113098 //6 113099~1113098 //7 1113099~11113098 //8 11113099~111113098 //9 111113099~1111113098 int main() { c[4]="3099",c[5]="13099",c[6]="113099",c[7]="1113099",c[8]="11113099",c[9]="111113099"; int T; cin>>T; while(T--) { cin>>s; s=s.substr(4); int n=s.length(); if(n==1) { if(s=="9")cout<<"1989"<<endl; else cout<<"199"<<s<<endl; } else if(n==2) { if(s=="99")cout<<"1999"<<endl; else cout<<"20"<<s<<endl; } else if(n==3) { if(s<="098")cout<<"3"<<s<<endl; else cout<<"2"<<s<<endl; } else { if(s>=c )cout<<s<<endl; else cout<<"1"<<s<<endl; } } return 0; }
相关文章推荐
- Codeforces Round #347 (Div. 2) B. Rebus (codeforces 664b) (构造)
- Codeforces - 715B. Complete The Graph - 构造最短路
- Codeforces 410C.Team[构造]
- 【Codeforces 756 D. Artsem and Saunders】+ 思维 + 构造
- Codeforces 827B. High Load 【构造】
- CodeForces 828C【构造】
- 【CodeForces】708 B. Recover the String 数学构造
- Codeforces 639B——Bear and Forgotten Tree 3——————【构造、树】
- Codeforces 862C(构造)
- CodeForces 9C -Hexadecimal's Numbers-构造
- CodeForces 669D 构造
- Codeforces 362C. Insertion Sort【构造】
- CodeForces - 828D High Load[构造+图]
- CodeForces 468A. 24 Game(数学构造)
- [构造] Codeforces 736E #382 (Div. 1) E. Chess Championship
- CodeForces 185A. Plant(矩阵快速幂) 构造
- CodeForces 673D - Bear and Two Paths(构造)
- CodeForces - 848A From Y to Y(构造)
- CodeForces 658C Bear and Forgotten Tree 3(构造)
- Codeforces 584A Olesya and Rodion 【构造】