摘要: 这题题意要注意, 题目中说的 (0,0) 是表示所有的点都要满足,而不是加起来的和满足.然后根据经典的求有上下界的网络流的建图方法就行了.首先建立s,t,然后s连上每一个代表行的点,每个代表列的点连上t. 先根据题意求出图中每一条边的上界和下界。 然后再做超级源点和汇点ss,tt. 统计原图中的每一个点的 tmp=所有流入下界和-所有流出下界和, 如果>0 则从ss连一条大小为tmp的边,如果<0 则连一条权值为-tmp的边到tt. 然后从ss到tt求一次最大流,如果结果和ss有关的边都满流则说明存在可行流.BudgetTime Limit:3000MSMemory Limit:6 阅读全文
posted @ 2013-02-25 21:08 chenhuan001 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 找一个最小的长方形包括所有给出的点, 很简单找出最坐标中最小的x,y (左下角)和最大的x,y (右下角)就是答案. 最小长方形Time Limit: 1000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5828Accepted Submission(s): 3217Problem Description给定一系列2维平面点的坐标(x, y),其中x和y均为整数,要求用一个最小的长方形框将所有点框在内。长方形框的边分别平行于x和y坐标轴,点... 阅读全文
posted @ 2013-02-23 12:32 chenhuan001 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 有上下界的网络流, 关键是怎么把下界体现出来,于是要先判断是否可行。然后在求解最大流.这题是没有给出源点和汇点的,但是题目中有一个条件就是每个点都满足所有流入的和等于所有流出的和,然后我猜想了一下这题给出的图都是环. 如果有出度为0或入度为0的话就不满足题意的要求。 (这一点坑了我很久才把这题做出来)然后就是关键的一步怎么建附加网络,并求可行流.首先如果这个网络流可行那么每条边的下界都是必须满足的,于是这个网络在没开始求之前你就可以把每条边都流过大小为它下界的流。 然后就会存在问题,有些时候经过上述操作这个点的流就不平衡了. 如果这个点最后流入的多,那么可想而知的是这个点流出的边要多往外流一些 阅读全文
posted @ 2013-02-23 11:07 chenhuan001 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 这场比赛因为坐火车没有做,到学校了, 坑爹的学校晚上要熄灯。 还有一些原因以后cf就不能及时的做了。 但是每场我肯定都不会落下.这场b题严重坑, 被坑了1个半小时,关键还是自己的心理在作祟,思维不行, 看看zerom 16分钟就把题给a了...a. 很水的题b.看完题意后觉得这个很水呀,但是实现起来就坑了. 其实写起来也不是很难,关键就是当我用一种方法写到一半的时候我就觉得有点烦,然后就想会不会是我想错了,于是又去想其他方法,然后用其他方法写,要么是错的,要么更烦,无奈最后只能挑一种方法硬着头皮写.这个是我的代码,又长又臭 1 #include <stdio.h> 2 #inclu 阅读全文
posted @ 2013-02-22 11:19 chenhuan001 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 这题的关键是矩阵中的每个元素都是 >=0 的, 然后就可以找到递增性质. 也就是如果N*N个方块满足小于或等于limit 那么(N-1)*(N-1)个方块也是满足的.Problem 2056 最大正方形 Accept: 75Submit: 287Time Limit: 1000 mSecMemory Limit : 32768 KB Problem Description现在有一个n*m的矩阵A,在A中找一个H*H的正方形,使得其面积最大且该正方形元素的和不大于 limit。 Input第一行一个整数T,表示有T组数据。每组数据 第一行三个非负整数 n m limit接着 n 行,每行 阅读全文
posted @ 2013-02-19 16:04 chenhuan001 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 模拟一场,这场题目算是比较巧的.a. 很简单的暴力题b. 有点麻烦的题, 用一堆数字拼成一个最大的能被2,3,5 同时整除的数, 首先必须最后一位数字必须是0, 然后数字的总和要能被三整除 。解法是枚举一个到两个数字,看减少这些数字能不能使数字的总和被3整除。 如果没有就输出-1#include <stdio.h>#include <string.h>#include <string>#include <iostream>using namespace std;int mark[10];int main(){ int n; scanf(" 阅读全文
posted @ 2013-02-18 15:42 chenhuan001 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 用半分治法做的. 很在把一堆分成两堆后,递归求得这两堆的最小距离后,关键就是求两堆之间的距离是否会更小,然后用一些优化就可以过这题.下次试试算法导论上的方法,应该会稳定些,感觉这方法还是很坑的, 可以有数据克. 不过要弄出这种数据也难.还有感觉分治法,和归并排序很相似.Quoit DesignTime Limit: 10000/5000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 15345Accepted Submission(s): 3814Problem Description 阅读全文
posted @ 2013-02-15 23:18 chenhuan001 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 从0000-9999 枚举判断一遍, 如果只有一个数字满足则输出,否则输出Not sure 猜数字Time Limit: 20000/10000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1617Accepted Submission(s): 925Problem Description猜数字游戏是gameboy最喜欢的游戏之一。游戏的规则是这样的:计算机随机产生一个四位数,然后玩家猜这个四位数是什么。每猜一个数,计算机都会告诉玩家猜对几个数字,其中有几... 阅读全文
posted @ 2013-02-15 20:12 chenhuan001 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 20的数据量,这题是什么意思, 吓的我半死,一直还以为那里想错了.其实这题就是个简单的最小割。1 建立源点和汇点s,t2 从s连一条权为INF的边到n(the panic room).3 对于从 i 到 j 能开的门, 连一条权为INF 的(i->j)边,然后连一条权为1的(j->i) 的边。然后求最小流就可以了.Panic RoomTime Limit: 2 Seconds Memory Limit: 65536 KBIntroductionYou are the lead programmer for the Securitron 9042, the latest and gr 阅读全文
posted @ 2013-02-15 18:34 chenhuan001 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 一开始想了很久,都想不到一个好的方法判断最小割是否唯一,后面无奈只好去看了下题解。正确的方法是: 在用网络流求过最小割后,判断所有的点是不是s能到达,或者能到达t. 如果都满足那么最小割唯一,否则不唯一.我的理解, 可以把这个s不能到达且同时不能到达t的点看成一个集合, 可以知道这个集合流入的边可以等效为饱和弧, 二流出这个点的边也可以等效为饱和弧, 那么就可以用这个点流入的饱和弧代替流出的饱和弧,也就是有多个最小割.Unique AttackTime Limit: 5 Seconds Memory Limit: 32768 KBN supercomputers in the United . 阅读全文
posted @ 2013-02-15 14:15 chenhuan001 阅读(428) 评论(0) 推荐(0) 编辑