UVA 1610-Party Games(聚會遊戲)
阿新 • • 發佈:2018-12-31
題意 給你一N個字串 要你構造一個字串D 滿足有n/2個字串比它大 另外半個比它小
分析 給n組字串排序。然後取中間的兩組進行比較。
#include<bits/stdc++.h>
using namespace std;
string a[1006];
int main (void){
ios::sync_with_stdio(false);
int n;
while(cin>>n && n){
int arr=0;
for(int i=0;i<n;i++) cin>>a[i];
sort(a,a+n);
string b,w=a[n/2],s=a[n/2-1];
bool f=true;
while(f){
for(int i=0;i<26;i++){
b=s.substr(0,arr);
b+=i+'A';
if(b>=s && b<w){ f=false; break;}
}
arr++;
}
cout<<b<<endl;
}
return 0;
}
總結紫書上說這道題坑很多,剛開始想到的是先比較s,w兩個字串中的相同元素。
後來發現這麼做要考慮得情況有點麻煩。於是想出了這麼一個耿直的思路hhhh。