杭電多校(五)2019 08 05 暑假集訓

2022-07-24 12:03:14 字數 1298 閱讀 6717

【hdu 6624】

【hdu 6625】

【hdu 6626】

【hdu 6627】

【hdu 6628】

【hdu 6629】

【題目大意】求乙個字串每個字尾和字串的最長字首長度的和

【解決思路】擴充套件kmp裸題(居然卡cin,cout     qwq)

#include#include

#include

#include

#include

#include

#define ll long long

using

namespace

std;

const

int maxn = 1000010

;int

z[maxn];

ll query(

string

s)

for (int i = 1; i < n; i++)

//printf("%d ", z[i]);

}

return

ans;

}string

s;int

main()

return0;

}

view code

【hdu 6630】

【題目大意】給定n,x,y,令x在第一位,y在最後一位,中間數字排列相鄰數字絕對值之差不大於2,輸出有多少種排列方式

【解決思路】x和y之間的數字一定會移到最底然後移到最上,再移到y,中間的部分會由向上移3格或移1格確定,所以就可以對答案進行遞推

遞推式如下:dp[i]=dp[i-1]=dp[i-3]

#include#include

#include

#include

#include

#include

const

int maxn = 1e5 + 10

;long

long

dp[maxn];

intmain()

if (x == 1

)

}else

}if (y ==n)

cout

<< dp[y] << "\n"

;

else

cout

<< dp[y - 1] << "\n"

; }

}

view code

【hdu 6631】

【hdu 6632】

【hdu 6633】

20190805杭電多校第五場

1004 equation 做法很簡單,寫起來容易混。首先想到去絕對值。因為滿足a 0,顯然當x增大時ax b的值也在增大,所以可以對所有 a,b 按 顯然存在n 1個區間,每個區間都可以將式子分為兩部分,前半部分均為 ax b,後半部分均為ax b。區間依次為 預處理a和b的負的字首和與正的字尾和...

杭電多校(六)2019 08 07 暑假集訓

hdu 6634 unsolved hdu 6634 unsolved hdu 6636 unsolved hdu 6637 unsolved hdu 6638 unsolved hdu 6639 unsolved hdu 6640 unsolved hdu 6641 solved 題目描述 令f ...

2020杭電多校

hdu 6836 對於一張圖,每個生成樹的權值為所有邊按位與的結果,求生成樹期望權值。樸素解法 暴力求出每乙個生成樹,累積權值和,然後除生成樹總數。int型別只有31位,既然是與的結果,對於每一條生成樹所有的邊該位都應該是1,按位列舉每一位,求出該位為1的生成樹權值大小,將結果累積到答案裡。incl...