2017-Sp108-team2

从 Trac 迁移的文章

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

原文章内容如下:

 [[Image(1.png,500px)]]
== 流水账 ==
开场各自看题,cjb秒了D,'''D1y8'''。yzc秒了B,'''B1y16'''。cjb读了F,问了下sub的坐标变换,丢给yzc搞,cdc一下'''F1y35'''。sub思考了H,和cjb讨论了一下后上机,'''H1y41'''。cjb上机写C,ac自动机搞了搞丢给sub高斯消元,'''C1y83'''。cjb丢了个线段树优化建图的东西给yzc,三个人讨论了一下,yzc上机写A,之后过不了样例,sub上机写I,yzc和cjb讨论了之后明晰了做法,上机fix,'''A1y140'''。sub上机I wa了,yzc上机写之前和sub讨论的J,也wa了。之后找到错误又wa,cjb读题发现J的坑,'''J3y186'''。sub上机写I,还是wa,cjb开了G,质疑了sub的模型,sub发现读题有点偏差,就变成了sb题,cjb上机写G,'''G1y227'''。sub和yzc在机下研究I,发现I读错题意了,sub思考做法,G过后上机,'''I1y243'''。yzc全场一直在努力用n^2^刚E,又wa又tle,怀疑人生。cjb封榜后大致想到了E点分的统计,写不完了GG。
== 总结 ==
=== chenjb ===
抢下了D的一血,开心。今天还是比较顺,但是有三道题读错了,稍微拍下sub的头,不过一个值得提醒的点是:模型转化的时候一定要注意不要漏掉corner case,如果wa了要先回到题面找细节。另外E最后才想到点分治的统计方式,写不完了。最后被claris 30发交K反杀,真难过QAQ
=== oipotato ===
=== subconscious  ===
== 题解 ==
 * A:线段树优化建图,然后跑tarjan,用set维护块里的最小值,注意去掉无关的点。

 * B:set维护即可。

 * C:KMP或者AC自动机建起来,跑高斯消元。

 * D:连续的两个字母可以消掉,观察题面还可获得ababa可以变成bab,缩到最后如果剩下字母就是open,反之close。

 * E:yzc

 * F:(x,y)变成(x+y,x-y),变成询问一个矩形的点数,cdq分治。

 * G:认真观察式子,会发现极值只在t=0和T的时候取得,把一个点变化为(a*0+b,a*T+b),跑最小圆覆盖,半径的平方就是答案。

 * H:f[mask]存一个二元组表示mask下最少背包数及最空的背包是多少,2^24^*24暴力转移。

 * I:a直接dp记录物品数,b二分答案,对于大于小于mid的物品分两个背包合并,c先每种加一个,不断增加轮次,d用双堆栈模拟队列即可。

 * J:f[i][0/1]表示第一个序列匹配到i这个位置,向上/下答案,把B序列逐个加入,用树状数组维护转移。注意题意有坑,任意一个长度为2的公共子序列都是答案。

 * K:

流水账

开场各自看题,cjb秒了D,D1y8。yzc秒了B,B1y16。cjb读了F,问了下sub的坐标变换,丢给yzc搞,cdc一下F1y35。sub思考了H,和cjb讨论了一下后上机,H1y41。cjb上机写C,ac自动机搞了搞丢给sub高斯消元,C1y83。cjb丢了个线段树优化建图的东西给yzc,三个人讨论了一下,yzc上机写A,之后过不了样例,sub上机写I,yzc和cjb讨论了之后明晰了做法,上机fix,A1y140。sub上机I wa了,yzc上机写之前和sub讨论的J,也wa了。之后找到错误又wa,cjb读题发现J的坑,J3y186。sub上机写I,还是wa,cjb开了G,质疑了sub的模型,sub发现读题有点偏差,就变成了sb题,cjb上机写G,G1y227。sub和yzc在机下研究I,发现I读错题意了,sub思考做法,G过后上机,I1y243。yzc全场一直在努力用n2刚E,又wa又tle,怀疑人生。cjb封榜后大致想到了E点分的统计,写不完了GG。

总结

chenjb

抢下了D的一血,开心。今天还是比较顺,但是有三道题读错了,稍微拍下sub的头,不过一个值得提醒的点是:模型转化的时候一定要注意不要漏掉corner case,如果wa了要先回到题面找细节。另外E最后才想到点分治的统计方式,写不完了。最后被claris 30发交K反杀,真难过QAQ

oipotato

subconscious

题解

  • A:线段树优化建图,然后跑tarjan,用set维护块里的最小值,注意去掉无关的点。
  • B:set维护即可。
  • C:KMP或者AC自动机建起来,跑高斯消元。
  • D:连续的两个字母可以消掉,观察题面还可获得ababa可以变成bab,缩到最后如果剩下字母就是open,反之close。
  • E:yzc
  • F:(x,y)变成(x+y,x-y),变成询问一个矩形的点数,cdq分治。
  • G:认真观察式子,会发现极值只在t=0和T的时候取得,把一个点变化为(a*0+b,a*T+b),跑最小圆覆盖,半径的平方就是答案。
  • H:f[mask]存一个二元组表示mask下最少背包数及最空的背包是多少,224*24暴力转移。
  • I:a直接dp记录物品数,b二分答案,对于大于小于mid的物品分两个背包合并,c先每种加一个,不断增加轮次,d用双堆栈模拟队列即可。
  • J:f[i][0/1]表示第一个序列匹配到i这个位置,向上/下答案,把B序列逐个加入,用树状数组维护转移。注意题意有坑,任意一个长度为2的公共子序列都是答案。
  • K:
附加文件