洛谷 P2375 NOI2014 動物園

2022-04-06 22:21:27 字數 600 閱讀 2234

其實對於乙個sum[i],其值就等於sum[next[i]] + sum[next[next[i]]] + ... + 1,然後我們可以記憶化,然後題目裡又有乙個限制,就是前字尾不能重合,那我們就找到最大但是不重合的那種情況,然後往小了列舉就好了.最後答案說要取模,所以不要忘了%%%ljx_xhy_yyq(排名無先後).

1 #include2 #include3 #include4

#define ljx_xhy_yyq 100000000756

using

namespace

std;78

int n,sum[1000001],kmp[1000001];9

long

long

ans;

10string

p,l;

1112

intmain()

26 j = 0;27

for(int i = 2;i <= len; i++)

34 printf("

%lld\n

",ans);35}

3637

return0;

38 }

洛谷P2375 NOI2014 動物園

題目大意 求出乙個字串 s 每一位的 num i 最多 5 組詢問,s leqslant10 6 num i 定義為 s 中長度不超過 lfloor dfrac i2 rfloor 的 border 的個數 題解 類似 kmp 發現乙個字串 border 的 border 一定是原串的 border...

題解 P2375 NOI2014 動物園

luogu 先用裸的 kmp 求出 fail next 陣列 隨便叫的無所謂啦 和不管重疊時的數量記為 ans ans 的定義類似於 fail next 然後再跑一遍,求出 frac 的數量,可結合 理解 includeusing namespace std int n,l,fail 1000010...

洛谷P2014 選課

題目描述 在大學裡每個學生,為了達到一定的學分,必須從很多課程裡選擇一些課程來學習,在課程裡有些課程必須在某些課程之前學習,如高等數學總是在其它課程之前學習。現在有n門功課,每門課有個學分,每門課有一門或沒有直接先修課 若課程a是課程b的先修課即只有學完了課程a,才能學習課程b 乙個學生要從這些課程...