2019-Sp055-lyk

从 Trac 迁移的文章

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

原文章内容如下:

[[Image(1.png,700px)]]

[[Image(2.png,700px)]]

[wiki:2019-team2 返回Runespoor]


[http://opentrains.snarknews.info/~ejudge/team.cgi?contest_id=001531 contest]

== 流水账 ==


== 总结 ==

'''zqq: ''' '''双打'''

            这套题很有趣。感觉可以学到很多东西。

             K题没有做出来很遗憾。'''打表的姿势不足,打表要耐心,好好确认是否用了正确的方式,打表很多时候是做出一道题的关键!'''

             然后I题的模板有很大问题,用起来很不熟练,没有自己整理过。其实400行的板子需要抄的也就200行左右。虽然我们双打粘了板,其实这样不好。

             前面暴力部分以为很简单,结果太慌了调了很久,不够冷静。

             其他题都很简单,感觉我们过得偏慢。

'''Heltion:''' nmd怎么想到的从自由群也能出计数题.

=== 题解 ===

http://clatisus.com/Petrozavodsk%20Winter-2019.%20300iq%20Contest%201#k.-knowledge

* A : 感觉是一道经典匹配问题的变形。'''普通网络流是做不了既有只得、又有斜的的情况'''但是我们发现只有'+','*'的格子才会作为中心,然后可以把这两个格子拆成两个点(x1,x2),连边(x1,x2) , 如果是* , 连(x1,上下),(x2,左右)。如果是'+' , 两个都连上下左右。然后跑一般图最大匹配。如果拆出的两个点都被匹配,则合法。正确性:如果可以通过替换多一个合法解,则一定存在增广路,和最大匹配矛盾

* D : hall定理。发现可以按pi从大到小贪心,判定是看所有覆盖当前区间的区间是否都还有容量。因为区间的左右端点同时递增,一个区间[l,r]覆盖的区间个数等于右端点小于等于r - 左端点小于等于l,线段树维护S(r) - w(r) >= S(l - 1) - w(l - 1) , 每次区间减一。

* I : 题意等价于联通块大小 <= 6 , 然后发现每个联通块的染色数是度数 = 点数 + 1的多项式。先暴力dp再插值计算出多项式,然后分治fft,然后多点求值。模板非常混乱再加上暴力没有想清楚,调了很久,很不应该!

* K : 打表发现只有12个等价类('''这个打表要把长度开大一点,然后耐心的等待,否则无法得到12个,它可能先加到比较长然后在缩短''')。然后发现加一个'a','b'是等价类之间的转化。发现加一个其实是可以看做大小为4的置换,这12个等价类可以表示成大小为12的置换群(其实是4的所有偶排列)。然后矩乘

=== 补题 ===

 * A :  

 * E :

 * G :

 * H :

 * J :

 * K : zqq

返回Runespoor

contest

流水账

总结

zqq: 双打

这套题很有趣。感觉可以学到很多东西。

K题没有做出来很遗憾。打表的姿势不足,打表要耐心,好好确认是否用了正确的方式,打表很多时候是做出一道题的关键!

然后I题的模板有很大问题,用起来很不熟练,没有自己整理过。其实400行的板子需要抄的也就200行左右。虽然我们双打粘了板,其实这样不好。

前面暴力部分以为很简单,结果太慌了调了很久,不够冷静。

其他题都很简单,感觉我们过得偏慢。

Heltion: nmd怎么想到的从自由群也能出计数题.

题解

http://clatisus.com/Petrozavodsk%20Winter-2019.%20300iq%20Contest%201#k.-knowledge

  • A : 感觉是一道经典匹配问题的变形。普通网络流是做不了既有只得、又有斜的的情况但是我们发现只有'+','*'的格子才会作为中心,然后可以把这两个格子拆成两个点(x1,x2),连边(x1,x2) , 如果是* , 连(x1,上下),(x2,左右)。如果是'+' , 两个都连上下左右。然后跑一般图最大匹配。如果拆出的两个点都被匹配,则合法。正确性:如果可以通过替换多一个合法解,则一定存在增广路,和最大匹配矛盾
  • D : hall定理。发现可以按pi从大到小贪心,判定是看所有覆盖当前区间的区间是否都还有容量。因为区间的左右端点同时递增,一个区间[l,r]覆盖的区间个数等于右端点小于等于r - 左端点小于等于l,线段树维护S(r) - w(r) >= S(l - 1) - w(l - 1) , 每次区间减一。
  • I : 题意等价于联通块大小 <= 6 , 然后发现每个联通块的染色数是度数 = 点数 + 1的多项式。先暴力dp再插值计算出多项式,然后分治fft,然后多点求值。模板非常混乱再加上暴力没有想清楚,调了很久,很不应该!
  • K : 打表发现只有12个等价类(这个打表要把长度开大一点,然后耐心的等待,否则无法得到12个,它可能先加到比较长然后在缩短)。然后发现加一个'a','b'是等价类之间的转化。发现加一个其实是可以看做大小为4的置换,这12个等价类可以表示成大小为12的置换群(其实是4的所有偶排列)。然后矩乘

补题

  • A :
  • E :
  • G :
  • H :
  • J :
  • K : zqq
附加文件