03 2016 档案

摘要:题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=70017#problem/O 题意是给你n,求所有gcd(i , j)的和,其中1<=i <j <n。 要是求gcd(n , x) = y的个数的话,那么就是求gcd(n/y , 阅读全文
posted @ 2016-03-31 21:38 Recoder 阅读(160) 评论(0) 推荐(0)
摘要:题目链接:http://lightoj.com/volume_showproblem.php?problem=1236 题意很好懂,就是让你求lcm(i , j)的i与j的对数。 可以先预处理1e7以内的素数,然后用来筛选出能被n整除的所有的素数以及素数的个数,时间复杂度是小于根号的。然后用DFS或 阅读全文
posted @ 2016-03-30 21:37 Recoder 阅读(270) 评论(0) 推荐(0)
摘要:题目链接:http://lightoj.com/volume_showproblem.php?problem=1138 题目就是给你一个数表示N!结果后面的0的个数,然后让你求出最小的N。 我们可以知道N!里5(包括5的倍数)的个数比2(包括2的倍数)的个数多,所以1对应5!,2对应10!... 而 阅读全文
posted @ 2016-03-29 21:27 Recoder 阅读(228) 评论(0) 推荐(0)
摘要:题目链接:http://lightoj.com/volume_showproblem.php?problem=1214 题意很好懂,同余定理的运用,要是A数被B数整除,那么A%B等于0。而A很大,那我就把A的每一位拆开,比如A是2341,那么2341=2000+300+40+1,然后你懂的... 阅读全文
posted @ 2016-03-27 20:37 Recoder 阅读(196) 评论(0) 推荐(1)
摘要:题目链接:http://lightoj.com/volume_showproblem.php?problem=1234 给你一个数n,让你求 这个要是直接算的话肯定TLE,要是用1e8的数组预处理存储答案也一定MLE。 所以我用1e6的数组存储每100个数的答案,然后每次给你n的时候顶多算99次。 阅读全文
posted @ 2016-03-27 17:27 Recoder 阅读(178) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/652/D 给你n个不同的区间,L或者R不会出现相同的数字,问你每一个区间包含多少个区间。 我是先把每个区间看作整体,按照R从小到大排序。然后从最小的R开始枚举每个区间,要是枚举到这个区间L的时候,计算之前枚 阅读全文
posted @ 2016-03-26 18:48 Recoder 阅读(227) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/contest/652/problem/E 给你n个点m个边,x和y双向连接,要是z是1表示这条边上有宝藏,0则没有,最后给你起点和终点,问你要是到从起点到终点要是中间遇到宝藏就输出YES,否则就输出NO。 每条边只能经过一次,而且这个图保证连通 阅读全文
posted @ 2016-03-26 17:26 Recoder 阅读(334) 评论(0) 推荐(1)
摘要:题目链接:http://poj.org/problem?id=3169 差分约束的解释:http://www.cnblogs.com/void/archive/2011/08/26/2153928.html 我也不是特别理解,要是给你a - b <= k 就建一条b->a权值为k的有向边,要是a - 阅读全文
posted @ 2016-03-23 23:12 Recoder 阅读(177) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=3660 题意是给你n头牛,给你m条关系,每条关系是a牛比b牛厉害,问可以确定多少头牛的排名。 要是a比b厉害,a到b上就建一条有向边......这样建好之后,如果比a牛厉害的牛都能达到a牛,而a牛能到达比a牛差的牛的话,牛的头数又恰好是 阅读全文
posted @ 2016-03-23 15:44 Recoder 阅读(247) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=1679 有t组数据,给你n个点,m条边,求是否存在相同权值的最小生成树(次小生成树的权值大小等于最小生成树)。 先求出最小生成树的大小,把最小生成树的边存起来。然后分别枚举最小生成树上的每条边,除了这条边,其他边是否能生成最小生成树,若 阅读全文
posted @ 2016-03-22 23:18 Recoder 阅读(116) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=1751 题意是给你n个点的坐标,然后给你m对点是已经相连的,问你还需要连接哪几对点,使这个图为最小生成树。 这里用kruskal不会超时,用prim应该会超时,特别注意在输入的时候不要多组输入,否则会TLE。 阅读全文
posted @ 2016-03-22 16:07 Recoder 阅读(422) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=2031 题目意思是给出三维坐标系上的一些球的球心坐标和其半径,搭建通路,使得他们能够相互连通。如果两个球有重叠的部分则算为已连通,无需再搭桥。求搭建通路的最小费用(费用就是边权,就是两个球面之间的距离)。就是简单的最小生成树。 prim 阅读全文
posted @ 2016-03-21 22:07 Recoder 阅读(265) 评论(0) 推荐(0)
摘要:题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=565 题意很好理解,普通的01背包,dp[i - 1][j]表示在前i - 1件物品中选取若干物 阅读全文
posted @ 2016-03-21 14:40 Recoder 阅读(230) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=1502 题意是给你n个点,然后是以下三角的形式输入i j以及权值,x就不算 ,边是双向的,求其中起点到最远的点的最短距离。 直接dijkstra优先队列,速度确实快。 阅读全文
posted @ 2016-03-19 14:57 Recoder 阅读(217) 评论(0) 推荐(1)
摘要:题目链接:http://poj.org/problem?id=3259 题目大意是给你n个点,m条双向边,w条负权单向边。问你是否有负环(虫洞)。 这个就是spfa判负环的模版题,中间的cnt数组就是记录这个点松弛进队的次数,次数超过点的个数的话,就说明存在负环使其不断松弛。 阅读全文
posted @ 2016-03-19 14:03 Recoder 阅读(252) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=1860 题意是给你n种货币,下面m种交换的方式,拥有第s种货币V元。问你最后经过任意转换可不可能有升值。下面给你货币u和货币v,r1是u到v的汇率,c1是u到v的手续费,同理r2是v到u的汇率,c2是v到u的手续费。转换后的钱B = ( 阅读全文
posted @ 2016-03-19 13:36 Recoder 阅读(235) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=2762   题意是 有t组样例,n个点m条有向边,取任意两个点u和v,问u能不能到v 或者v能不能到u,要是可以就输出Yes,否则输出No。注意一点,条件是或者!所以不是判断双连通图的问题。   我一开始没看到'or'这个条件,所以直接 阅读全文
posted @ 2016-03-13 20:19 Recoder 阅读(471) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2647   题意是给你n点m条有向边,叶子点(出度为0)上的值为888,父亲点为888+1,依次计算... 让你求最小的值,但是中间出现有向环就不行了,输出-1。   拓扑排序队列实现,因为叶子是最小的, 阅读全文
posted @ 2016-03-13 14:35 Recoder 阅读(410) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2874 题意是给你n个点,m条边(无向),q个询问。接下来m行,每行两个点一个边权,而且这个图不能有环路。然后接下来q行,每行给你两个点,问你这两个点的最短距离是多少,要是不相连,则输出一串英文。 首先想 阅读全文
posted @ 2016-03-12 14:43 Recoder 阅读(215) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=3694 题意是给你一个无向图n个点,m条边,将m条边连接起来之后形成一个图,有Q个询问,问将u和v连接起来后图中还有多少个桥。 首先用tarjan标记点的low和dfn值,那么u和v相连的边是桥的条件是dfn[u] < low[v](说 阅读全文
posted @ 2016-03-11 20:43 Recoder 阅读(297) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=3177 题目大意是一个无向图给你n个点m条边,让你求出最少加多少条边 可以让任意两个点相通两条及以上的路线(每条路线点可以重复,但是每条路径上不能有重边),简单来说就是让你加最少的边使这个图变成一个双连通图。 首先用tarjan来缩点, 阅读全文
posted @ 2016-03-10 21:23 Recoder 阅读(270) 评论(0) 推荐(0)
摘要:题目链接:http://www.codeforces.com/contest/622/problem/E 题意是给你一棵树,1为根,每个叶子节点有一个蚂蚁,移动到一个邻接节点时间耗费为1,一个节点上不能同时有1个以上的蚂蚁数目(除了根节点外),让你求最后一个蚂蚁到达根节点的最少的时间。 可以先dfs 阅读全文
posted @ 2016-03-08 22:40 Recoder 阅读(204) 评论(0) 推荐(1)
摘要:题目链接:http://poj.org/problem?id=2186 题目意思大概是:给定N(N<=10000)个点和M(M<=50000)条有向边,求有多少个“受欢迎的点”。所谓的“受欢迎的点”当且仅当任何一个点出发都能到达它。 原来的图是无序且可能有环,用tarjan缩点,变成一个DAG。受欢 阅读全文
posted @ 2016-03-08 21:09 Recoder 阅读(375) 评论(0) 推荐(0)
摘要:双DFS方法就是正dfs扫一遍,然后将边反向dfs扫一遍。《挑战程序设计》上有说明。 双dfs代码: 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <vector> 5 6 using namesp 阅读全文
posted @ 2016-03-06 17:25 Recoder 阅读(422) 评论(0) 推荐(1)
摘要:题目链接:http://codeforces.com/contest/347/problem/C 题意是给你一个数n,然后n个数,这些数互不相同。每次可以取两个数x和y,然后可以得到|x - y|这个数,要求不在这个数组中,然后添加进去,直到不能取为止,不能取的人输了。Alice先取,求谁最后能赢。 阅读全文
posted @ 2016-03-03 19:51 Recoder 阅读(216) 评论(0) 推荐(0)