LGR 050 洛谷8月月賽

2022-08-18 04:00:14 字數 1683 閱讀 4709

只有比賽現場的暴力**留念,覆盤題解見具體題目

t1 耗時20mins,暴力列舉,複雜度o(nq),期望得分50

#include

#include

using

namespace

std;

#define mod 998244353

const

int maxn = 1e6+10;

typedef

long

long ll;

ll n, a[2010][maxn], len;//第i次操作後j的值,已經操作了幾次

void change(int x)

int main()

return

0;}

t2 耗時20mins

貪心,每次選最小的兩個合併,,我也不知道為什麼這樣,只是隱隱感覺。。。可是明明樣例都過了啊。期望得分0 or 60

#include

#include

#include

using

namespace

std;

const

int maxn = 1e7+10;

int n, m, seed, a[maxn];

priority_queue, greater >q;

void generate_array(int a, int n, int m, int seed)

}int main()

cout

<'\n';

return

0;}

t3

沒看懂題+沒什麼想法。耗時10mins,輸出2,期望得分0

#include

using

namespace

std;

int main()

t4

我不知道炮的攻擊是不是同行隔著乙個棋子的。。。

所以也就是每行每列最多放2個?列舉每個狀態,判斷列是否攻擊(個數大於2剪枝剪掉),複雜度好像o(n

cm2∗

logn

)' role="presentation" style="position: relative">(nc

2m∗l

ogn)

(ncm

2∗lo

gn) ,也許會小一點。,期望得分20。耗時40mins

#include

#include

#include

using

namespace

std;

#define mod 998244353

const

int maxn = 100010;

int n, m, ans;

map<10010> >c; int num[maxn];//第i列有幾個炮

void dfs(int cur)

for(int i = 0; i < m; i++)

}}int main()

整個:

耗時1h30mins,最後1h直接棄坑(貌似一開始就沒打算寫標程?)。

期望得分50+30+0+20 = 100。。。

實際得分0+20+0+20=40。。。

LGR 051 洛谷9月月賽

luogu 給出 k 和質數 m 求最小的 n 使得 111.1 n 個 1 equiv k mod m m le10 0 le k m 把 n 個 1 寫成等比數列求和的形式,不難推出這個式子 10 n equiv9k 1 mod m 所以直接上 bsgs 就行了。應該是不存在無解的情況的,畢竟無...

LGR 054 洛谷10月月賽II

luogu 成功咕掉codeforces round 517的後果就是,我 mbox 依舊沒有寫出來。mbox mbox 為 0 的乘上 mbox 為 1 的就是答案。因為兩個數異或以後二進位制位 1 的個數的奇偶性不會變。至於計算 mbox 預處理到根號,o 1 計算即可。include incl...

LGR 054 洛谷10月月賽II

結論popcnt x y 和popcnt x popcnt y 的奇偶性相同。然後就是popcnt為奇數的乘為偶數的。預處理一下 2 次方以內的popcnt,直接 o 1 算就行。就是求有多少個等差子串行。方程很好寫,f i 表示以 i 結尾的等差子串行個數,f i sum i f j a i a ...