2020杭電多校第一場

2022-09-06 15:33:08 字數 2636 閱讀 4204

簽到題,問長度為n且回文子串的個數最少的串的數量

想到 abcabcabc... 排列回文子串最少為3

n=1,2,3特殊處理一下

#include using

namespace

std;

typedef

long

long

ll;#define rep(i, a, b) for (register int i = a; i <= b; i++)ll n;

void

solve()

intmain()

}

view code

題意:求這個式子

先化簡這個式子,根據斐波拉契通項:

化簡完畢,求x2 ≡ 5(mod 1e9+9)得 x=383008016(二次剩餘)

所以可求得1/√5 ≡ 276601605(mod 1e9+9),a ≡ 691504013(mod 1e9+9), b ≡ 308495997(mod 1e9+9)

求a,b,qn的時候用尤拉降冪即可,還有億點點小細節看**。(**t了,大佬能指點一下嗎)

#include using

namespace

std;

typedef

long

long

ll;#define rep(i, a, b) for (register int i = a; i <= b; i++)

int mod = 1e9 + 9

;inline

int ksm(int a, int

b)int fac[100010], inv[100010

];inline

int c(int k, int j)

int x = 383008016, x2 = 276601605, a = 691504013, b = 308495997

;int a, b, q, q, d, d, tmp; //

q = q ^ (n + 1), d = b / a, d = d ^ (n + 1)

ll n, c, k;

intans;

inline

void

solve()

cout

<< (ll)ksm(x2, k) * ans % mod <

}int

main()

}

view code

要判斷哪些robot能領先。

先對加速度從大到小排序,再捨掉初始位置比之前小的(加速度小,初始位置小不可能追上)

這樣後面的bot一定能追上前面的bot,然後如果當前bot在追上下乙個bot之前就被追上了,那麼他也要被捨棄

最後再排除掉初始位置和加速度相同的bot

#include using

namespace

std;

typedef

long

long

ll;#define rep(i, a, b) for (register int i = a; i <= b; i++)

#define pii pairstruct

rob} c[

50010], tmp[50010], frot[50010

];double tim(rob x, rob y)

intn;

mapint, int>, int>mp;

ll s, cnt, id, ans;

void

solve()

sort(c + 1, c + n + 1

); s = cnt = id = ans = 0

; rep(i,

1, n) if (c[i].p >s)

rep(i,

1, cnt)

rep(i,

1, id) if (mp[make_pair(frot[i].a, frot[i].p)] == 1) ans++;

cout

<< ans <

}int

main()

}

view code

求字串每個字首的最小字尾。

涉及到 lyndon word

#include using

namespace

std;

typedef

long

long

ll;#define rep(i, a, b) for (register int i = a; i <= b; i++)

int mod = 1e9 + 7

;int

n;int ans[1000010

];int

sum, tmp;

void

solve()

while (k <=i)

k += j -i;

}rep(i,

1, n - 1

)

cout

<< sum <

}int

main()

}

view code

杭電多校第一場補題

include include include include include include include include define int long long using namespace std const int maxn 1e4 10 const int inf 0x3f3f3f3...

2019杭電多校第一場

dp i j k t dp i j k t dp i j k t 表示0 1 2,3 0,1,2,3 0,1,2,3出現的位置排序後為i,j k,t i,j,k,t i,j,k,t的方案數 列舉第t 1 t 1t 1位的情況進行轉移 對於限制情況,固定右端點,暴力列舉所有狀態,把所有非法狀態清零 i...

2019 杭電多校(第一場)

題目 1002 operation 線性基 題意給你n個數 兩個操作,查詢l r區間異或最大值 在陣列最後麵加一數 思路維護兩個陣列 1 b i j 儲存a 1 到a i 之間的第j位線性基。2 pos i j 儲存最大的l a l 使得b i j 有值。對於每一次詢問 l,r 如果pos r j ...