自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Wilbert的博客

我们背靠万丈深渊 我们只能大步向前

  • 博客(35)
  • 收藏
  • 关注

原创 BZOJ-1001 [BeiJing2006]狼抓兔子

解题思路:这道题目是关于最小割的一道题目。最小割的经典算法是根据最大流最小割定理,将最小割化成最大流然后用dinic算法求解不过这题比较特殊,即使转换成最大流求最小割依旧不可能通过。因为时间和空间的双重限制,所以这道题的解法需要利用这个图的特殊性质。给出的图是一个平面图无疑,那么利用平面图的特殊性质解决这个问题会简单很多。将平面图转换成其对偶图,然后计算新的源点到新的汇点的

2016-08-31 15:28:45 572

原创 POJ-3734 Blocks

题目大意:有n个blocks,让你用红,蓝,绿,黄四种颜色染上色,其中红色和绿色的block都是偶数个的方案有多少个。解题思路:其实这是个DP...啊一脸狗血...其实模型很像这题....HDU 1143 Tri Tiling首先,假设dp[i][0]表示当涂了前i个blocks之后,红色和绿色都是偶数个的方案个数,dp[i][1]表示当涂了前i个blocks之后,红色和绿色只

2016-08-30 20:17:09 463

原创 UVAlive-3363 String Compression

题目大意:给你一个字符串,让你把它压缩,比如gogogo可以压缩成3(go),letsgogogoletsgogogo可以压缩成2(lets3(go)),然后问你压缩后的最短长度。解题思路:区间DP。一开始我以为是个基础的DP。没想到在第二个样例过不去,才发现这不是个基础的DP,也不是...这应该算是基础的区间DP吧。首先设dp[i][j]表示从i到j这个区间内的字符串能压缩的

2016-08-27 21:12:24 645

原创 UVAlive-4643 Twenty Questions

题目大意:有m个问题,n个人,给出这n个人对这m个问题的回答,只有“Yes”和“No”这两种回答,所以用1表示yes,0表示no,然后问你最少用几次询问问题能分别出所有人。一个例子,比如3 4001011100000用两次即可,先问第3个问题,如果是1则问第2个问题,如果是0则为第1个问题,得到的答案是2而不是3!解题思路:状态压缩动态规划+记忆化搜索

2016-08-27 20:56:45 693

原创 UVA-10817 Headmaster's Headache

题目大意:有s个学科,现在在学校有n个教师在教书,这些教师必须要被雇佣,现在还有m个教师正在应聘。现在给出这n个在职教师的工资和能教的科目,给出m个应聘教师的工资和能教的科目,现在希望这s个科目,每个都有至少两个教师教授,问你最少需要支付的工资是多少。解题思路:动态规划。状压DP。dp[i]表示i这个状态需要支付的最少工资。因为每个科目至少两个教师,且最多只有8个科目,所以很明显状

2016-08-24 11:47:26 556

原创 Codeforces-710E Generate a String

题目大意:有三个操作,插入删除和复制。其中插入和删除均耗费x时间来插入或删除一个字符,复制耗费y时间将当前文件内所有字符复制并粘贴(就是字符*2),现在需要生成n个字符,问你最少需要的时间。解题思路:DPdp[i]表示生成i个字符需要的最少时间,那么状态转移方程就是dp[i] = min(dp[i-1] + x, dp[i+1] + x, dp[i / 2] + y);代码

2016-08-23 13:06:44 860

原创 POJ-2762 Going from u to v or from v to u?

题目大意:给出一个有向图,这个图,是否存在任意两点a,b可达,这里的任意两点a,b可达是说,只要从a能到b或者只要能从b到a就算是可达的。解题思路:先求出这个图的强连通分量,然后缩点建图,只要这个图是一条链状的,那么就可以满足任意两点都可达,否则不满足。原因是只要这个缩点建图之后的图是链状的,那么必然从链的头到尾,任意两点都可达。一旦不是链状,要么出现分叉,要么某个点入度>=2,这

2016-08-22 22:05:18 403

原创 HDU-5269 ZYB loves Xor I

