2016-C03-team5

从 Trac 迁移的文章

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

原文章内容如下:

== 流水账 ==
=== jcq1234 === 
今天前期还不错,学长们很强势,分别拿下了I题和F题的FB。后面感觉选题有问题,点开了几道题感觉都不太可做,
最后决定做C题和D题,D题很快就有思路了,但是没想到欧洲的自然数是从1开始的,一直WA,然后也找不出bug,一共
提交了20次都没过...
C题看到时限只有0.1s,感觉应该是个推公式的题目,但是最终还是没有推出来。正常比赛主要浪费了大量时间在D题,
代码逻辑正确但是以为有错,疯狂debug,应该用枚举题意的方法。

== 总结 ==

=== jcq1234 ===
 * 数学题一时半会做不出来就该果断弃掉,太浪费时间。
 * 题意不清时要按照一定顺序枚举题意,不能太死板
 * 选题目还是要选对,这次就没发现H题可以做
 * 总是还是缺少比赛经验

=== wtthhh ===
 * 今天题目比较难,选题比较重要
 * 写完前两题之后想写A题的,但写到一半的时候突然感觉这个数据可以出的非常严格,很容易卡掉随机化。。但实际上并没有,应该坚持写掉A题的
 * 放弃A题之后写B题,场上想的算法感觉时间复杂度比较极限。。结果最后也没过掉。。发现是LCA倍增开小了,应该开到20以上,少算了一个0。。。但是赛后测还是T了,这种题应该放在比赛最后做,不应该中场去做没有把握的题
 * H题是比较可做的题,如果比赛的时候多花点时间的话应该能过掉。。但是时间全浪费在B了
 * 总体来说还是要注意做题顺序,正确性没有把握的题即使有思路也不要马上写,很容易被卡全场

=== triomino === 
 * G题想到做法但是程序写差wa了两次,应该多手测几组数据再交。
 * D题占用太多时间,并且没有发现H可做。(事实上稍微想了一下H,但是没有深入思考)

 == 题解 ==


=== B ===
修改多,询问少,应该考虑修改复杂度较低,询问复杂度稍高的算法。
分块,O(1)修改,sqrt(n)查询

=== E ===
对所有点跑最短路,之后用K^4的状压DP


=== D ===
如果a和b不相等,a+n和b+n的最大公约数一定是|b-a|的一个约数,枚举|b-a|的约数g,对每个g,找到这样的数对i和j,
使g*i和g*j分别是a+n和b+n,且i,j互质,可以用O(1)的时间找到。

流水账

jcq1234

今天前期还不错,学长们很强势,分别拿下了I题和F题的FB。后面感觉选题有问题,点开了几道题感觉都不太可做,

最后决定做C题和D题,D题很快就有思路了,但是没想到欧洲的自然数是从1开始的,一直WA,然后也找不出bug,一共

提交了20次都没过...

C题看到时限只有0.1s,感觉应该是个推公式的题目,但是最终还是没有推出来。正常比赛主要浪费了大量时间在D题,

代码逻辑正确但是以为有错,疯狂debug,应该用枚举题意的方法。

总结

jcq1234

  • 数学题一时半会做不出来就该果断弃掉,太浪费时间。
  • 题意不清时要按照一定顺序枚举题意,不能太死板
  • 选题目还是要选对,这次就没发现H题可以做
  • 总是还是缺少比赛经验

wtthhh

  • 今天题目比较难,选题比较重要
  • 写完前两题之后想写A题的,但写到一半的时候突然感觉这个数据可以出的非常严格,很容易卡掉随机化。。但实际上并没有,应该坚持写掉A题的
  • 放弃A题之后写B题,场上想的算法感觉时间复杂度比较极限。。结果最后也没过掉。。发现是LCA倍增开小了,应该开到20以上,少算了一个0。。。但是赛后测还是T了,这种题应该放在比赛最后做,不应该中场去做没有把握的题
  • H题是比较可做的题,如果比赛的时候多花点时间的话应该能过掉。。但是时间全浪费在B了
  • 总体来说还是要注意做题顺序,正确性没有把握的题即使有思路也不要马上写,很容易被卡全场

triomino

  • G题想到做法但是程序写差wa了两次,应该多手测几组数据再交。
  • D题占用太多时间,并且没有发现H可做。(事实上稍微想了一下H,但是没有深入思考)

题解

B

修改多,询问少,应该考虑修改复杂度较低,询问复杂度稍高的算法。

分块,O(1)修改,sqrt(n)查询

E

对所有点跑最短路,之后用K^4的状压DP

D

如果a和b不相等,a+n和b+n的最大公约数一定是|b-a|的一个约数,枚举|b-a|的约数g,对每个g,找到这样的数对i和j,

使g*i和g*j分别是a+n和b+n,且i,j互质,可以用O(1)的时间找到。