題目:
s0...n−
1是乙個長度為n的字串,定義旋轉函式left(s)=s1…n
−1+s0.比如s=」abcd」,left(s)=」bcda」.乙個串是對串當且僅當這個串長度為偶數,前半段和後半段一樣。比如」abcabc」是對串,」aabbcc」則不是。
現在問題是給定乙個字串,判斷他是否可以由乙個對串旋轉任意次得到。
input 第1行:給出乙個字串(字串非空串,只包含小寫字母,長度不超過1000000) output 對於每個測試用例,輸出結果佔一行,如果能,輸出yes,否則輸出no。 sample input
aasample outputab
yesno
思路:直接驗證在n/2個位置後是否相等即可。
原始碼:#include
#include
#include
using namespace std;
int main()}}
if (flag == 0)cout << "yes" << endl;
else cout << "no" << endl;
}return 0;
}
暑假訓練第一場C
題目 小的時候大家一定玩過 井 字棋吧。也就是在九宮格中,只要任意行 列,或者任意連續對角線上面出現三個相同的,就能獲勝。現在小明和小花也在玩三子棋,但是他們不是在九宮格裡,而是在3 4的格仔裡面。現在小明先下,但是他知道小花這個人很聰明,他想知道第一步下在哪乙個地方最合適,你能幫幫他嗎?input...
19級暑假第一場訓練賽
題目出自 codeforces round 547 div.3 includeusing namespace std typedef long long ll ll n,m bool flag int cnt 資料不大,暴力深搜 void dfs int now,int step if now m ...
牛客 2018多校訓練 暑假第一場
a 題意 對於矩陣 n,m 每個位置的元素 其右 下的元素。思路 比賽完全想錯思路,賽後看題解,終於摸懂,就是轉換思路,0,1之間可用一條線分隔開,1,2之間也可以用一條直線分隔開,而每條直線,從起點到終點,一共需要經過 n m 條邊,即 n m 次選擇行方向還是列方向,一定要選擇m次列方向,即c ...