08 2016 档案
摘要:解题思路:这道题目是关于最小割的一道题目。最小割的经典算法是根据最大流最小割定理,将最小割化成最大流然后用dinic算法求解不过这题比较特殊,即使转换成最大流求最小割依旧不可能通过。因为时间和空间的双重限制,所以这道题的解法需要利用这个图的特殊性质。给出的图是一个平面图无疑,那么利用平面图的特殊性质...
阅读全文
摘要:题目大意:有n个blocks,让你用红,蓝,绿,黄四种颜色染上色,其中红色和绿色的block都是偶数个的方案有多少个。解题思路:其实这是个DP...啊一脸狗血...其实模型很像这题....HDU 1143 Tri Tiling首先,假设dp[i][0]表示当涂了前i个blocks之后,红色和绿色都是...
阅读全文
摘要:题目大意:给你一个字符串,让你把它压缩,比如gogogo可以压缩成3(go),letsgogogoletsgogogo可以压缩成2(lets3(go)),然后问你压缩后的最短长度。解题思路:区间DP。一开始我以为是个基础的DP。没想到在第二个样例过不去,才发现这不是个基础的DP,也不是...这应该算...
阅读全文
摘要:题目大意:有m个问题,n个人,给出这n个人对这m个问题的回答,只有“Yes”和“No”这两种回答,所以用1表示yes,0表示no,然后问你最少用几次询问问题能分别出所有人。一个例子,比如3 4001011100000用两次即可,先问第3个问题,如果是1则问第2个问题,如果是0则为第1个问题,得到的答...
阅读全文
摘要:题目大意:有s个学科,现在在学校有n个教师在教书,这些教师必须要被雇佣,现在还有m个教师正在应聘。现在给出这n个在职教师的工资和能教的科目,给出m个应聘教师的工资和能教的科目,现在希望这s个科目,每个都有至少两个教师教授,问你最少需要支付的工资是多少。解题思路:动态规划。状压DP。dp[i]表示i这...
阅读全文
摘要:题目大意:有三个操作,插入删除和复制。其中插入和删除均耗费x时间来插入或删除一个字符,复制耗费y时间将当前文件内所有字符复制并粘贴(就是字符*2),现在需要生成n个字符,问你最少需要的时间。解题思路:DPdp[i]表示生成i个字符需要的最少时间,那么状态转移方程就是dp[i] = min(dp[i-...
阅读全文
摘要:题目大意:给出一个有向图,这个图,是否存在任意两点a,b可达,这里的任意两点a,b可达是说,只要从a能到b或者只要能从b到a就算是可达的。解题思路:先求出这个图的强连通分量,然后缩点建图,只要这个图是一条链状的,那么就可以满足任意两点都可达,否则不满足。原因是只要这个缩点建图之后的图是链状的,那么必...
阅读全文
摘要:题目大意:给出一个有向图,这个图,是否存在任意两点a,b可达,这里的任意两点a,b可达是说,只要从a能到b或者只要能从b到a就算是可达的。解题思路:先求出这个图的强连通分量,然后缩点建图,只要这个图是一条链状的,那么就可以满足任意两点都可达,否则不满足。原因是只要这个缩点建图之后的图是链状的,那么必...
阅读全文
摘要:题目大意:给出一个长度为n的数组A,让你求出lowbit(A[i]^A[j])的和对998244353取模的结果,其中i和j都属于[1,n]。lowbit(x)表示的是满足x xor 2^k > 0最小的2^k解题思路:因为数据规模很明显是5e4这样的规模,直接暴力搞必然超时,那么我们可以考虑一个问...
阅读全文
摘要:每次到了晚上都无法静下心来写题目,不如写篇博客,总结一天的学习。今天一天,首先回顾了昨晚Codeforces的几道题目。恕本蒟蒻太菜,实在无法写出来后面两道题目。然后偶然发现很久之前的一道题目还没写,就顺手写了。然后便开始了今天的学习。今天主要学习的问题是连通图的一些问题。第一个问题就是强连通分量的...
阅读全文
摘要:题目大意:给出n个字符串,字符串仅由大写字母组成,问你用最多的字符串使得这些字符串里面的字符出现的总次数为偶数次解题思路:1.dfs+位运算2.中途相遇法第一种思路就是普通的搜索,因为数据规模不是非常大,所以用搜索加上位运算也是可以通过所有数据的。第二种思路是中途相遇法,先考虑这n个字符串的前n/2...
阅读全文
摘要:题目大意:最开始的时候有一个集合,集合里面只有一个元素0,现在有q次操作,操作分为3种:+ x: 表示向集合中添加一个元素x- x:表示删除集合中值为x的一个元素? x:表示查询集合中与x异或的最大值为多少解题思路:乱搞。可以用一个multiset来维护这个集合。这样前两个操作就是非常简单的了,关键...
阅读全文
摘要:题目大意:给你n个字符串,让你把它排序成字典序,但是任何两个字符串之间不能交换,只能对每个字符串进行翻转操作,并且第i个字符串翻转的时候,会消耗c[i]的能量,然后问你,将这些字符串排成字典序的时候产生的最小能量。如果不能排成字典序则输出-1解题思路:明显是个DP,对于每个字符串只有两个选择,翻转和...
阅读全文
摘要:题目大意:设有一个长度为N的数字串,要求使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1部分的乘积能够为最大。其中n <= 100, k < n解题思路:动态规划dp[i][j]表示当i个乘号在第j位的时候,前面的最大值。这样状态转移方程就得到为:dp[i][j] = max(dp[i]...
阅读全文
摘要:题目大意:给你m个点,有s条边,这s条边有的是有向边(di = 1),有的是无向边(di = 0),问你这个图是否存在欧拉回路。解题思路:我是看着这个题解写出来这道题目的。链接在这里把这个混合图先当作是有向图,每个输入xi,yi,di不管di为0或1,均当作是从xi到yi的有向边(无向边可任意设置方...
阅读全文
摘要:题目大意:给你m个点,有s条边,这s条边有的是有向边(di = 1),有的是无向边(di = 0),问你这个图是否存在欧拉回路。解题思路:我是看着这个题解写出来这道题目的。链接在这里把这个混合图先当作是有向图,每个输入xi,yi,di不管di为0或1,均当作是从xi到yi的有向边(无向边可任意设置方...
阅读全文
摘要:最近学习了一发最大流问题,越发沉迷其中。目前来说,最大流算法网络流算法网上有一大堆的讲解,但是确实各种各样都有,对于新手来说的确不是非常友好。不过学习到网络流的有多少还是新手呢= =亦可赛艇。首先我们需要知道,什么是网络流。先看一幅图1代表的是源点,6代表的是汇点,有向图的每条边代表的都是从这条边的...
阅读全文
摘要:最近学习了一发最大流问题,越发沉迷其中。目前来说,最大流算法网络流算法网上有一大堆的讲解,但是确实各种各样都有,对于新手来说的确不是非常友好。不过学习到网络流的有多少还是新手呢= =亦可赛艇。首先我们需要知道,什么是网络流。先看一幅图1代表的是源点,6代表的是汇点,有向图的每条边代表的都是从这条边的...
阅读全文
摘要:题目大意:这道题目意思不好理解(可能只是我理解太差...)一个电网,里面有一些结点,代表电站,消费者,调度站。电站不消耗电能,消费者不产生电能,调度站产生的电能和消耗的电能均为0现在给出一个电网,有n个结点,np个电站(u)z[表示u号节点是能产生最多z电能的电站],nc个消费者(u)z[表示u是最...
阅读全文
摘要:题目大意:有k个挤奶器,在牧场里有c头奶牛,每个挤奶器可以满足m个奶牛,奶牛和挤奶器都可以看成是实体,现在给出两个实体之间的距离,如果没有路径相连,则为0,现在问你在所有方案里面,这c头奶牛需要走的最大距离的最小值。解题思路:floyd+最大流+二分首先用floyd求出两个实体间的最短距离,然后二分...
阅读全文
摘要:题目大意:有M个猪圈,每个猪圈都有把锁,卖猪的本身是没有钥匙的,现在有N个顾客要来买猪,而且第i个顾客有a[i]把锁的钥匙,能打开k1,k2,k3...kai的猪圈,称这个时候,你可以调整k1,k2,k3...kai号猪圈里面猪的个数。现在已知每个客户要买多少猪,有哪些锁。问你一天最多能卖出去多少猪...
阅读全文
摘要:Description过年了,大家都热衷于在支付宝和微信上面送给亲朋好友红包,西瓜也很喜欢参加这个活动,不仅如此,他还想成为他和他的好友中发红包金额最多的人以表示他的土豪。所以西瓜想通过某些方式来推测是否有这种可能。虽然支付宝提供了“我的红包榜”功能可以查看自己和朋友们的到底发出和接收了多少红包,但...
阅读全文
摘要:题目大意:在地球上有n个人,但是地球快要game over了,所以这n个人要去别的星球生存,有m个适宜居住的星球,然后每个人对这m个星球都有一个适宜度,1代表适宜,0代表不适宜,最后给出m个星球每个能容纳多少人,问你这m个星球能否让这n个人搬去住解题思路:这是一道网络流的题,据说可以用二分图匹配来做...
阅读全文
摘要:题目大意:给你m个区间[l, r],让你计算区间[l, r]中出现偶数次的数的异或和解题思路:异或的性质比较明显 a ^ a = 0也就是说如果让你计算奇数次的异或和这就是裸题直接搞就行。但是是偶数的话,我们的想法其实很简单,对于[l, r]区间内出现的数,都再多异或一次比如1 2 1 3 3对于这...
阅读全文
摘要:题目大意:给你m个区间[l, r],让你计算区间[l, r]中出现偶数次的数的异或和解题思路:异或的性质比较明显 a ^ a = 0也就是说如果让你计算奇数次的异或和这就是裸题直接搞就行。但是是偶数的话,我们的想法其实很简单,对于[l, r]区间内出现的数,都再多异或一次比如1 2 1 3 3对于这...
阅读全文
摘要:题目大意:给你n个点,标号为1-n,并且相邻的两个点之间存在路径,其路径权值为路径两端点权值的乘积,现在在1-n中有k个点,这k个点对其它任意一点都需要存在路径,但是两个点之间的路径不能超过一条。也就是没有重边,现在问你整个图的路径权值之和是多少解题思路:因为这题的数据为10w所以不可能用两两之间路...
阅读全文
摘要:题目大意:给你n个点,标号为1-n,并且相邻的两个点之间存在路径,其路径权值为路径两端点权值的乘积,现在在1-n中有k个点,这k个点对其它任意一点都需要存在路径,但是两个点之间的路径不能超过一条。也就是没有重边,现在问你整个图的路径权值之和是多少解题思路:因为这题的数据为10w所以不可能用两两之间路...
阅读全文
摘要:题目大意:给出一个list,由最多200个单词组成,每个单词最多10个字母。再给出一串字符串,问你刚刚给出的list能构成的最大前缀是多长。解题思路:动态规划dp[i]表示到第i个字符能否被匹配那么其状态转移可以表示为:dp[i] = dp[i - len] ? 1 : 0;其中len为list里面...
阅读全文
摘要:题目大意:给出N条排水沟的起点和终点及其最大排水量,点1是池塘,点M是小河,让你求出整个排水系统的最大排水量解题思路:这题是一道最大流的入门题,非常适合入门。《挑战程序设计竞赛》一书中对于Ford-Fulkerson算法的讲解算是比较容易让人理解的了。这里直接用了书上的代码作了略微修改ac了这道题,...
阅读全文
摘要:题目大意:给定一捆木棍,每根木棍的每个端点涂有某种颜色。问你是否能将这些棍子首尾相连,排成一条直线,且相邻两根棍子的连接处端点的颜色一样解题思路:应该可以说是判断欧拉路径的裸题了不过有些地方很蛋疼= =我一开始写的是vector+string+map用了三个STL模板写的,结果TLE所以这道题我比较...
阅读全文
摘要:Problem DescriptionIgnatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). Input输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是...
阅读全文
摘要:题目大意:你是一座大庄园的管家,庄园有很多房间,编号从0-n。你需要从m个房间走回到0号房间,并且通过一些房间,在通过这些房间的时候立即把们关上,关上了的门也不能再打开,并且在你回到0号房间的时候,所有的门已经关闭了。问你是否存在这样的路;解题思路:这题是道很简单的欧拉通路/欧拉回路判断我们知道一个...
阅读全文
摘要:题目大意:有n个小孩,m个约束条件,每个约束条件为A B C表示A认为B不应该比自己多超过C个糖。问你1号小孩和n号小孩最多相差多少个糖解题思路:差分约束代码:#include #include using namespace std;const int INF = 0x3f3f3f3f;const...
阅读全文
摘要:题目大意:HDU3592的题意类似,把人换成牛就行了解题思路:同HDU-3592 WorldExhibition代码:#include #include #include #include using namespace std;typedef struct node{ int to, w; ...
阅读全文
摘要:题目大意:有n个点,有m个约束,有两种约束形式,一种是P A B C表示A在B的北边距离为C的地方,另外一种是V A B表示A在B的背边距离至少为1的地方,问你这个信息是否存在矛盾的地方解题思路:P A B C表示S[B] - S[A] = C那么可以表示成C #include #include u...
阅读全文
摘要:题目大意:给你n个区间[a, b],问你是否存在一个集合Z,使得|Z∩[a,b]| >= 2解题思路:同poj 1201,简化版POJ-1201 Intervals代码:#include #include #include using namespace std;const int maxn = 1...
阅读全文
摘要:题目大意:给你一个n*m的矩阵,现在有一个长度为n的序列a,一个长度为m的序列b,让你把这个矩阵第i行的所有元素都乘以a[i],把第j列的元素都除以b[j],问你存不存在这样的两个序列a,b,使得经过这些操作之后的矩阵每个元素都在[L, U]之间解题思路:可以得出要求是 L #include #in...
阅读全文
摘要:题目大意:N个人去看世博会,但是这N个人的关系不同所以希望站的序列也有一定要求,给出X个约束:A和B必须最多离开C距离,再给出Y个约束:A和B必须至少离开C距离,现在问你有没有这样的序列满足,有的话,输出1-n的最大距离,如果没有输出-1,如果有但是1-n的距离可以任意远,输出-2解题思路:差分约束...
阅读全文
摘要:题目大意:有个人经常跳房子,但是他必须从低的跳到高的,他有个能力,他能够把房子搬动,但是他搬动房子之后不能破坏原本的序列,现在给出房子高度的序列,并且给出他能跳房子的最大距离,然后让你求最高的房子到最低的房子间最大的距离。解题思路:差分约束代码:#include #include #include ...
阅读全文
摘要:题目大意:给你n个项目,并给出m个约束,其中SAF表示start after finish, SAS 表示start after start, FAS表示finish after start, FAF表示finish after finish解题思路:差分约束代码:#include #include...
阅读全文
摘要:题目大意:给出n个约束,问你能不能找到一个序列满足这个约束解题思路:差分约束代码:#include #include #include #include using namespace std;const int maxn = 150;const int INF = 0x3f3f3f3f;typed...
阅读全文
摘要:题目大意:从0点到23点,给出每个时刻需要的售货员个数,再给出每个时刻应征的售货员个数,然后让你求出满足需求的最小售货员个数解题思路:差分约束代码:#include #include #include #include using namespace std;const int maxn = 100...
阅读全文

浙公网安备 33010602011771号