09 2018 档案

摘要:CSL的校园卡 思路: bfs,用状压表示走过的区域,然后和x1,y1,x2,y2构成所有的状态,然后标记一下就可以了 代码: 阅读全文
posted @ 2018-09-25 22:51 Wisdom+.+ 阅读(161) 评论(0) 推荐(0)
摘要:明七暗七 思路: 二分+数位dp 代码: 阅读全文
posted @ 2018-09-25 20:14 Wisdom+.+ 阅读(221) 评论(0) 推荐(0)
摘要:方格填色 思路: 用矩阵快速幂优化dp 代码: 阅读全文
posted @ 2018-09-25 19:44 Wisdom+.+ 阅读(167) 评论(0) 推荐(0)
摘要:自杀游戏 思路: sg函数 代码: 阅读全文
posted @ 2018-09-24 20:40 Wisdom+.+ 阅读(130) 评论(0) 推荐(0)
摘要:D - Factorization 思路:把相同的质因子看成相同的小球,求把这些小球放进n个盒子里的方案数。 代码: 阅读全文
posted @ 2018-09-24 19:24 Wisdom+.+ 阅读(210) 评论(0) 推荐(0)
摘要:1853 思路: 容斥原理 先预处理出所有的幸运数字,然后去重,然后用容斥原理求 有一个优化,从大的开始求lcm,如果大于b了就不用枚举了,这是因为两个大于1e5的乘起来就会 所以最后枚举的子集只用在小于1e5中考虑就行了,小于1e5只有很少 还有要用unsigned long long,不然会溢出 阅读全文
posted @ 2018-09-23 23:49 Wisdom+.+ 阅读(206) 评论(0) 推荐(0)
摘要:ABland Yard 思路: 用了类似拓扑排序的方法来判环 代码: 阅读全文
posted @ 2018-09-18 16:44 Wisdom+.+ 阅读(204) 评论(0) 推荐(0)
摘要:4053 思路: 主席树 先分别求前缀和后缀的逆序数 然后要求某一段的逆序数,就可以根据前缀或着后缀根据容斥求出答案, 这样需要枚举这一段中的数,求之前或者之后有多少个比他大或比他小的数, 这个可以通过用主席数维护权值线段树来做 然后每次枚举断开后小的那段区间,这样最多需要枚举n*log(n)次 复 阅读全文
posted @ 2018-09-17 22:43 Wisdom+.+ 阅读(432) 评论(0) 推荐(0)
摘要:E - Maximum Matching 思路: 半欧拉图 定理:一个度数为奇数的点的个数小于等于2的联通图存在欧拉通路,即半欧拉图 对于这道题目的图,点的个数为4,所以最坏的情况下4个点的度数都为奇数,在这种情况下只要删去一条边就可以满足条件了 欧拉回路算法:大圈小圈法,从起点开始跑每条边,把每条 阅读全文
posted @ 2018-09-14 23:58 Wisdom+.+ 阅读(361) 评论(0) 推荐(0)
摘要:错排数:D(n) = (n-1) [D(n-2) + D(n-1)], D(1) = 0, D(2) = 1 问题:n封信放入n个信封,要求全部放错方案数 解决方案: 假设n个元素的错排数记为D(n) 第一步,把第n个元素放在一个位置,比如位置k,一共有n-1种方法; 第二步,放编号为k的元素,这时 阅读全文
posted @ 2018-09-14 21:58 Wisdom+.+ 阅读(178) 评论(0) 推荐(0)
摘要:数数字 思路: 数位dp 代码: 阅读全文
posted @ 2018-09-10 23:27 Wisdom+.+ 阅读(273) 评论(0) 推荐(0)
摘要:Ka Chang 思路: dfs序+树状数组+分块 先dfs处理好每个节点的时间戳 对于每一层,如果这一层的节点数小于sqrt(n),那么直接按照时间戳在树状数组上更新 如果这一层节点个数大于sqrt(n),那么直接存一下这一层每个节点的大小(都是一样的),这样的层数不会超过sqrt(n)层 然后查 阅读全文
posted @ 2018-09-09 22:06 Wisdom+.+ 阅读(212) 评论(0) 推荐(0)
摘要:中位数 思路: 二分答案 代码: 阅读全文
posted @ 2018-09-09 20:26 Wisdom+.+ 阅读(216) 评论(0) 推荐(0)
摘要:括号 思路: dp 状态:dp[i][j]表示到i位置为止未匹配的 '(' 个数为j的方案数 状态转移: 如果s[i] == '(' dp[i][j] = dp[i-1][j] + dp[i-1][j-1] 如果s[i] == ')' dp[i][j] = dp[i-1][j] + dp[i-1][ 阅读全文
posted @ 2018-09-09 00:04 Wisdom+.+ 阅读(277) 评论(0) 推荐(0)
摘要:3949 思路: 线性基,线性基的每个元素尽可能小 将k转换成二进制与排好序的线性基相对应 如果线性基的个数小于n,说明n个元素线性相关,所以可以构成0,k要减1 代码: 阅读全文
posted @ 2018-09-08 00:13 Wisdom+.+ 阅读(156) 评论(0) 推荐(0)
摘要:xor序列 思路:线性基 代码: 阅读全文
posted @ 2018-09-07 22:53 Wisdom+.+ 阅读(171) 评论(0) 推荐(1)
摘要:D - All Your Paths are Different Lengths 思路: 二进制构造 首先找到最大的t,使得2^t <= l 然后我们就能构造一种方法使得正好存在 0 到 2^t - 1 的路径 方法是:对于节点 i 到 i + 1,添加两条边,一条边权值是2^(i-1),一条边权值 阅读全文
posted @ 2018-09-04 23:38 Wisdom+.+ 阅读(152) 评论(0) 推荐(0)