上一页 1 ··· 39 40 41 42 43 44 45 46 47 ··· 52 下一页
摘要: 思维题,想到就秒杀,没想到或者想错方向了那么就完蛋了0 1 2 3 41 2 3 4 0你就会发现是可以的。我经历了很久错误的思维,找到了一些性质1. ai+bi的和一定为一串从(n/2)递增的序列, 因为所有ai+bi(i从0-n-1)的和为一个固定的数,而得到的ci又要是0-n-1各一次。 所以也同时说明偶数的情况是不可行的。然后稍加组合就可以发现将两个 0-n-1 的序列错开相加就可以得到结果。。C. Lucky Permutation Tripletime limit per test2 secondsmemory limit per test256 megabytesinputsta 阅读全文
posted @ 2013-05-13 15:43 chenhuan001 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 结合tarjan算法思想,这题终于写了出来。同样用dfs将图变成为一颗树,这样可以提供许多有用的性质。对于一个无向连通图,dfs后的树为只有回边(回边Euv,v是u的祖先)和生成树的边的图。 那么在遍历到一个点u的时候,可以知道如果不考虑这个点,如果与u相邻的点连通那么u不是割点,否则是割点。 那么只需要判断与u相邻的点是否连通就行了,于是借鉴tarjan求强连通的办法,在dfs时,对每个点标记一个深度low[N]也就是从根到这个点最短路径(经过的最小结点数), 然后在遍历到u点的时候,看看与u相邻的点v的low[v], 如果low[U] >= low[u]那么说明u就是割点. 因为v点 阅读全文
posted @ 2013-05-13 14:08 chenhuan001 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 关于这题我看很多人都没有证明,在此简单证明下。当在缩完点后形成DAG,求出 入度为0的点的个数为n,出度为0的点为m。 那么只需max(n,m)条边就可以使这个DAG图变成一个强连通分量.第一步,将孤立的顶点拆成两个点之间连一条有向边。 于是可以将所有入度为0 的点划分为一个集合N, 所有出度为0的点划分为一个集合M。 可以知道的是,如果再这两个集合中求一次最大匹配, 那么对于这个求得最大匹配(匹配数为k), 只需用k条多加的边就可以变成强连通,可以将这个强连通缩成一个点s, 又可以知道的是,对于剩下来的点,要么有一道流向s点边,要么有一条从s流出的边。 那么在除去最大匹配后的N和M 集合中各 阅读全文
posted @ 2013-05-10 00:29 chenhuan001 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 先用tarjan缩点, 然后入度为0的点就是必须要选择点同时也是最小的情况。Summer HolidayTime Limit: 10000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1098Accepted Submission(s): 474Problem DescriptionTo see a World in a Grain of SandAnd a Heaven in a Wild Flower,Hold Infinity in the palm of your 阅读全文
posted @ 2013-05-09 14:17 chenhuan001 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 简单tarjan算法。tarjan算法其实就是先找出一个强连通分量树的根,然后就很容易就可以找到整个强连通分量, 关键是利用dfs树迷宫城堡Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 4584Accepted Submission(s): 2002Problem Description为了训练小希的方向感,Gardon建立了一座大城堡,里面有N个房间(N<=10000)和M条通道(M<=100000),每个通道都是单向的,就是说 阅读全文
posted @ 2013-05-09 09:00 chenhuan001 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 题意: 判断二分图最大匹配中的关键边,也就是去掉这些边就不能得到最大匹配了由于题目给出的是100*100的图,枚举+匈牙利 复杂度为10^8,有些不保险, 比较稳的方法就是用HK,使复杂度变成10^7, 也可以进行一些小的优化来节省时间,不过这题数据还是比较水,赤裸裸的匈牙利0MS就过了棋盘游戏Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1488Accepted Submission(s): 856Problem Description小希 阅读全文
posted @ 2013-05-08 01:02 chenhuan001 阅读(195) 评论(0) 推荐(0) 编辑
摘要: KM简单题,但是要注意一些东西。1. 题目说的500*500个点的图, 按照KM的复杂度是不能过的, 但是因为这题数据不行, 所以这样也是无压力的可以过, 但是为了保险,还是用邻接表比较好2. 题目中有一个关键的话 “he still wants to design a creative plan such that no student is assigned to a room he/she dislikes” , 意思就是不能将学生分配到他评价为负的房间,这样就代表了读数据时负边无效。3.因为没有给出n,m的大小, 所以按照一般的KM算法可能会出现死循环, 这时要加一个判断条件, 当在进 阅读全文
posted @ 2013-05-07 23:29 chenhuan001 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 有点意思的题目。。。解题的关键在于, 假设这个数组中负数的个数为N,非负数的个数为M ,N+M=L 。 然后证明的是, 对于有N个负数的数组, 这N个负数可以任意选择。 这样题目就变成了求解这个数组进行无限次操作,所能得到最小的负数的个数.然后bfs 直接上。那个性质很好证明。 不说了C. Yaroslav and Sequencetime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYaroslav has an array, consisti 阅读全文
posted @ 2013-05-07 09:44 chenhuan001 阅读(208) 评论(2) 推荐(0) 编辑
摘要: 比较基础的题了。 构图模板SimilarityTime Limit: 4000/2000 MS (Java/Others)Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1076Accepted Submission(s): 411Problem DescriptionWhen we were children, we were always asked to do the classification homework. For example, we were given words {Tiger, Panda, 阅读全文
posted @ 2013-05-07 09:35 chenhuan001 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 题目 要求最小改变多少条边,使得总的费用最大。以前遇到这种题目的时候,很多的时候都是看这条边是不是关键的边,经常就是去掉这条边看还满不满足条件。 但是这题不能用这种想法。这题的解法甚是巧妙,感觉可以应用在许多方面。由KM算法求解最优解的性质,在以不改变基本总权值的情况下(同时扩大K倍,最后除以K(k>n)),增大某些边( 只+1 ), 使得在算法运行结束后能够得到我们要的那些边的最大情况。这种思想必须掌握!AssignmentTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Tot 阅读全文
posted @ 2013-05-06 16:50 chenhuan001 阅读(216) 评论(0) 推荐(0) 编辑
上一页 1 ··· 39 40 41 42 43 44 45 46 47 ··· 52 下一页