zoukankan      html  css  js  c++  java
  • UVA

    给你n(n为偶数)个字符串,让你找出一个长度最短且字典序尽量小的字符串,使得一半的字符串小于等于该串,一半的字符串大于该串。

    紫薯上说这道题有坑,但其实思路对了就没什么坑。

    很明显,只要取夹在中间两个字符串间的最小字符串就行了。可以从小到大枚举字符串的长度,如果该长度下存在满足条件的字符串则返回结果,否则把较小的字符串上对应位的字符加到末尾就行了。

    因为想错思路WA了好几次,最后一次WA居然是忘了判断n=0的情况...(为什么我总是完美避开正确答案,QAQ)

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 const int N=1000+10;
     5 int n;
     6 string s[N],s1,s2;
     7 
     8 string solve() {
     9     string ss;
    10     while(1) {
    11         for(char ch='A'; ch<='Z'; ++ch) {
    12             string t=ss+ch;
    13             if(t>=s1&&t<s2)return t;
    14         }
    15         ss.push_back(s1[ss.length()]);
    16     }
    17 }
    18 
    19 int main() {
    20     ios::sync_with_stdio(0);
    21     while(cin>>n&&n) {
    22         for(int i=0; i<n; ++i)cin>>s[i];
    23         sort(s,s+n);
    24         s1=s[n/2-1],s2=s[n/2];
    25         cout<<solve()<<endl;
    26     }
    27     return 0;
    28 }
  • 相关阅读:
    SCCM 2007 部署软件更新
    WPF开发工具
    体验Windows Live Writer写Blog
    图像的灰度和黑白处理算法
    很有用的Sql总结转载
    WPF 体验导航窗口
    WPF 一周练
    WPF 图表
    也说Linq 分组
    WPF 体验对话框调用
  • 原文地址:https://www.cnblogs.com/asdfsag/p/10360726.html
Copyright © 2011-2022 走看看