菜谱

已经懒得更新了吗?!

只是经常忘了写这玩意而已...

写日期会有自己写了很多有用的东西的错觉

2022.4.12

事实证明只要是相差一个字母左右的变量我都容易打错,比如刚犯的

rt -> ret

2022.4.11

线段树乘法懒标记这么写:

void down(int x){
	if(t[x].mul != 1){
		calc(lc,t[x].mul);
		calc(rc,t[x].mul);
		t[x].mul = 1;
	}
}

一般来说不会出问题,但是 \(mul\) 变成 0 就寄了。 /qd

当一行代码很长就容易...

mge(,...,...,...,(...+...%MOD),...);

2022.4.10

CF246E Blood Cousins Return

重剖:

if(!son[x] || siz[v] > siz[son[x]]) v = son[x];

T成傻子了。

2022.4.7

[POI2011] MET-Meteors

整体二分记得没有要二分的对象时要往数据结构里面插了东西再 return.

2022.4.4

函数没有返回值*n。

2022.3.29

但凡带个脑子也知道动态开点带的log是权值而不是n。

2022.3.28

但凡带个脑子也知道mex不用离散化。

事实证明结构体版线段树和多个数组线段树五五开。

全体起立

2022.3.18

T1 复杂度算错。

T2 手残打错字母。

2022.3.14

(1ll << i+1-j) * dp[...][...]

经典爆 long long

2022.3.12

写了 Build 不调用,写了重载不 sort。

2022.1.22~1.25

总之这几天疯狂不取模,人已经晕了。

2021.11.18

离谱auto,在不加&的情况下会拷贝一份再访问,容易上天(人和代码)。

2021.11.16

概率dp数组int是什么成分啊?

聪聪与可可

记忆化搜索的时候改了状态值:

u = ...;
mem[u][v] = ...;
return mem[u][v];

2021.11.15

避雷针

取整之后不满足单调性。

2021.11.13

我以为的样例:

input:
6
1 2 3 4 5 6
output:
6

实际上的样例:

input:
5
1 2 3 4 5
output:
6

然后我就对着一份AC代码虚空调试了 \(1\) 个小时,红红火火恍恍惚惚。

2021.11.11

哦,set迭代器移动是 \(\log\) 的,全部访问是 \(O(n)\),类似于遍历一棵树。

李超树查询要走到没有线段为止,求值的时候要判断是否有线段,因为有点不代表有线段。

2021.11.2

超级稀疏矩阵求行列式用高斯消元可以当成 \(O(n^2)\) 的,要有梦想,把数组开到这么大!

2021.11.1

ans = (ans + 1ll * a[x] * a[x] % MOD);

懂?爆了80pts

补题(线性筛):

if(!vis[i]) prime[++pn] = i,mu[i] = 1;

2021.10.30

搜索题(1,1)出发,大样例都没问题,但实际上(1,1)可能是障碍物。

白给100pts

2021.10.27

经卷爷提醒,有多个图的时候如果用前向星存图,只需要开多个 head 数组即可。

我以前 edge、head 数组,tot 全部都开了很多份

线段树/主席树二分边界问题:

LL Query(int x,int l,int r,int les)
{
	if(t[x].cnt < les) return INF;
	if(t[x].cnt == les) return t[x].val;
	if(l == r) return 1ll * tls[l] * les;//由于存在权值相同,所以需要加上这一句(tls是离散化后对应离散化前的数组)
	int mid = (l+r) >> 1;
	if(t[t[x].l].cnt >= les) return Query(t[x].l,l,mid,les);
	return t[t[x].l].val+Query(t[x].r,mid+1,r,les-t[t[x].l].cnt);
}

2021.10.26

T3 在调试的时候把线段树改成了询问直接跑到底,后来调过了没改回来直接白给70pts= =

所以要测极限数据

T2 卡常

\(10^6\) 主席树相当危险,树上换根问题可以用树状数组,把主席树拆一下贡献就好了。

虽然都是一个 \(log_2n\),但是可以快一倍!

2021.10.23(24自测)

CSP-S

T2 我写了这么一个函数:

void Ad(int &x){if(x >= MOD) x -= MOD;if(x < 0) x += MOD;} 

然后区间DP的时候我都这么写的:

Ad(ret += ...);

洛谷上竟然T了一个点,一度怀疑是自己哪里写挂了。

后来加上了 inline,T的那个点变成了1.03s(众所周知真正的TLE应该是1.20s)

