2017-Sp78-team2
从 Trac 迁移的文章
这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。
原文章内容如下:
[[Image(1.png,500px)]]
== 流水账 ==
开场各自看题,不久有人过J,sub读了J丢给cjb,cjb上机'''J1y8'''。cjb读了G就判断是个网络流,先行敲了dinic板子。渐渐有人过了A,sub和yzc经过了谨慎地讨论,yzc上机写A,wa了两发,打印检查。cjb和sub判断E是个cls的old题,cjb上机很快敲完,也wa了,调了精度wa在了后面的点,很难受。sub和yzc终于找到了A的问题,yzc上机终于'''A3y70'''。cjb在接下来的时间里修改了无数次的E,wa在各种各样的地方,其中cjb也和yzc讲解了树套树优化网络流的方法,yzc抽空上机写完了,sub独力开C,多次上机都告失败。最后cjb改了匪夷所思的地方后终于'''E12y145'''。yzc上机很快写完了G,提交获得tle。cjb表示可能要用二维st表代替树套树,给yzc讲解完后yzc上机'''G2y183'''。sub终于得到了C的做法,之后'''C1y203'''。之后三个人试图讨论D,没有得到很优美的做法,sub表示B是个三维凸包+最小圆覆盖的板子题,cjb上机开始敲,敲了20多min还让yzc查了很久bug,最后20min sub rush B没有成功,赛后20min通过了B,敲板子的时候sub给yzc理论了D,但是做法比较不清真,思路不清晰,没能达成输出。
== 总结 ==
=== chenjb ===
时隔多年,又一次吃了NAIPC的屎,其实还是套路上的欠缺,我们今天严格执行了“宁可差题数也不能差进度”这个策略,虽然5题还是有点差强人意,但是目前看来还是Acceptable的,很多队伍都是在临近final前做这套题,自然状态也不可同日而语,我们要在去MIPT前抓紧时间提高,步子迈大些也无所谓,把最后的磨合和调整留给MIPT CAMP。
=== oipotato ===
比起屎,可能还是烧烤比较好吃。
=== subconscious ===
楼上说的对。
== 题解 ==
* A:把括号序列处理成,左边都是右括号,右边都是左括号的形式,记为A个左括号,B个右括号。将B和A-B塞入数组,对于A-B>=0,按照A升序排序,否则按照A降序排序,dp即可,类似背包。
* B:跑出三维凸包,枚举面,以面为圆柱底,所有点投影到该平面上,变成最小圆覆盖。
* C:f[i][j]代表区间[i,j]生成树方案,g[i][j]代表从i到j已经有一条边的生成方案,如果i和j互质,方案数强制为0,f[i][j]=f[i][k]*g[k][j](i<=k<=j-1),g[i][j]=Σf[i][k]*f[k][j](i<=k<=j-1),答案为f[1][n]。
* D:考虑类似最长上升子序列二分的做法,对于一棵子树,维护一个序列表示每个答案对应的最小权值,由于子树互相之间独立,可以直接合并所有子树的序列,将父亲节点在序列中二分,并替换掉大于本身的第一个值即可。具体实现时使用启发式合并,并用set维护此序列,一个巧妙的操作是离散化的时候对于相同权值的点,按照节点编号给予不同的离散化值,这样既保证了题目要求,又使所有节点权值不同,保证了set的正常工作。
* E:二分一个mid值给特殊的边后跑MST,整数就可以了,注意排序的时候相同代价的边要把特殊的边放在后头,正确性待思考。
* F
* G:用二维st表优化最大流建边,每个买家只需要连出4条边对应自己的矩形(具体类比四分树)
* H:可证必存在一点出边颜色完全相同。可不断找出剩下的图中的那个点,得到一序列Ai,称Ai颜色为出边颜色。之后枚举子图中最后出现的点。可维护一个数组代表贡献为x子图的方案树数。
* I
* J:统计两种字母个数,相同输出1,否则输出0。
* K
== 补题 ==

流水账
开场各自看题,不久有人过J,sub读了J丢给cjb,cjb上机J1y8。cjb读了G就判断是个网络流,先行敲了dinic板子。渐渐有人过了A,sub和yzc经过了谨慎地讨论,yzc上机写A,wa了两发,打印检查。cjb和sub判断E是个cls的old题,cjb上机很快敲完,也wa了,调了精度wa在了后面的点,很难受。sub和yzc终于找到了A的问题,yzc上机终于A3y70。cjb在接下来的时间里修改了无数次的E,wa在各种各样的地方,其中cjb也和yzc讲解了树套树优化网络流的方法,yzc抽空上机写完了,sub独力开C,多次上机都告失败。最后cjb改了匪夷所思的地方后终于E12y145。yzc上机很快写完了G,提交获得tle。cjb表示可能要用二维st表代替树套树,给yzc讲解完后yzc上机G2y183。sub终于得到了C的做法,之后C1y203。之后三个人试图讨论D,没有得到很优美的做法,sub表示B是个三维凸包+最小圆覆盖的板子题,cjb上机开始敲,敲了20多min还让yzc查了很久bug,最后20min sub rush B没有成功,赛后20min通过了B,敲板子的时候sub给yzc理论了D,但是做法比较不清真,思路不清晰,没能达成输出。
总结
chenjb
时隔多年,又一次吃了NAIPC的屎,其实还是套路上的欠缺,我们今天严格执行了“宁可差题数也不能差进度”这个策略,虽然5题还是有点差强人意,但是目前看来还是Acceptable的,很多队伍都是在临近final前做这套题,自然状态也不可同日而语,我们要在去MIPT前抓紧时间提高,步子迈大些也无所谓,把最后的磨合和调整留给MIPT CAMP。
oipotato
比起屎,可能还是烧烤比较好吃。
subconscious
楼上说的对。
题解
- A:把括号序列处理成,左边都是右括号,右边都是左括号的形式,记为A个左括号,B个右括号。将B和A-B塞入数组,对于A-B>=0,按照A升序排序,否则按照A降序排序,dp即可,类似背包。
- B:跑出三维凸包,枚举面,以面为圆柱底,所有点投影到该平面上,变成最小圆覆盖。
- C:f[i][j]代表区间[i,j]生成树方案,g[i][j]代表从i到j已经有一条边的生成方案,如果i和j互质,方案数强制为0,f[i][j]=f[i][k]*g[k][j](i<=k<=j-1),g[i][j]=Σf[i][k]*f[k][j](i<=k<=j-1),答案为f[1][n]。
- D:考虑类似最长上升子序列二分的做法,对于一棵子树,维护一个序列表示每个答案对应的最小权值,由于子树互相之间独立,可以直接合并所有子树的序列,将父亲节点在序列中二分,并替换掉大于本身的第一个值即可。具体实现时使用启发式合并,并用set维护此序列,一个巧妙的操作是离散化的时候对于相同权值的点,按照节点编号给予不同的离散化值,这样既保证了题目要求,又使所有节点权值不同,保证了set的正常工作。
- E:二分一个mid值给特殊的边后跑MST,整数就可以了,注意排序的时候相同代价的边要把特殊的边放在后头,正确性待思考。
- F
- G:用二维st表优化最大流建边,每个买家只需要连出4条边对应自己的矩形(具体类比四分树)
- H:可证必存在一点出边颜色完全相同。可不断找出剩下的图中的那个点,得到一序列Ai,称Ai颜色为出边颜色。之后枚举子图中最后出现的点。可维护一个数组代表贡献为x子图的方案树数。
- I
- J:统计两种字母个数,相同输出1,否则输出0。
- K
补题
附加文件
- 1.png by chenjb