暑假訓練第一場D

2021-08-21 09:58:57 字數 603 閱讀 5124

題目:

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

aa

ab

sample output
yes

no

思路:直接驗證在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 ...