于是我把所有上文的写法都改了一下:

ret = (ret + ...) % MOD;

过了,飞快,总用时 3.29s,之前T一个点的时候总用时 5.87s,加了inline也有 4.88s。

吐了,再也不用这个函数。

2021.10.20

最短路

左偏树不更新 dist,而只是赋值。

2021.10.16

变量名写错,比如

sort(a+1,a+k+1);

习惯性写成:

sort(a+1,a+n+1);

2021.10.11

Dev

#include <vector>

懂?

2021.10.8

距离公式写成了

sqrt(I*I+J+J)

估计不会犯第二次。

2021.10.4

火枪打怪

乍一看认为 \(i*i*x\) 不会爆 \(int\) (\(x\)long long类型)

2021.10.3

函数没有返回类型

第二次了。

原来那个cqbz四个CE就是你啊!

2021.9.24

CF575A Fibonotci

下标是long long类型,函数的形参写的int

又双叒叕少了一层数组嵌套。

边界情况多乘了一次。

2021.8.26

Robot

范围是 \([0,10^9]\),动态开点线段树却是从 \([1,10^9]\) 开始。

2021.7.29

昨天:不会真有sb函数不写返回值吧。

今天:sb竟是我自己。

2021.6.23

CF1481D AB Graph

分类讨论中有一种情况没输出YES

if else 写麻了。

2021.6.2

CF1523E Crypto Lights

模数默认 \(998244353\),但是却是 \(10^9+7\)

2021.5.4

CF1498D Bananas in a Microwave

先除后乘爆double精度。

2021.4.4

注意离散化后使用的下标。

2021.2.25

【模板】扫描线

注意扫描线+线段树,叶子结点更新时越界问题。


模拟赛策略有点问题。

首先我们应该通读所有题,并对其难度排序,由易到难开题。

先打暴力!!!

如果中途发现有题和难度估计不一样,重新估计其难度,然后依然是从易到难开题。

稍微多分配一点时间看一看每道题用什么算法,千万不要判断错了,如果分配时间不足,很有可能判断错误,导致该打的没打或之后发现来不及打!

2021.2.24

慢慢读题!

一句话题意都能读掉字是我没想到的。

2021.2.23

HDU6800 Play osu! on Your Tablet

cdq分治最后要按ID排序,因为solve(mid+1,r)要用!

我们知道了长度之后再初始化!

[NOI2007] 货币兑换

函数不写返回值引起 \(\operatorname{MLE}\) 以及其他错误。

2021.2.17

ARC080D Prime Flip

源点和汇点在连边之后才赋值。

当前弧优化把cur[x]打成了head[x]

调试之前:我dinic板子肯定没打错啊(超级自信)。

2021.2.8

⼩绿和⼩蓝-城堡

本地拍出错了之后没有更新到提交的文件夹里面。

2021.2.5

网络流前向星边的编号初始值一定要赋为1。

dinic的时候,当前点走过了一些点,流量一定要减。

2021.2.1

各种筛法的题, \(n\) 就已经爆 \(\texttt{int}\) 了,要各种注意取模和开 \(\texttt{long long}\)

2021.1.31

杜教筛(Sum)

数据范围 \(1\le n<2^{31}\),加 \(1\)\(\texttt{int}\)

2021.1.12

快乐的 JYY

字符串题注意看字母大小写

不要默认是小写字母。

2021.1.2

HDU 6756 Finding a MEX

思路不清晰,被迫重构代码。

多组数据初始化初始化初始化!

2020.12.23

CF739C Alyona and towers

线段树区间合并思路不清晰。

应该先用子区间直接更新,然后是跨区间更新。

2020.12.20

原题赛不打对拍。

