2019-team321/C0062

从 Trac 迁移的文章

这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。

原文章内容如下:

[[Image(board.png,500px)]]
== 流水账 ==

开始看题,zkx看了 ABC,会了C,跟yay讨论了,决定zkx写。发现不到5分钟就有人过了 J,所以ypl去看J,并过了'''J(+0 10)'''。yay从G开始看,觉得G可以做,就继续想。ypl继续看了DEHI的题意。zkx上去写C,wa了一发,打印。ypl会了E,上去写'''E(+0 48)''',zkx让ypl帮忙看了一眼,发现了C的错误,改了一下过了'''C(+1 52)'''。yay上来写了G,tle了,zkx会了B,上来写了一下,结果wa了,ypl会了H,上来写了H,由于树状数组预处理爆空间wa了一发,改好了'''H(+1 97)''',zkx发现题意有个地方弄错,上来改了一下'''B(+1 97)''',而yay优化之后的 G 仍然tle了,跟zkx讲了做法之后发现有更好的实现,改了之后过了'''G(+2 139)'''。yay开始写D的暴力,zkx和yay讨论 F 题,得到了一个无法建图的2-SAT 做法;ypl交错代码WA了,没有发现;之后ypl提出了树链剖分维护区间的做法,商量之后zkx开始写D,ypl和yay讨论F。ypl和yay得到了接近正确的F做法,zkx在还剩30分钟的时候过了D的样例,TLE了,换yay和ypl写F,25分钟写了180行,然后过不了样例,手动玩一下发现样例里出现了我们没有考虑到的情况,于是放弃了。

== 总结 ==

1. 以后摆一个风扇在旁边,防止ypl中暑。

2. zkx应该想清楚再写代码,提高效率。

[[Image(QQ20190725-235019@2x.png,200.png)]]


== 备忘 ==

F:给定一张有向图,两方按照循环序列 ord 的顺序轮流移动棋子,谁不能操作谁输。问初始棋子在每个位置时,谁赢谁输。
[[BR]]
f(i, j) 表示当前在节点 i,循环序列进行到第 j 位的结果,0 表示输,1 表示赢,2 表示平。对于初始状态,将所有出度为 0 的点 i,f(i, j) = 0。转移的时候就把所有确定为 0 或 1 的状态扔到队列中,用来更新之前的。场上被yay带节奏去缩点求 SCC 跑了一跑,然后发现做不了,实际上不 SCC 直接跑我的做法就过了。对我的做法做个定性,本质上就是松弛。

H:搭积木,每次可以对连续区间 ++,问最少多少次能得到目标高度。
[[BR]]
res = Σmax(a[i] - a[i - 1], 0),考虑当前第 i 个建筑相比于第 i-1 个建筑还需要最少多少次,然后发现下界可取得就好了。

流水账

开始看题,zkx看了 ABC,会了C,跟yay讨论了,决定zkx写。发现不到5分钟就有人过了 J,所以ypl去看J,并过了J(+0 10)。yay从G开始看,觉得G可以做,就继续想。ypl继续看了DEHI的题意。zkx上去写C,wa了一发,打印。ypl会了E,上去写E(+0 48),zkx让ypl帮忙看了一眼,发现了C的错误,改了一下过了C(+1 52)。yay上来写了G,tle了,zkx会了B,上来写了一下,结果wa了,ypl会了H,上来写了H,由于树状数组预处理爆空间wa了一发,改好了H(+1 97),zkx发现题意有个地方弄错,上来改了一下B(+1 97),而yay优化之后的 G 仍然tle了,跟zkx讲了做法之后发现有更好的实现,改了之后过了G(+2 139)。yay开始写D的暴力,zkx和yay讨论 F 题,得到了一个无法建图的2-SAT 做法;ypl交错代码WA了,没有发现;之后ypl提出了树链剖分维护区间的做法,商量之后zkx开始写D,ypl和yay讨论F。ypl和yay得到了接近正确的F做法,zkx在还剩30分钟的时候过了D的样例,TLE了,换yay和ypl写F,25分钟写了180行,然后过不了样例,手动玩一下发现样例里出现了我们没有考虑到的情况,于是放弃了。

总结

1. 以后摆一个风扇在旁边,防止ypl中暑。

2. zkx应该想清楚再写代码,提高效率。

备忘

F:给定一张有向图,两方按照循环序列 ord 的顺序轮流移动棋子,谁不能操作谁输。问初始棋子在每个位置时,谁赢谁输。


f(i, j) 表示当前在节点 i,循环序列进行到第 j 位的结果,0 表示输,1 表示赢,2 表示平。对于初始状态,将所有出度为 0 的点 i,f(i, j) = 0。转移的时候就把所有确定为 0 或 1 的状态扔到队列中,用来更新之前的。场上被yay带节奏去缩点求 SCC 跑了一跑,然后发现做不了,实际上不 SCC 直接跑我的做法就过了。对我的做法做个定性,本质上就是松弛。

H:搭积木,每次可以对连续区间 ++,问最少多少次能得到目标高度。


res = Σmax(a[i] - a[i - 1], 0),考虑当前第 i 个建筑相比于第 i-1 个建筑还需要最少多少次,然后发现下界可取得就好了。