2019-Sp046-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=001482 contest]
== 流水账 ==
== 总结 ==
'''zqq: ''' 今天开场我们很崩溃。我的D题最简单的地方写错了,调了很久(因为那种数据只会在G满的时候出错,没有机时没有测这样的数据)。Heltion写B的构造也调了非常久。
I题是我的锅,中途我都想到了容斥,但是没有仔细去想,认为是错的。其实我想I题的时间挺少的,一开始调D就给lyk想,后来写完E就直接写I了,就中途出去买咖啡想了一下。
E题的方向一开始想对了,但是没有仔细往下想,后来思路就有点奇怪。
I题最后竟然卡过去了。用32位机没有long long会变快。
A,C都是可做的题,但是没有时间了。
建议一开场调不出来题多和队友交流,我的D题是因为只有我会轮廓线dp所以只能自己调,建议Heltion再遇到类似的情况和lyk交流一下,或者直接让他来写,这样开场的节奏好很多。
复杂度错误的东西虽然偶尔可以卡一卡,但是还是应该想更加正确的算法。
'''Heltion: ''' 看完B发现是个简单数逻题,然后很快在纸上画出了正解,数好了点数和边数,但不知道为什么加边的时候总是加漏边, 加了好多次终于加完了,
然后发现式子推错了, 又加了一些点和边. 然后发现题目符号看反了,过了样例交了一发wa, 然后发现输入顺序看反了,终于过了.
然后口胡了一个E的多一个O(kn^4^/64)的做法. 然后一起卡卡卡卡卡I.
这两天都是开场看到能做的题懒得解释就自己直接上了, 然后过了很久下来发现已经凉了.
== 题解 ==
* A :圆方树 + DP。 环上概率要两个方向分开算。超级好写。40min就写完了,除了没有判断无解几乎1A。但是今天没有时间写了
* B : 一个点入边权全是1000就是或门,一个点入边权全是-1000就是或非门,然后搞一搞,最后构造几个点使得1变成1,1/2变成0即可.
zqq:主要难以想到的是构造一个常数(其实第一步我一个人也挺难想到,就是每个点有效输入只有0,1/2,1,但是还没有看题队友就告诉我了)。抓住 inf : 1 , 0 : 1 / 2 , -inf : 0的性质,把一个输入连两层inf就是常数1。之后就可以用这个1来构造或门和反相器(有常数就可以区分0和1/2,1和1/2)。写的时候要把所有东西都在草稿纸上画清楚,包括每一层怎么构造。然后把或和reverse封装成函数,减少可能犯的错误。
然后要敢于交,要手画一个样例太麻烦了。所以我就直接交了。然而这道题真的很坑,他变量右边是1,左边是n,还好heltion WA 8了,所以我补的时候很顺利,总共30几分钟就过了。
* C : 观察样例可以发现轨迹有一些规律,大致就是从左到右,再从右到左。写一个dfs,从左到右和从右到左时,8个方向分别有各自的优先级(参照样例),进行dfs。打印出dfs到结果时,dfs树每一层选择的是第几个儿子,可以发现大部分时候就是选择的第一个儿子。找出这一串东西的规律即可。n较小时需要暴力。
* I : '''三维偏序可以容斥!'''。直接统计二维偏序,每对三维偏序会被计算三次,二维偏序只会计算一次。复杂度一个log
[wiki:2017-Sp263-team2 legilimens]
* [https://icpc.camp/deep-dark-fantasy/20170501 DeepDarkFantasy]
* [https://icpc.camp/wood-cube/Petrozavodsk%20Summer-2016%20Pavel%20Khaustov%202 WoodCube]
* [https://icpc.camp/new-meta/2017/2/28%20Pavel%20Khaustov%20Contest%202 NewMeta]
== 补题 ==
* A :zqq
* C : lyk
* G :
* H :


流水账
总结
zqq: 今天开场我们很崩溃。我的D题最简单的地方写错了,调了很久(因为那种数据只会在G满的时候出错,没有机时没有测这样的数据)。Heltion写B的构造也调了非常久。
I题是我的锅,中途我都想到了容斥,但是没有仔细去想,认为是错的。其实我想I题的时间挺少的,一开始调D就给lyk想,后来写完E就直接写I了,就中途出去买咖啡想了一下。
E题的方向一开始想对了,但是没有仔细往下想,后来思路就有点奇怪。
I题最后竟然卡过去了。用32位机没有long long会变快。
A,C都是可做的题,但是没有时间了。
建议一开场调不出来题多和队友交流,我的D题是因为只有我会轮廓线dp所以只能自己调,建议Heltion再遇到类似的情况和lyk交流一下,或者直接让他来写,这样开场的节奏好很多。
复杂度错误的东西虽然偶尔可以卡一卡,但是还是应该想更加正确的算法。
Heltion: 看完B发现是个简单数逻题,然后很快在纸上画出了正解,数好了点数和边数,但不知道为什么加边的时候总是加漏边, 加了好多次终于加完了,
然后发现式子推错了, 又加了一些点和边. 然后发现题目符号看反了,过了样例交了一发wa, 然后发现输入顺序看反了,终于过了.
然后口胡了一个E的多一个O(kn4/64)的做法. 然后一起卡卡卡卡卡I.
这两天都是开场看到能做的题懒得解释就自己直接上了, 然后过了很久下来发现已经凉了.
题解
- A :圆方树 + DP。 环上概率要两个方向分开算。超级好写。40min就写完了,除了没有判断无解几乎1A。但是今天没有时间写了
- B : 一个点入边权全是1000就是或门,一个点入边权全是-1000就是或非门,然后搞一搞,最后构造几个点使得1变成1,1/2变成0即可.
zqq:主要难以想到的是构造一个常数(其实第一步我一个人也挺难想到,就是每个点有效输入只有0,1/2,1,但是还没有看题队友就告诉我了)。抓住 inf : 1 , 0 : 1 / 2 , -inf : 0的性质,把一个输入连两层inf就是常数1。之后就可以用这个1来构造或门和反相器(有常数就可以区分0和1/2,1和1/2)。写的时候要把所有东西都在草稿纸上画清楚,包括每一层怎么构造。然后把或和reverse封装成函数,减少可能犯的错误。
然后要敢于交,要手画一个样例太麻烦了。所以我就直接交了。然而这道题真的很坑,他变量右边是1,左边是n,还好heltion WA 8了,所以我补的时候很顺利,总共30几分钟就过了。
- C : 观察样例可以发现轨迹有一些规律,大致就是从左到右,再从右到左。写一个dfs,从左到右和从右到左时,8个方向分别有各自的优先级(参照样例),进行dfs。打印出dfs到结果时,dfs树每一层选择的是第几个儿子,可以发现大部分时候就是选择的第一个儿子。找出这一串东西的规律即可。n较小时需要暴力。
- I : 三维偏序可以容斥!。直接统计二维偏序,每对三维偏序会被计算三次,二维偏序只会计算一次。复杂度一个log
补题
- A :zqq
- C : lyk
- G :
- H :