摘要: 题目链接:http://codeforces.com/contest/626/problem/C 题意就是给你n个分别拿着2的倍数积木的小朋友和m个分别拿着3的倍数积木的小朋友,每个小朋友拿着积木的数量互不相同,求小朋友中拿着最大积木数的最小的情况(有点绕)。 那最坏的情况就是2n或者3m,假设最大 阅读全文
posted @ 2016-02-28 15:47 Recoder 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 两个最近的点u和v的最近的公共的祖先称为最近公共祖先(LCA)。普通的LCA算法,每算一次LCA的时间复杂度为线性o(n); 这里讲LCA + 二分的方法。首先对于任意的节点v,利用其父节点的信息,可以通过par2[v]=par[par[v]]得到向上走两步的节点。依此信息可以通过par4[v]=p 阅读全文
posted @ 2016-02-26 22:02 Recoder 阅读(661) 评论(0) 推荐(1) 编辑
摘要: 题目链接:http://codeforces.com/contest/616/problem/C 题意就是 给你一个n行m列的图,让你求’*‘这个元素上下左右相连的连续的’.‘有多少(本身也算一个),每个’*‘的结果取模10。要是为’*‘输出结果,否则输出’.‘。 这个题目就是让你求连续的'.'联通 阅读全文
posted @ 2016-02-04 22:32 Recoder 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://www.bnuoj.com/v3/problem_show.php?pid=51276 具体题意不描述了,一眼看过去就是并查集,关键是添加边以后更新答案。我是开个二维的数组ans记录答案,vector容器存储直接或间接相连的点(包括本身)。 代码如下: 1 #include 阅读全文
posted @ 2016-02-04 22:05 Recoder 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=1511 就是求从起点到其他点的最短距离加上其他点到起点的最短距离的和 , 注意路是单向的. 因为点和边很多, 所以用dijkstra优先队列的做法. 起点到其他点的最短距离之和就是dij一下 . 要求其他点到起点的最短距离的话就是把原先 阅读全文
posted @ 2015-12-15 15:15 Recoder 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2121 题目意思大概是要你在一些城市中选一个做首都 , 要求首都都能到其他城市 , 道路花费要最少 , 且道路都是单向的 , 这个时候就要用到最小树形图算法了 , 而且是不固定根. 不定根就是加一个虚根( 阅读全文
posted @ 2015-12-01 21:45 Recoder 阅读(1066) 评论(0) 推荐(1) 编辑
摘要: 不好意思 时间比较短,下面应该还会有修订的= = , 那段话是我复制过来的,觉得挺好的就用一下. 下面是讲解(不理解一的时候 , 可以看看二 ,结合图片): 一: 最小树形图,就是给有向带权图中指定一个特殊的点root,求一棵以root为根的有向生成树T,并且T中所有边的总权值最小。最小树形图的第一 阅读全文
posted @ 2015-11-30 22:42 Recoder 阅读(1617) 评论(0) 推荐(1) 编辑
摘要: 题目链接:http://codeforces.com/problemset/problem/598/D 题意是 给你一张行为n宽为m的图 k个询问点 ,求每个寻问点所在的封闭的一个上下左右连接的块所能看到的壁画有多少(大概这样吧)。 我的做法是bfs(dfs也可以)这个为'.'的点,要是遇到上下左右 阅读全文
posted @ 2015-11-14 23:24 Recoder 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://codeforces.com/problemset/problem/598/C 题意是给你一个数n,下面n行,每行给你横坐标x和纵坐标y(x != 0 && y != 0)。求当两个点与原点形成的角度最小时,是哪两个点。 先介绍atan2这个函数,atan2(double y 阅读全文
posted @ 2015-11-14 22:53 Recoder 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=2785 题意是给你4个数列.要从每个数列中各取一个数,使得四个数的sum为0,求出这样的组合的情况个数. 其中一个数列有多个相同的数字时,把他们看作不同的数字. 做法是把前两个数列和的值存在一个数组(A)中 , 后两个数列的和存在另一个 阅读全文
posted @ 2015-11-10 18:41 Recoder 阅读(157) 评论(0) 推荐(0) 编辑