2017-2018 Southeastern European Regional Programming Contest (SEERC 2017)
Jump to navigation
Jump to search
由于选题人的失误这场没有配置题解,也没有相应的 wiki。可能要当第一个。(似乎本 wiki 根本没有被搜索引擎收录,凉凉。)
这场有一半的题是 kblack 做的。ultmaster 只做了一个签到题。之所以能贡献这一个签到题似乎是因为数据炸了。
Problem A
Solved by ultmaster. 02:22 (+2)
题意:求一个串有多少种方案成为另一个串的子序列。在每一个字母出现后,后 $b_h$ 个字母不能选。$b_h$ 是一个字母的函数。
题解:大概乱 DP 一下就好了。$dp(i,j)$ 表示第 $i$ 场必须在第 $j$ 天听有多少种方案。然后向后转移的时候要把可能可以转移的地方标记好,由于标记的是一段,所以要用差分。
Problem D
Solved by zerol. 02:53 (+)
题意:给一个每列有且只有 2 个 1 的 $\mathbb{ Z }_2$ 意义下的矩阵,求秩。
题解:看做无向图,答案就是行数与联通块个数之差。(简单证明:大小为 n 的联通块,显然秩不超过 n - 1,但秩不到 n - 1 的话就没法联通了。不同联通块的秩显然可以累加。)
Problem F
Solved by kblack. 02:38 (+)
题意:要求把一个 01 串变成另一个 01 串的最小代价。每个 bit 都有一个代价,翻转一位的代价定义为翻转后所有值为 1 的 bit 的代价和。
题解:
Problem G
Solved by kblack. 01:50 (+3)
Problem J
Solved by zerol. 04:37 (+2)
题意:Nim 游戏,但是后手可以操作两次。
题解:打表找规律。
zerol: 规律竟然还能看漏,背锅背锅。能打表的博弈先打表,肯定比手推来得稳。
Problem K
Solved by kblack. 01:23 (+)