摘要: 题意: 一共有n个宿舍,每个宿舍有4个人。给出第一年的人员分布和第二年的人员分布,问至少有多少人需要移动。 题解: 对于第一年的每个宿舍,向今年的每种组合连边。流量为1,费用为(4 - 组合中已在该宿舍的人数)。 最后跑一边费用流。 #include <bits/stdc++.h> using na 阅读全文
posted @ 2018-08-03 10:23 Pneuis 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 题意: T次询问,每次给出n,m。求sigma(k:0->m)C(n, k)。 题解: 用离线莫队来做。 令S(n,m) = sigma(k:0->m)C(n, k)。 S(n+1, m) = 2S(n, m) - C(n, m) S(n-1, m) = (S(n, m) + C(n-1, m)) 阅读全文
posted @ 2018-08-02 10:32 Pneuis 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出一个已知的哈希表。求字典序最小的插入序列,哈希表不合法则输出-1。 题解: 对于哈希表的每一个不为-1的数,假如他的位置是t,令s = a[t]%n。则这个数可以被插入当且仅当第s ~ t-1个数都不为-1且已经插入完成。 那么对于每一个这样的数,需要连t-s条边(s<=t)或者t+n- 阅读全文
posted @ 2018-07-29 15:52 Pneuis 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出一段序列,每次将从第p个数开始的s个数移到最前面。求最终的序列是什么。 题解: Splay翻转模板题。存下板子。 #include <bits/stdc++.h> using namespace std; const int INF = 1e6; const int N = 1e5+10 阅读全文
posted @ 2018-07-28 09:46 Pneuis 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 题意: 构造一个n*n的矩阵,使得Ai,i = 0,Ai,j = Aj,i,Ai,1+Ai,2+...+Ai,n = 2。求种类数。 题解: 把构造的矩阵当成邻接矩阵考虑。 那么所有点的度数都为2,且存在重边但不存在自环。这种情况的图为多个环,即每个点都在且仅在一个环里。 考虑每次加一个点来递推dp 阅读全文
posted @ 2018-07-20 16:01 Pneuis 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 题意: 给一个n*m的矩阵赋值(0,1,2)。使得每个数都不小于它左面和上面的数。 题解: 构建0和1的轮廓线。对于单独的轮廓线,共需要往上走n步,往右走m步。有C(n+m,n)种方式。 两个轮廓线的总情况是C(n+m,n)*C(n+m,n)种方式。但是还要去重掉相交的情况。 假设将0轮廓线向左上平 阅读全文
posted @ 2018-07-20 12:13 Pneuis 阅读(371) 评论(0) 推荐(0) 编辑
摘要: 题意: n个点,m1条边的图E1,n个点,m2条边的图E2。求图E2有多少子图跟图E1同构。 题解: 用STL的全排列函数next_permutation()枚举映射。对于每一种映射枚举每一条边判断合法性。 总情况数要除以图E1的自同构数去重。 #include <bits/stdc++.h> us 阅读全文
posted @ 2018-07-19 20:17 Pneuis 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://nanti.jisuanke.com/t/28412 题意: 给出n个数的序列。问序列中有多少个区间满足,排序完之后任意两个相邻的数之差不大于1。 题解: 用max表示区间最大值,min表示区间最小值,cnt表示区间数字的种数。那么问题转化成求max-min=cnt+1的区 阅读全文
posted @ 2018-07-18 20:31 Pneuis 阅读(1614) 评论(1) 推荐(2) 编辑
摘要: 题目链接:https://nanti.jisuanke.com/t/28411 题意: 给出n(n<=36)个点的一个图。求点覆盖集数。 题解: 将n个点折半为L和R两部分。对于R内部的边,枚举状态判断是否可行。对可行的状态维护高维前缀和。 之后判断L内部的可行状态。对于每一个L内部的可行状态,在高 阅读全文
posted @ 2018-07-18 12:52 Pneuis 阅读(457) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出一棵树。两种操作,第一种是询问点u,v路径上的异或和,另一种是改一个点的值。 题解: 维护每个点到根节点的异或和。那么两个点之间的异或和就是两个点分别到根节点的异或和相异或,再异或上他们LCA节点的权值。 对于每次更改,只会影响他的子树到根节点的异或和。所以可以维护DFS序,每次修改一个 阅读全文
posted @ 2018-06-27 23:26 Pneuis 阅读(170) 评论(0) 推荐(0) 编辑