a、b、c:
kmp的模板題,注意資料範圍;
d:利用next陣列求迴圈節,可以注意到最大迴圈節的長度len為n - next[n];
如果n % len為0,則不用新增額外的字元,否則需要新增len - n % len 個字元
具體**與思路描述有差異,這與打法有關。
e:manacher的變形,只需要在更新回文串長度的時候保證單調即可。
f:manacher,字母轉換的時候,把26個字母看作乙個環,順序轉換即可。
g:manacher模板。
d:
#include#include#include#includeusing namespace std;
const int maxn = 100000 + 22;
int next[maxn];
int t,n;
char s[maxn];
void init_next()
return;
}void solve()
int main()
f:
#include#include#include#includeusing namespace std;
const int maxn = 330010;
char s[maxn],str[maxn];
char f;
int n,len,mr,mid,l,r,pos;
int p[maxn];
void init()
str[j ++] = '#';
len = j;
return;
}int manacher()
mid = i;
} }return ans - 1;
}void solve()
init();
int ans = manacher();
if(ans >= 2)
else printf("no solution!\n");
getchar();
return;
}int main()
字串作業
5 10x 5 13 y 1 a b x 9 5 x 12 x y 輸入月薪 num input input salary per month salary int num 12 print salary 複製100遍 a 愛你100遍 b a 100print b 到這輸出字串 a to be o...
字串作業
1.輸入乙個字串,列印所有奇數字上的字元 下標是1,3,5,7 位上的字元 例如 輸入 abcd1234 輸出 bd24 a abcjdnkwu11234jwe print a 1 2 2.輸入使用者名稱,判斷使用者名稱是否合法 使用者名稱長度6 10位 id name input 輸入使用者名稱 ...
字串作業
輸入乙個字串,列印所有奇數字上的字元 下標是1,3,5,7 位上的字元 例如 輸入 abcd1234 輸出 bd24 str input 請輸入乙個字串 x 0while x len str if x 2 0 print str x x 1輸入使用者名稱,判斷使用者名稱是否合法,使用者名稱的要求 長...