題目描述
題目分析
編碼實現
1. 描述
所謂迴圈移位是指。乙個字串的首字母移到末尾, 其他字元的次序保持不變。比如abcd經過一次迴圈移位後變成bcda。
給定兩個字串,判斷它們是不是可以通過若干次迴圈移位得到彼此。
2. 輸入
由m行組成,每行包含兩個由大寫字母』a』~'z』組成的字串,中間由空格隔開。
3. 輸出
對於每行輸入,輸出這兩個字串是否可以通過迴圈移位得到彼此:yes表示是,no表示否。
4. 例
//輸入
aacd cdaa
abcdefg efgabcd
abcd acbd
abcdefeg abcdee
//輸出
yesyes
nono
5. 限制**實現
讀入兩個字串,如果兩字串長度不同,則直接輸出no,否則,則把乙個字串接在其自身後面形成乙個新串,然後查詢另乙個字串是否是新串的子串,如果是則yes,否則no。
複雜度分析:
說明:下述**全部為【資料結構與演算法實驗 oj 平台】提交過的**。
#include
#include
#include
#define set(s, i) ( (s)[i] - 'a' )
bool
check
(char
* p,
char
* t, size_t i)
return
true;}
long
long
intprepare
(size_t m)
void
update
(long
long
int& hasht,
char
* t, size_t m, size_t k,
long
long
int d)
bool
matching
(char
* p,
char
* t)
for(size_t k =0;
;)}int
main()
}while(1
);return0;
}
PA2014 Bohater 題解(貪心)
前言 一道經典貪心題。題目鏈結 題目大意 你有 z 滴血,要打 n 只怪。打第 i 只怪扣 d i 滴血,回 a i 滴血。問是否存在一種能夠通關的打怪順序。顯然所有怪分為兩種 扣血的怪 d i a i 和回血的怪 d i leq a i 那麼貪心策略是什麼?對於回血的怪,我們有若干貪心策略,例如 ...
PA2014部分題解
之前有一些寫過了大概扔在奇奇妙妙的地方 可能翻一下blog能翻得到的 瞎寫一下最近的題吧 2 242 224這個狀壓和爆搜尷尬的地位 90 s90s 90s果斷狀壓了 把包從大到小排序,記乙個pai rpair pair 的d p mask dp mask dp mas k 表示裝完狀態裡的這些東西...
20181105題解報告
最後的模擬賽儘管打的很糟糕。某國個人所得稅法規定,普通公民的主要應納稅收入專案及納稅金額如下 工資 薪金所得。按月計算徵稅,以每月收入額減除費用800元後的餘額作為該月應納稅所得額,稅率如下表所示 級數月應納稅所得額 稅率 不超過500元的 超過500元 2000元的部分 超過2000元 5000元...