题目大意:给出一个长度为n的数组A,让你求出lowbit(A[i]^A[j])的和对998244353取模的结果,其中i和j都属于[1,n]。lowbit(x)表示的是满足x xor 2^k > 0最小的2^k解题思路:因为数据规模很明显是5e4这样的规模,直接暴力搞必然超时,那么我们可以考虑一个问题,对于异或,如果x xor 2^k > 0的话,k一定是x二进制表示中最小的一位为1的

2016-08-21 22:31:59 397

原创 连通图问题入门小结

每次到了晚上都无法静下心来写题目,不如写篇博客,总结一天的学习。今天一天,首先回顾了昨晚Codeforces的几道题目。恕本蒟蒻太菜,实在无法写出来后面两道题目。然后偶然发现很久之前的一道题目还没写,就顺手写了。然后便开始了今天的学习。今天主要学习的问题是连通图的一些问题。第一个问题就是强连通分量的求解。这一部分事实上我看了挺多的博客还有资料都没有看的太懂,最后跟着某篇博客

2016-08-21 22:22:20 1679

原创 POJ-1903 Jurassic Remains

题目大意:给出n个字符串,字符串仅由大写字母组成,问你用最多的字符串使得这些字符串里面的字符出现的总次数为偶数次解题思路:1.dfs+位运算2.中途相遇法第一种思路就是普通的搜索,因为数据规模不是非常大,所以用搜索加上位运算也是可以通过所有数据的。第二种思路是中途相遇法,先考虑这n个字符串的前n/2个,把每个字符串的状态记录到map里面,再枚举后面的所有字符串的状态,在ma

2016-08-15 13:10:21 441

原创 Codeforces-706D Vasiliy's Multiset

题目大意:最开始的时候有一个集合,集合里面只有一个元素0,现在有q次操作,操作分为3种:+ x: 表示向集合中添加一个元素x- x:表示删除集合中值为x的一个元素? x:表示查询集合中与x异或的最大值为多少解题思路:乱搞。可以用一个multiset来维护这个集合。这样前两个操作就是非常简单的了,关键在于最后一个操作。对于异或来说,比如说如果给你一个数11,另外一个数

2016-08-12 15:04:43 908

原创 AOJ-190 乘积最大问题

