您的位置:首页 > 其它

Codeforces Round #401 (Div. 2)解题报告

2017-02-24 22:00 585 查看
A - Shell Game

1 #include <iostream>
2 #include<bits/stdc++.h>
3 #include <stack>
4 #include <queue>
5 #include <map>
6 #include <set>
7 #include <cstdio>
8 #include <cstring>
9 #include <algorithm>
10 #include <math.h>
11 using namespace std;
12 typedef long long ll;
13 typedef unsigned long long ull;
14 const int MAX=5e5+5;
15 string x[MAX];
16 void change(string &a,string &b)//将a改变为小于b的最大字符串
17 {
18     int l,r,mid;
19     string tmp;
20     int an=0;
21     l=1;
22     r=a.size();
23     while(l<=r)
24     {
25         mid=(l+r)/2;
26         tmp=a.substr(0,mid);
27         if(tmp<=b)
28         {
29             l=mid+1;
30             an=mid;
31         }
32         else
33             r=mid-1;
34     }
35     a=a.substr(0,an);
36
37 }
38 int main()
39 {
40     int n;
41     int i;
42     cin>>n;
43     for(i=1;i<=n;i++)
44         cin>>x[i];
45     for(i=n-1;i>0;i--)
46         change(x[i],x[i+1]);
47     for(i=1;i<=n;i++)
48         cout<<x[i]<<"\n";
49 }


View Code

明天一早坐飞机,具体分析明天补上。

2.27upd:题目已经忘了太多,分析就不补上了……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: