2017-Sp194-team2
从 Trac 迁移的文章
这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。
原文章内容如下:
[[Image(1.png,500px)]]
== 流水账 ==
出门各自看题,cjb读了H,和sub讨论了一下,'''H1y12'''。cjb和yzc讨论E,'''E3y58'''。之后各自开题,三人讨论A,cjb开D,之后sub上机写A,被cjb换下来写D的暴搜,RE1,感觉数组开大了,之后变成TLE,把vector改成链表,死都过不去第7个点,之后cjb读代码,发现有个<=打成了<,改了之后'''D6y188'''。sub继续上机写A,发现做法错了重写,'''A1y215'''。cjb和yzc讨论I,yzc上机写I,获得wa,写了拍。cjb和sub开出了C,yzc下机查错的时候cjb和sub交替上机rush C,tle了之后cjb发现sub用错了自己的一个变量, 修改后'''C2y293'''。之后rush I,发现构造出了问题,很凉,结束后看题解,发现只差一点,修改后AC。
== 总结 ==
=== chenjb ===
UOJ Selection好牛逼啊!另外DZY loves Chinese那个套路一定要记好了...每次都忘。
=== oipotato ===
=== subconscious ===
== 题解 ==
* A:取出循环序列,序列是每个联通块dfs树后序遍历的倒序,然后序列dp,区间转移是区间的拆分法乘上区间内有多少个数字大于区间头。[http://uoj.ac/problem/114 UOJ 信息的交换]
* B:[http://uoj.ac/problem/119 UOJ 决战圆锥曲线]
* C:首先来个经典操作:“求一棵生成树,给所有的非树边随机分配一个权值,树边的权值为所有覆盖它的非树边的权值的异或和。这样做之后,去掉k条边后原图不连通,当且仅当k条边的一个子集权值异或和为0。只有树边和覆盖它的非树边都消失了或者根本没有非树边才会造成非联通。因为权值是随机的,冲突的可能性很小....” 这道题运用类似的操作,因为只有10条非树边,依次设值为2^i^,类似的方法标记所有边。之后将权值相同的边缩在一起,之后暴力枚举维护线性基即可。因为删去原图任意11条边一定不连通,则枚举状态最多为C(27,10)。 [http://uoj.ac/problem/138 开学前的涂鸦]
* D:用哈希表维护记忆化搜索,暴搜即可。[http://uoj.ac/problem/167 元旦老人与汉诺塔]
* E:枚举1的个数,x,y不相等时,直接给出某一个前缀和位置的确定值,过程中一旦发生冲突,直接不合法,对于x,y相等的,显然只需要满足最大的x即可,然后得到了一些确定值的前缀和位置,组合数计算即可。对于x,y相等,需容斥两个条件满足和不满足的情况。[http://uoj.ac/problem/209 票数统计]
* F:[http://uoj.ac/problem/214 UOJ 合唱队形]
* G:[http://uoj.ac/problem/217 UOJ 奇怪的线段树]
* H:按f值从小到大放数,同层按从左到右倒序放数。
* I:当数字没有重复时,一个显然的要求是当前中位数要小于等于后面所有数字(算法一),另一个显然的性质是第一个数一定小于等于中位数,当数字重复时,如果是大于中位数的直接视为没有重复,否则找到小于中位数的第一个重复的数字,序列头两个就是这个数字,之后将剩下数字分为大于这个数和小于等于这个数的两个序列,依次从大到小往序列里塞,最后如果剩下的是小于等于队列头的,就继续从大到小塞进序列结束,否则对剩下的这些大于队列头的数字执行算法一。[http://uoj.ac/contest/36/problem/280 UOJ 题目难度提升]
* J:[http://uoj.ac/problem/76 UOJ 懒癌]

流水账
出门各自看题,cjb读了H,和sub讨论了一下,H1y12。cjb和yzc讨论E,E3y58。之后各自开题,三人讨论A,cjb开D,之后sub上机写A,被cjb换下来写D的暴搜,RE1,感觉数组开大了,之后变成TLE,把vector改成链表,死都过不去第7个点,之后cjb读代码,发现有个<=打成了<,改了之后D6y188。sub继续上机写A,发现做法错了重写,A1y215。cjb和yzc讨论I,yzc上机写I,获得wa,写了拍。cjb和sub开出了C,yzc下机查错的时候cjb和sub交替上机rush C,tle了之后cjb发现sub用错了自己的一个变量, 修改后C2y293。之后rush I,发现构造出了问题,很凉,结束后看题解,发现只差一点,修改后AC。
总结
chenjb
UOJ Selection好牛逼啊!另外DZY loves Chinese那个套路一定要记好了...每次都忘。
oipotato
subconscious
题解
- A:取出循环序列,序列是每个联通块dfs树后序遍历的倒序,然后序列dp,区间转移是区间的拆分法乘上区间内有多少个数字大于区间头。UOJ 信息的交换
- B:UOJ 决战圆锥曲线
- C:首先来个经典操作:“求一棵生成树,给所有的非树边随机分配一个权值,树边的权值为所有覆盖它的非树边的权值的异或和。这样做之后,去掉k条边后原图不连通,当且仅当k条边的一个子集权值异或和为0。只有树边和覆盖它的非树边都消失了或者根本没有非树边才会造成非联通。因为权值是随机的,冲突的可能性很小....” 这道题运用类似的操作,因为只有10条非树边,依次设值为2i,类似的方法标记所有边。之后将权值相同的边缩在一起,之后暴力枚举维护线性基即可。因为删去原图任意11条边一定不连通,则枚举状态最多为C(27,10)。 开学前的涂鸦
- D:用哈希表维护记忆化搜索,暴搜即可。元旦老人与汉诺塔
- E:枚举1的个数,x,y不相等时,直接给出某一个前缀和位置的确定值,过程中一旦发生冲突,直接不合法,对于x,y相等的,显然只需要满足最大的x即可,然后得到了一些确定值的前缀和位置,组合数计算即可。对于x,y相等,需容斥两个条件满足和不满足的情况。票数统计
- F:UOJ 合唱队形
- G:UOJ 奇怪的线段树
- H:按f值从小到大放数,同层按从左到右倒序放数。
- I:当数字没有重复时,一个显然的要求是当前中位数要小于等于后面所有数字(算法一),另一个显然的性质是第一个数一定小于等于中位数,当数字重复时,如果是大于中位数的直接视为没有重复,否则找到小于中位数的第一个重复的数字,序列头两个就是这个数字,之后将剩下数字分为大于这个数和小于等于这个数的两个序列,依次从大到小往序列里塞,最后如果剩下的是小于等于队列头的,就继续从大到小塞进序列结束,否则对剩下的这些大于队列头的数字执行算法一。UOJ 题目难度提升
- J:UOJ 懒癌
附加文件
- 1.png by chenjb