只有比賽現場的暴力**留念,覆盤題解見具體題目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 ...