# UVa 1584 - Circular Sequence --- # 題目大意 給一字串,輸出它從某個位置當起點繞一圈形成的字串。要求輸出所有可能中字典序最小的答案。 --- # 題解 枚舉起點,每次跑一圈看字典序是否變小,若有則更新答案。答案紀錄的是索引值。 --- ```=C++ #include <bits/stdc++.h> #define ll long long #define pb push_back #define INF 2147483647 #define ft first #define sec second #define pr pair<int,int> #define ISCC ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); using namespace std; int t ,n ,m ,ans ,tp; string s ; int main() { ISCC; cin >> t; getchar(); while(t--) { getline(cin,s); int len = s.size(); ans = 0; for(int i=1 ;i<len;i++) { for(int j=0 ;j<len ;j++) { if(s[(ans+j)%len]-'A' > s[(i+j)%len]-'A') {ans = i; break;} else if(s[(ans+j)%len]-'A' < s[(i+j)%len]-'A') break; } } for(int i=0 ;i<s.size() ;i++) cout << s[(ans+i)%len]; cout << '\n'; } } ```