05 2015 档案

摘要:结合得好巧妙。。。。化简后的问题是:给你两个点集A,B,求B的一个子集BB,使得BB的凸包包含A的凸包,求BB的最小大小。先特判答案为1,2的情况,答案为3的情况,我们先构造一个有向图:对于B集合中的两个点u,v,如果 所有A集合的点都在u->v的左侧,那么就连一条u->v的边。于是我们可以证明一个... 阅读全文
posted @ 2015-05-27 20:16 idy002 阅读(310) 评论(0) 推荐(0)
摘要:晕,m=0是要输出1(弄的我还找管理员要数据,但明显题意是叫我们输出0呀)最大密度子图,把边转换成点,然后二分答案,跑最大权闭合子图判定是否可行。 1 #include 2 #include 3 #include 4 #include 5 #define N 1110 6 #de... 阅读全文
posted @ 2015-05-27 14:55 idy002 阅读(295) 评论(0) 推荐(0)
摘要:做4次单调队列优化DP。 1 /************************************************************** 2 Problem: 1047 3 User: idy002 4 Language: C++ 5 Result... 阅读全文
posted @ 2015-05-27 14:41 idy002 阅读(183) 评论(0) 推荐(0)
摘要:新技能GET。用set保存点,然后只需要找前趋和后继就可以动态维护了。 1 /************************************************************** 2 Problem: 2300 3 User: idy002 4 ... 阅读全文
posted @ 2015-05-27 10:38 idy002 阅读(403) 评论(0) 推荐(0)
摘要:每日一水~~~ 1 #include 2 #include 3 #include 4 #define oo 0x3f3f3f3f 5 #define N 55010 6 using namespace std; 7 8 struct Edge { 9 int u, v, f;10 ... 阅读全文
posted @ 2015-05-26 17:18 idy002 阅读(241) 评论(0) 推荐(0)
摘要:算法: 先求出残量网络,计算出从src能够到的点集A,再求出能够到dst的点集B,如果所有点都被访问到了,那么割就是唯一的,即(A,B),否则(A,V-A)和(V-B,B)都是最小割。 (注意因为割的本质是有向边集,而不是点集V的划分,所以(A,V-A)和(V-B,B)有可能本质上还是同一个最小... 阅读全文
posted @ 2015-05-26 16:57 idy002 阅读(377) 评论(0) 推荐(0)
摘要:最小路径覆盖问题是:给定一个DAG,该DAG的一个路径覆盖是一个路径的集合,使得每个点属于且仅属于其中一条路径,问题就是求一个大小最小的路径集合。做法是将每个点A拆成两个点A1,A2,如果A->B,那么连A1->B2求一个最大匹配。一个结论是:最小路径数 = 点数 - 最大匹配证明的大概思路是: ... 阅读全文
posted @ 2015-05-26 16:07 idy002 阅读(238) 评论(0) 推荐(0)
摘要:属于模板题吧。。。 1 #include 2 #include 3 #include 4 #define min(a,b) ((a) edge;16 vector g[N];17 int dep[N], cur[N], qu[N], bg, ed;18 19 void ... 阅读全文
posted @ 2015-05-26 15:00 idy002 阅读(193) 评论(0) 推荐(0)
摘要:问题:有n个东西,分给m个人,对于每个东西,每个人有喜欢与不喜欢两种态度:like[i][j],如果喜欢,那么他得到该东西时增加的喜悦度为k,否则为1,问是否存在一种分法,使得每个人都达到该人的最低喜悦度b[i]。建模方法:src->thing[i] cost = 0, cap = 1kid[i]-... 阅读全文
posted @ 2015-05-25 21:41 idy002 阅读(139) 评论(0) 推荐(0)
摘要:首先,构造出从f[][i]->f[][i+1]的转移矩阵a,和从f[i][m]->f[i+1][1]的转移矩阵b,那么从f[1][1]转移到f[n][m]就是init*(a^(m-1)*b)^(n-1)*(a^(m-1))。然后用用十进制快速幂(因为输入用的是10进制,这样就避免了高精度除法)。第一... 阅读全文
posted @ 2015-05-25 19:03 idy002 阅读(447) 评论(0) 推荐(0)
摘要:位运算很好的一个性质是可以单独每一位考虑。。。。。题解请看:http://blog.csdn.net/skywalkert/article/details/45401245对于异或的和,先枚举位,求所有异或和和中该位为1的有多少个,再乘以该位的大小(2的多少次方)。即单独每一位考虑,每位带的权不一样... 阅读全文
posted @ 2015-05-25 18:52 idy002 阅读(722) 评论(0) 推荐(0)
摘要:收获: 1、流量为0的边可以不加入。 2、最小割方案要与决策方案对应。 1 #include 2 #include 3 #include 4 #include 5 #define min(a,b) ((a) edge;18 vector g[N];19 int dep[N... 阅读全文
posted @ 2015-05-24 21:15 idy002 阅读(138) 评论(0) 推荐(0)
摘要:给你一堆东西,叫你选一些东西出来,使得价值最大,要求选出的东西集合中的任意a,b满足性质p。可以考虑: 1、拟阵? 2、二分图?这道题由于数学硬伤,不知道不存在两条直角边是奇数,斜边是整数的直角三角形。证明是: 对于奇数a: a*a = 1 mod 4 对于偶数a: a*a = 0 mod ... 阅读全文
posted @ 2015-05-24 20:31 idy002 阅读(152) 评论(0) 推荐(0)
摘要:较水,但因为范围问题WA了两次。。。。 1 /************************************************************** 2 Problem: 3931 3 User: idy002 4 Language: C++ ... 阅读全文
posted @ 2015-05-24 13:33 idy002 阅读(224) 评论(0) 推荐(0)
摘要:公式推出来后想了半天没思路,居然A是01矩阵。。。。。如果一个问题是求最值,并那么尝试先将所有可能收益加起来,然后矛盾部分能否用最小割表达(本题有两个矛盾,第一个是选还是不选,第二个是i,j有一个不选,就不能获得bij的收益)。 1 #include 2 #include 3 #inclu... 阅读全文
posted @ 2015-05-24 11:52 idy002 阅读(156) 评论(0) 推荐(0)
摘要:高斯消元,给定包含m个未知数的n个线性方程,求解。一般有几种情况: 1、在GF(2)域下,即异或方程组 2、浮点数 3、在模域下(模数为质数) 4、在模域下(模数不为质数)一般第一种情况有可能会让我们: 1、判断是否线性相关(即是否存在一个子集使得其异或和为0) 2、将一个线性相关集合”... 阅读全文
posted @ 2015-05-23 21:27 idy002 阅读(305) 评论(0) 推荐(0)
摘要:感谢:http://blog.sina.cn/dpool/blog/s/blog_76f6777d0101d0mr.html的讲解(特别是2^(n-m)的说明)。 1 /************************************************************** 2 ... 阅读全文
posted @ 2015-05-23 21:11 idy002 阅读(294) 评论(0) 推荐(0)
摘要:题意:给你一些数,其中任选一些数(大于等于一个),那么他们有一个异或和。求所有这样的异或和的第k小。我们可以将每一位看成一维,然后就是给我们n个60维的向量,求它们线性组合后得到的向量空间中,第k小的向量。因为给我们的向量不一定是非线性相关的(即存在一些向量可以被其他向量线性表示出),所以我们先进行... 阅读全文
posted @ 2015-05-23 18:32 idy002 阅读(457) 评论(0) 推荐(1)
摘要:1 /************************************************************** 2 Problem: 2460 3 User: idy002 4 Language: C++ 5 Result: Accepted 6... 阅读全文
posted @ 2015-05-23 12:03 idy002 阅读(222) 评论(0) 推荐(0)
摘要:对于每个灯,我们用一个变量表示其决策,xu=0表示不选,xu=1表示选。因为每个灯最后必须都亮,所以每个等都对应一个异或方程。解这个异或方程组,有几种情况: 1、存在唯一解(得到的上三角系数矩阵的主对角线上的元素全部为1) 2、无解(存在某行系数全为0,但等式右边不为0) 3、存在v个自由元(... 阅读全文
posted @ 2015-05-23 10:59 idy002 阅读(500) 评论(0) 推荐(1)
摘要:感觉这题出得真好。我们将问题简化过后是这样的:给定一个数集,找一个最大的非空子集(一个集合的大小是它的元素和)A,使得A不存在一个非空子集,其所有元素的异或和为0。因为我们始终可以只选一个数,所以如果允许选空集,也没有选一个数优,所以我们将原来的问题变成:给定一个数集,找一个最大的子集(一个集合的大... 阅读全文
posted @ 2015-05-22 21:49 idy002 阅读(268) 评论(0) 推荐(0)
摘要:后缀自动机是一种确定性有限自动机(DFA),它可以且仅可以匹配一个给定串的任意后缀。构造一个可以接受一个给定串的所有后缀的不确定性有限自动机(NFA)是很容易的,我们发现我们用通用的将NFA转换成对应DFA的算法转换出来的DFA的状态数都很小(O(n)级别的,远远达不到指数级别)。于是,人们就开始研... 阅读全文
posted @ 2015-05-21 21:35 idy002 阅读(323) 评论(0) 推荐(0)
摘要:后缀自动机扩展到树形结构上。先建出大的Trie,然后我们得到了一棵Trie树,对于树上的每个节点,保存一个后缀自动机从根走它代表的字符串后到达的节点,每次其儿子就从父亲的这个节点开始扩展。 1 /***************************************************... 阅读全文
posted @ 2015-05-21 21:04 idy002 阅读(305) 评论(0) 推荐(0)
摘要:建出后缀自动机,考虑每条边的贡献。发现后缀自动机的val和right集合大小都可以在转移DAG上DP(需要记录每个终止位置所在节点)。 1 /************************************************************** 2 Problem: 3... 阅读全文
posted @ 2015-05-20 21:36 idy002 阅读(222) 评论(0) 推荐(0)
摘要:后缀自动机处理多字符串字串相关问题。首先,和后缀数组一样,用分割符连接各字符串,然后建一个后缀自动机。我们定义一个节点代表的字符串为它原本代表的所有串去除包含分割符后的串。每个节点代表的字符串的数量可以用DP来计算(不能用right集合来算了)。对于原来n个串中的一个串,其所有前缀可以通过将该串放到... 阅读全文
posted @ 2015-05-20 15:18 idy002 阅读(595) 评论(0) 推荐(0)
摘要:这道题用后缀数组貌似会T。后缀自动机做法:t==0:第k小的本质不同字串 首先把后缀自动机建出来,我们会得到一个DAG,并且只存在一个点入度为0(我们称之为根),可以证明字符串的任意一个本质不同的子串(不包括空串)与该自动机上一条起点为根的长度(路径边数)大于0的路径一一对应。所以我们就可以进行D... 阅读全文
posted @ 2015-05-20 10:48 idy002 阅读(495) 评论(0) 推荐(0)
摘要:最大的收获就是题目所说。deal(s) : 处理节点s所在块的问题,并保证: 1、s是该块中最靠近根节点的点,没有之一。 2、s所在块到根节点的路径上的点全都用来更新过了s所在块的所有节点。然后步骤是: 1、找s所在块的重心c。 2、如果s就是c,那么用c更新当前块的所有节点,然后“删除c”... 阅读全文
posted @ 2015-05-16 16:02 idy002 阅读(291) 评论(0) 推荐(0)
摘要:想到了从小到大依次填,但想到可能有重复元素,那是就会有分支,就不知怎样办了,最后才发现它是用随机数来调整排列,所以没有重复元素,唉。。。。。 1 /************************************************************** 2 Problem... 阅读全文
posted @ 2015-05-14 11:30 idy002 阅读(189) 评论(0) 推荐(0)
摘要:大概题意:给一个无向图,有a,b两种边权,找一条从1到n的路径,使得max(a[i])+max(b[i])最小a[i],b[i]表示该路径上的边的对应权。如果用类似最短路的DP来做,显然每个点的状态就必须是一个集合,保存的是一个下凸的点集,表示到达这个点的最小的a,b,这样肯定会挂,但该该种做法已经... 阅读全文
posted @ 2015-05-13 23:35 idy002 阅读(406) 评论(0) 推荐(0)
摘要:学习了元根的一些知识,哈哈。总结一下:几个概念:阶:对于模数m和整数a,并且gcd(m,a)==1,那么定义a在模m下的阶r为满足ar=1 mod m的最小正整数。性质1:r in [1,phi(m)] (由欧拉定理)性质2:r | phi(m) ( ar=aphi(m) mod m,然后用反证法)... 阅读全文
posted @ 2015-05-13 20:45 idy002 阅读(371) 评论(0) 推荐(0)
摘要:收获: 1、如果有很多位操作,并且不包含+-×/等高级运算,那么可以一位一位考虑,如果求一个最优解,可以尝试逐位确定,这道题因为原始攻击值有范围,那么就需要数位DP。 1 /**************************************************************... 阅读全文
posted @ 2015-05-12 21:43 idy002 阅读(342) 评论(0) 推荐(0)
摘要:T2扩展BSGST3快速阶乘给定整数n,质数p和正整数c,求整数s和b,满足n! / pb = s mod pc考虑每次取出floor(n/p)个p因子,然后将问题转化为子问题。 1 /********************************************************... 阅读全文
posted @ 2015-05-12 20:51 idy002 阅读(834) 评论(0) 推荐(1)
摘要:比较基础的KD树。每个节点维护一个BOX,包含包含当当前子树的点的最小矩形,以及点权和,然后用“整个矩形都在直线的一侧”和“整个矩形都不在直线的一侧”剪枝。 1 /************************************************************** 2 ... 阅读全文
posted @ 2015-05-05 21:16 idy002 阅读(290) 评论(0) 推荐(0)