数组少嵌套或者多嵌套(手快不过脑。

2020.12.5

NOIP

T1 排水系统

看不出来要写高精,注意分析范围要从质因数分解的角度看。

T2 字符串匹配

多组数据,用后缀和记得要把n+1位清空

2020.12.4

忘了是什么时候出的锅了,刚想起来,写一下。

对拍的时候不要用重名的东西,哪怕是后缀名不同也不行,前面也要不同,不然很有可能出现未知问题。

2020.11.28

观察

std用内置函数!!!否则是似乎是线性的复杂度!

如:

it = lower_bound(s.begin(),s.end(),dfn[x]);

应该改为:

it = s.lower_bound(dfn[x]);

本题中s为set。

2020.11.18

三角形

没拍大数据,T了,痛失AK。

所以你最后半个小时在那里玩什么泥巴

2020.11.17

dfn[x]打成了x

2020.11.15

flower

不修改的区间查询打树状数组而不打前缀和

paint

提交时取消freopen的注释取消成了本地的= =,而不是提交文件夹的

2020.11.7

CSP-S

T1

读错题

二分边界为1583,但是算闰年是按1584为边界算的

T2

读错题、读掉条件

2020.11.4

NOIP模拟赛 轰炸

Tarjan缩点后的dfs只跑一遍但是没有记忆化

NOIP模拟赛 玩游戏

倍增打成了:

d[f[x][i]] >= d[x]

实际上应该是:

d[f[x][i]] >= d[y]

2020.11.1

传送带

P,Q,R不分

疯狂的火神

直接输出DP最后一位,而不是求DP数组所有元素的最大值

2020.10.31

路径计数

完整数据的头+部分分的身体=大常数骗分=TLE

树和森林

输出函数又双叒叕没开long long

2020.10.28

数列

自信推部分分式子,不用小数据对拍,结果都挂了

模板

首次打set的dsu on tree,不熟悉

最大的set如果不是自己,要插入自己的儿子,但是忘掉了qwq

2020.10.22

牛半仙的妹子图

前缀和第一位不能转移,因为会越界,于是没有管它

但是实际上第一位是有值的,而这么处理会变成\(0\)

2020.10.21

夏娜的菠萝包

DP转移的时候没取max

类似于:

dp[i][j] = ...;

但是应该是:

dp[i][j] = Max(dp[i][j],...);

2020.10.4

CF507D The Maths Lecture

经典1e10爆int

2020.9.7

终于想起来有这个东西了

HDU 6467 简单数学题

单个元素如果要爆取模记得提前取模,而不是习惯性两个数乘起来再取模

HDU 6314 Matrix

被卡常了qaq

如果组合数可以用\(O(n^2)\)预处理就一定不要用逆元的写法!

HDU 6397 Character Encoding

容斥取模最后不判负数 + 可能用到两倍空间却只开了一倍

2020.9.6

NOIP2020模拟赛T1

因为没有忽略末尾空格对拍拍了半个小时

2020.8.25

1-11G. JM的月亮神树

dijkstra大于小于打反

2020.8.21

CF467D Fedor and Essay

连边->缩点->连边

前向星->Tarjan->vector

于是在vector里使用了e[i].v

2020.8.8

Captains Mode

状压DP,用记忆化搜索的时候dfs传的操作x和枚举的英雄i混淆

2020.7.30

Beavermuncher-0xFF

\(10^5 * 10^5 = 10^{10}\),10位数,不开long long

\(10^5 * 10^5 = 10^{10}\)明明是11位数!!!

2020.7.27

搜索专题

Graph Coloring

前向星无向图边要开两倍空间!!!

原题测试

T1: Xor-Paths

\(n,m,k\)连续三个变量,\(k\)要开\(long\ long\),但由于定义\(n,m\)用的\(int\),而这三个变量又是连着的,于是...

连续变量类型不同,不能在同一排定义

2020.7.26

原题测试

T3: Stressful Training

前缀和在排序前求

原题测试の复活赛

T4: Simple Skewness

LEN打成了len不要用重名的变量啊啊啊啊

2020.7.22

原题测试

T4: Restore the Permutation by Sorted Segments

判相邻的数手快打掉了+1

这波是检查了前几道题,都没出锅,唯独第四道没检查,出锅了

检查不够

2020.7.21

Square Tiling

情况过多,懒得思考,靠及时评测以及CF的数据调代码

这波需要自己出数据

Are You Fired?

线段树又双叒叕出锅了

本来应该是:

if(l <= t[x].l && t[x].r <= r)

然而写成了:

if(t[x].l <= l && r <= t[x].r)

Restore the Permutation by Sorted Segments

本来是一边搜索一边记录答案最后一位要特判,但忘了记录

2020.7.20

Make The Similar

这波是开数组没加5 RE致死

2020.7.19

原题测试

共四题,只过了T1,QAQ

T2:手快了,少了一重数组的嵌套

T3:有一个地方把两个相似的变量dif和dz打错了

T4:老瞎眼 2500的数组范围开成了2000

=> 6圈250m,共1500m,美滋滋

这波是 心急AK + 轻视原题不检查

2019.11.02

论爆零

posted @ 2020-07-28 11:50  皮皮刘  阅读(140)  评论(1编辑  收藏  举报