2016-E16-team2
从 Trac 迁移的文章
这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。
原文章内容如下:
||User||Problem||Result||Memory||Time||Language||Length||Submit Time||
||TaZoF||B||AC||22592||1513||G++||1648||2016-10-29 14:20:17||
||TaZoF||B||WA|| || ||G++||1633||2016-10-29 14:11:24||
||TaZoF||F||AC||9144||1419||G++||1291||2016-10-29 13:16:56||
||TaZoF||H||AC||3160||1466||G++||1719||2016-10-29 13:02:58||
||TaZoF||H||WA|| || ||G++||1718||2016-10-29 12:58:32||
||TaZoF||D||AC||1808||15||G++||3936||2016-10-29 12:50:00||
||TaZoF||D||WA|| || ||G++||3919||2016-10-29 12:18:21||
||TaZoF||D||TLE|| || ||G++||3856||2016-10-29 12:12:08||
||TaZoF||D||WA|| || ||G++||2132||2016-10-29 11:13:23||
||TaZoF||J||AC||1596||265||G++||846||2016-10-29 11:01:55||
||TaZoF||D||WA|| || ||G++||2131||2016-10-29 10:25:12||
||TaZoF||C||AC||1572||0||G++||336||2016-10-29 09:46:46||
||TaZoF||E||AC||1580||156||G++||754||2016-10-29 09:41:18||
||TaZoF||A||AC||1564||0||G++||237||2016-10-29 09:35:29||
== 流水账 ==
=== TsReaper ===
开场我们很快通过了简单题A,E和C,'''A1y5''','''E1y11''','''C1y16'''。之后我看到D题,想用限制bfs步数的方式去做,但怎么也无法答对。我做D的时候hzf学长一下就推出了J的公式,'''J1y91'''。最后我的D实在调不出来,starve学长就用另外的方法写了D,'''D5y200'''。
starve学长写D时,我也想到了H是双头队列的做法,输出的时候格式弄错了一下,'''H2y212'''。hzf学长F题也想到了队列的做法,'''F1y226'''。最后我们给B题想了一个听起来不太科学的并查集做法,不过starve学长写一写'''B2y290''',还算不错吧。
== 总结 ==
== 题解 ==
A,C,E都很简单,略过...
=== B - Prediction ===
用m个并查集维护原图的连通性。对于magic tree上的一个点,就用一个并查集维护把从根走到它的所有边连起来后,原图的连通性如何。处理询问的时候把被询问的点的并查集合并起来就好了。
=== D - Coconuts ===
因为障碍物最多200个,所以有用的x坐标和y坐标也就几百个。把坐标离散化一下再bfs就好了。
=== F - Auxiliary Set ===
实际上求的是给出的点中,有几个点会变成重要点。把询问点按深度排序,并且要维护每个询问点“重要儿子”的个数。一开始每个点的重要儿子个数就等于它儿子的个数。如果一个询问点的重要儿子>=2个,那么它就变成了重要点;否则它父亲的重要儿子个数-1。用队列维护就好了。
=== H - Basic Data Structure ===
由NAND运算的性质可知,这题求的实际上就是一个双头队列从左边看/从右边看,末尾连续1的个数的奇偶性。这个用双头队列维护就好。
=== J - Mission Possible ===
== 补题 ==
| User | Problem | Result | Memory | Time | Language | Length | Submit Time |
| TaZoF | B | AC | 22592 | 1513 | G++ | 1648 | 2016-10-29 14:20:17 |
| TaZoF | B | WA | G++ | 1633 | 2016-10-29 14:11:24 | ||
| TaZoF | F | AC | 9144 | 1419 | G++ | 1291 | 2016-10-29 13:16:56 |
| TaZoF | H | AC | 3160 | 1466 | G++ | 1719 | 2016-10-29 13:02:58 |
| TaZoF | H | WA | G++ | 1718 | 2016-10-29 12:58:32 | ||
| TaZoF | D | AC | 1808 | 15 | G++ | 3936 | 2016-10-29 12:50:00 |
| TaZoF | D | WA | G++ | 3919 | 2016-10-29 12:18:21 | ||
| TaZoF | D | TLE | G++ | 3856 | 2016-10-29 12:12:08 | ||
| TaZoF | D | WA | G++ | 2132 | 2016-10-29 11:13:23 | ||
| TaZoF | J | AC | 1596 | 265 | G++ | 846 | 2016-10-29 11:01:55 |
| TaZoF | D | WA | G++ | 2131 | 2016-10-29 10:25:12 | ||
| TaZoF | C | AC | 1572 | 0 | G++ | 336 | 2016-10-29 09:46:46 |
| TaZoF | E | AC | 1580 | 156 | G++ | 754 | 2016-10-29 09:41:18 |
| TaZoF | A | AC | 1564 | 0 | G++ | 237 | 2016-10-29 09:35:29 |
流水账
TsReaper
开场我们很快通过了简单题A,E和C,A1y5,E1y11,C1y16。之后我看到D题,想用限制bfs步数的方式去做,但怎么也无法答对。我做D的时候hzf学长一下就推出了J的公式,J1y91。最后我的D实在调不出来,starve学长就用另外的方法写了D,D5y200。
starve学长写D时,我也想到了H是双头队列的做法,输出的时候格式弄错了一下,H2y212。hzf学长F题也想到了队列的做法,F1y226。最后我们给B题想了一个听起来不太科学的并查集做法,不过starve学长写一写B2y290,还算不错吧。
总结
题解
A,C,E都很简单,略过...
B - Prediction
用m个并查集维护原图的连通性。对于magic tree上的一个点,就用一个并查集维护把从根走到它的所有边连起来后,原图的连通性如何。处理询问的时候把被询问的点的并查集合并起来就好了。
D - Coconuts
因为障碍物最多200个,所以有用的x坐标和y坐标也就几百个。把坐标离散化一下再bfs就好了。
F - Auxiliary Set
实际上求的是给出的点中,有几个点会变成重要点。把询问点按深度排序,并且要维护每个询问点“重要儿子”的个数。一开始每个点的重要儿子个数就等于它儿子的个数。如果一个询问点的重要儿子>=2个,那么它就变成了重要点;否则它父亲的重要儿子个数-1。用队列维护就好了。
H - Basic Data Structure
由NAND运算的性质可知,这题求的实际上就是一个双头队列从左边看/从右边看,末尾连续1的个数的奇偶性。这个用双头队列维护就好。
J - Mission Possible
补题
附加文件
- 2016-E16-team2.zip by TsReaper