题目大意:设有一个长度为N的数字串,要求使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1部分的乘积能够为最大。其中n 解题思路:动态规划dp[i][j]表示当i个乘号在第j位的时候,前面的最大值。这样状态转移方程就得到为:dp[i][j] = max(dp[i][j], dp[i-1][k] * subString(s, k, j)); 其中k为[i-1,

2016-08-12 10:09:36 801

原创 POJ-1637 Sightseeing tour

题目大意:给你m个点,有s条边,这s条边有的是有向边(di = 1),有的是无向边(di = 0),问你这个图是否存在欧拉回路。解题思路:我是看着这个题解写出来这道题目的。链接在这里把这个混合图先当作是有向图,每个输入xi,yi,di不管di为0或1,均当作是从xi到yi的有向边(无向边可任意设置方向),然后记录入度和出度的差值,如果差值为奇数则必然不可能存在欧拉回路。剩下的部分可

2016-08-09 21:27:16 416

原创 POJ-1459 Power Network

题目大意:这道题目意思不好理解(可能只是我理解太差...)一个电网,里面有一些结点,代表电站,消费者,调度站。电站不消耗电能,消费者不产生电能,调度站产生的电能和消耗的电能均为0现在给出一个电网,有n个结点,np个电站(u)z[表示u号节点是能产生最多z电能的电站],nc个消费者(u)z[表示u是最多消耗z电能的消费者],m条输电线(u,v)z[表示从u到z最多能输送z电能],现在问你

2016-08-08 22:24:43 432

原创 POJ-2112 Optimal Milking

题目大意:有k个挤奶器,在牧场里有c头奶牛,每个挤奶器可以满足m个奶牛,奶牛和挤奶器都可以看成是实体,现在给出两个实体之间的距离,如果没有路径相连,则为0,现在问你在所有方案里面,这c头奶牛需要走的最大距离的最小值。解题思路:floyd+最大流+二分首先用floyd求出两个实体间的最短距离,然后二分枚举最大距离的最小值,用最大流来判断是否存在这个解。因为涉及Floyd所以INF

2016-08-08 22:15:45 651

原创 POJ-1149 PIGS

题目大意:有M个猪圈,每个猪圈都有把锁,卖猪的本身是没有钥匙的,现在有N个顾客要来买猪,而且第i个顾客有a[i]把锁的钥匙,能打开k1,k2,k3...kai的猪圈,称这个时候,你可以调整k1,k2,k3...kai号猪圈里面猪的个数。现在已知每个客户要买多少猪,有哪些锁。问你一天最多能卖出去多少猪。解题思路:把顾客当作除了源点和汇点的节点,并且设置一个源点和汇点。把第一次访问ai

2016-08-08 22:04:43 538

原创 AOJ-722 发红包

Description过年了,大家都热衷于在支付宝和微信上面送给亲朋好友红包,西瓜也很喜欢参加这个活动,不仅如此,他还想成为他和他的好友中发红包金额最多的人以表示他的土豪。所以西瓜想通过某些方式来推测是否有这种可能。虽然支付宝提供了“我的红包榜”功能可以查看自己和朋友们的到底发出和接收了多少红包,但是微信并没有提供类似查询朋友发出和收到了多少红包金额的功能。西瓜为了知道自己是不是最

2016-08-07 20:46:37 658 4

原创 HDU-3605 Escape

题目大意:在地球上有n个人,但是地球快要game over了,所以这n个人要去别的星球生存,有m个适宜居住的星球,然后每个人对这m个星球都有一个适宜度,1代表适宜,0代表不适宜,最后给出m个星球每个能容纳多少人,问你这m个星球能否让这n个人搬去住解题思路:这是一道网络流的题,据说可以用二分图匹配来做,(萌新还没搞二分图第一个思路:每个人与每个星球建图。这样TLE,MLE拿好不谢

2016-08-06 21:21:32 656

原创 Codeforces-703D Mishka and Interesting sum

题目大意:给你m个区间[l, r],让你计算区间[l, r]中出现偶数次的数的异或和解题思路:异或的性质比较明显 a ^ a = 0也就是说如果让你计算奇数次的异或和这就是裸题直接搞就行。但是是偶数的话,我们的想法其实很简单,对于[l, r]区间内出现的数,都再多异或一次比如1 2 1 3 3对于这个序列,计算偶数次可以1 ^ 2 ^ 1 ^ 3 ^ 3 ^ 1 ^ 2 ^

2016-08-05 22:38:56 615

原创 Codeforces-703B Mishka and trip

题目大意:给你n个点,标号为1-n,并且相邻的两个点之间存在路径,其路径权值为路径两端点权值的乘积,现在在1-n中有k个点,这k个点对其它任意一点都需要存在路径,但是两个点之间的路径不能超过一条。也就是没有重边,现在问你整个图的路径权值之和是多少解题思路:因为这题的数据为10w所以不可能用两两之间路径来枚举,那么有个简单的思路就是只需要知道与i点相连的路径权值之和就可以了。而对于k

2016-08-05 22:33:45 534

原创 AOJ-399 Longest Prefix

题目大意:给出一个list,由最多200个单词组成,每个单词最多10个字母。再给出一串字符串,问你刚刚给出的list能构成的最大前缀是多长。解题思路:动态规划dp[i]表示到第i个字符能否被匹配那么其状态转移可以表示为:dp[i] = dp[i - len] ? 1 : 0;其中len为list里面的各个单词的长度,且需要匹配。这题题目给出的是20w的长度如果这样来

2016-08-05 20:47:00 300

原创 POJ-1273 Drainage Ditches

题目大意:给出N条排水沟的起点和终点及其最大排水量,点1是池塘,点M是小河,让你求出整个排水系统的最大排水量解题思路:这题是一道最大流的入门题,非常适合入门。《挑战程序设计竞赛》一书中对于Ford-Fulkerson算法的讲解算是比较容易让人理解的了。这里直接用了书上的代码作了略微修改ac了这道题,第一道网络流代码:#include #include #includ

2016-08-04 22:04:34 415

原创 POJ-2513 Colored Sticks

题目大意:给定一捆木棍,每根木棍的每个端点涂有某种颜色。问你是否能将这些棍子首尾相连,排成一条直线,且相邻两根棍子的连接处端点的颜色一样解题思路:应该可以说是判断欧拉路径的裸体了不过有些地方很蛋疼= =我一开始写的是vector+string+map用了三个STL模板写的,结果TLE所以这道题我比较推荐用Trie(字典树) + 并查集来处理,相对来说比较稳以及玛德这道题为什

2016-08-04 11:05:51 331

原创 HDU-1251 统计难题

Problem DescriptionIgnatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). Input输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束

2016-08-04 10:33:10 356

原创 POJ-1300 Door Man

题目大意:你是一座大庄园的管家,庄园有很多房间,编号从0-n。你需要从m个房间走回到0号房间,并且通过一些房间,在通过这些房间的时候立即把们关上,关上了的门也不能再打开,并且在你回到0号房间的时候,所有的门已经关闭了。问你是否存在这样的路;解题思路:这题是道很简单的欧拉通路/欧拉回路判断我们知道一个定理:无向图G存在欧拉通路的充要条件是:G为联通图,并且G仅有两个奇度数节点或者无奇

2016-08-03 16:59:53 394

原创 POJ-3159 Candies

题目大意:有n个小孩,m个约束条件,每个约束条件为A B C表示A认为B不应该比自己多超过C个糖。问你1号小孩和n号小孩最多相差多少个糖解题思路:差分约束代码:#include #include using namespace std;const int INF = 0x3f3f3f3f;const int maxn = 30000 + 5;const int ma

2016-08-03 10:55:38 775 1

原创 POJ-3169 Layout

题目大意:HDU3592的题意类似,把人换成牛就行了解题思路:同HDU-3592 WorldExhibition代码:#include #include #include #include using namespace std;typedef struct node{ int to, w; node(int a = 0, int b = 0){

2016-08-03 10:51:31 290

原创 POJ-2983 Is the Information Reliable?

题目大意:有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 #include using nam

2016-08-03 10:43:35 276

原创 POJ-1716 Integer Intervals

题目大意:给你n个区间[a, b],问你是否存在一个集合Z,使得|Z∩[a,b]| >= 2解题思路:同poj 1201,简化版POJ-1201 Intervals代码:#include #include #include using namespace std;const int maxn = 10000 + 5;const int INF = 0x3f3f3f

2016-08-03 10:38:39 298

原创 HDU-3666 THE MATRIX PROBLEM

题目大意:给你一个n*m的矩阵,现在有一个长度为n的序列a,一个长度为m的序列b,让你把这个矩阵第i行的所有元素都乘以a[i],把第j列的元素都除以b[j],问你存不存在这样的两个序列a,b,使得经过这些操作之后的矩阵每个元素都在[L, U]之间解题思路:可以得出要求是 L 可以转换一下变成log(L / num[i][j]) 这样就是一道差分约束模板题了代码:#i

2016-08-03 10:34:13 497

原创 HDU-3592 World Exhibition

题目大意:N个人去看世博会,但是这N个人的关系不同所以希望站的序列也有一定要求,给出X个约束:A和B必须最多离开C距离,再给出Y个约束:A和B必须至少离开C距离,现在问你有没有这样的序列满足,有的话,输出1-n的最大距离,如果没有输出-1,如果有但是1-n的距离可以任意远,输出-2解题思路:差分约束代码:#include #include #include #includ

2016-08-03 10:28:07 493

原创 HDU-3440 House Man

题目大意:有个人经常跳房子,但是他必须从低的跳到高的,他有个能力,他能够把房子搬动,但是他搬动房子之后不能破坏原本的序列,现在给出房子高度的序列,并且给出他能跳房子的最大距离,然后让你求最高的房子到最低的房子间最大的距离。解题思路:差分约束代码:#include #include #include using namespace std;const int maxn

2016-08-03 10:21:47 309

原创 HDU-1534 Schedule Problem

题目大意:给你n个项目,并给出m个约束,其中SAF表示start after finish, SAS 表示start after start, FAS表示finish after start, FAF表示finish after finish解题思路:差分约束

2016-08-03 10:15:20 316

原创 POJ-1364/HDU 1531 King

题目大意:给出n个约束,问你能不能找到一个序列满足这个约束解题思路:差分约束

2016-08-03 10:11:53 370

原创 POJ-1275/HDU-1529 Cashier Employment

题目大意:从0点到23点,给出每个时刻需要的售货员个数,再给出每个时刻应征的售货员个数,然后让你求出满足需求的最小售货员个数解题思路:差分约束

2016-08-03 10:09:07 591

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除