2015-02-25 15:32:50
小结:刷小号的场... (摸着黑在床上打... 脖子好酸QAQ)
A题坑... 被hack后没怎么搞,就先写了C和D,最后把A过了。
B题水,C题水,D题简单概率DP。
※... 然后靠C题long long hack两发...(小插曲:看到有人用perl写的C,不知道long long能不能hack,瞎hack一发失败了... QAQ)
※... 赛后补了E题,数学+贪心。
A:其实是个贪心... 随便写吧。
1 #include <cstdio> 2 #include <cstring> 3 #include <cstdlib> 4 #include <cmath> 5 #include <vector> 6 #include <map> 7 #include <set> 8 #include <stack> 9 #include <queue> 10 #include <string> 11 #include <iostream> 12 #include <algorithm> 13 using namespace std; 14 15 #define MEM(a,b) memset(a,b,sizeof(a)) 16 #define REP(i,n) for(int i=1;i<=(n);++i) 17 #define REV(i,n) for(int i=(n);i>=1;--i) 18 #define FOR(i,a,b) for(int i=(a);i<=(b);++i) 19 #define RFOR(i,a,b) for(int i=(a);i>=(b);--i) 20 #define getmid(l,r) ((l) + ((r) - (l)) / 2) 21 #define MP(a,b) make_pair(a,b) 22 23 typedef long long ll; 24 typedef pair<int,int> pii; 25 const int INF = (1 << 30) - 1; 26 27 string a,b,c; 28 29 int main(){ 30 cin >> a >> b; 31 int i,j; 32 for(i = 0; i < a.size(); ++i){ 33 if(b[i] > a[i]){ 34 break; 35 } 36 } 37 if(i >= a.size()){ 38 printf("No such string\n"); 39 return 0; 40 } 41 for(j = a.size() - 1; j > i; --j){ 42 if(a[j] < 'z'){ 43 c = a; 44 c[j] = a[j] + 1; 45 break; 46 } 47 if(b[j] > 'a'){ 48 c = b; 49 c[j] = b[j] - 1; 50 break; 51 } 52 } 53 if(j == i){ 54 if(b[i] - a[i] <= 1){ 55 printf("No such string\n"); 56 return 0; 57 } 58 c = a; 59 c[i] = a[i] + 1; 60 } 61 cout << c << endl; 62 return 0; 63 }