随笔分类 - codeforces
摘要:题目链接:http://codeforces.com/problemset/problem/14/D思路:直接枚举每一天路径的两端,然后求以每一端为树根的树上最长路径,然后相乘就可以了。#include #include #include #include #include #define RE...
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/164/A思路:用vector分别保留原图和发图,然后分别从val值为1的点正向遍历,va值为2的点反向遍历,如果某个点这两种方式都可以遍历到,则输出1,否则输出0.#include #include #in...
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/437/D思路:并差集应用,先对所有的边从大到小排序,然后枚举边的时候,如果某条边的两个顶点不在同一个集合中就合并,并且用一个sum记录这两个集合的大小,这样这两个集合中的每一对点都要经过这条边,然后更新一下...
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/118/E思路:首先要判断图是否是边双连通,这个Tarjan算法可以判断,若low[v] > dfn[u],则说明边(u,v)是桥,从而这个图不是边双连通,然后发现在判断的时候已经访问了所有的顶点,顺便加入就...
阅读全文
摘要:题目链接:http://codeforces.com/contest/95/problem/C思路:首先dijkstra预处理出每个顶点到其他顶点的最短距离,然后如果该出租车到某个顶点的距离小于等于最短距离,就连边,费用为一开始出租车所需的费用,建好图之后再求一次最短路即可。#include #in...
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/20/C思路:需要用优化过的dijkstra,提供两种写法。#include #include #include #include #include #include #include #define REP...
阅读全文
摘要:题目链接:http://codeforces.com/contest/208/problem/C思路:题目要求的是经过1~N的最短路上的某个点的路径数 / 最短路的条数的最大值。一开始我是用spfa得到从1开始的最短路和从N开始的最短路,然后分别从N开始记忆化搜索,得到从1到达最短路径上的u的路径条...
阅读全文
摘要:题目链接:http://codeforces.com/contest/433/problem/C思路:可以想到,要把某一个数字变成他的相邻中的数字的其中一个,这样总和才会减少,于是我们可以把每个数的左右两个相邻的数字存起来,然后我们可以想到,把某个数变成这些相邻的数的中位数总和最小。#include...
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/144/D思路:首先spfa求出中心点S到其余每个顶点的距离,统计各顶点到中心点的距离为L的点,然后就是要统计在边上的点了,可以枚举边(这里边的数量最多也就100000条),对于枚举的某条边,如果它的其中某个...
阅读全文
摘要:题目链接:http://codeforces.com/contest/283/problem/B思路: dp[now][flag]表示现在在位置now,flag表示是接下来要做的步骤,然后根据题意记忆化搜索记忆,vis数组标记那些已经访问过的状态。#include #include #include...
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/263/D思路:一遍dfs即可,dp[u]表示当前遍历到节点u的长度,对于节点u的邻接点v,如果v没有被访问过,则继续访问,否则计算dp[u] - dp[v] + 1是否大于等于K + 1,如果是,就说明找到...
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/131/D思路: 题目的意思是说给定一个无向图,求图中的顶点到环上顶点的最短距离(有且仅有一个环,并且环上顶点的距离不计)。一开始我是直接用Tarjan求的无向图的双连通分量,然后标记连通分量上的点(如果某一...
阅读全文

浙公网安备 33010602011771号