图论
图论
这里是一只小小琪
这里是一个追星程序员女孩
展开
-
Alyona and the Tree 【CodeForces - 682C】【搜索+思路】
题目链接 题目大意 现在有一棵树,节点和边都有权值,我们规定一个点是sad点它要满足:dis(v,u)>a[u],其中u是v的子树节点中的其中一个,dis是(u,v)之间的最短路径,a[u]是u节点的点权。如果要这个树种没有sad节点,要删除多少个点 解题思路 很显然,如果要删除一个点,这个点的子树都要删掉。因为u是v的子树节点中的其中一个,那么我们只需要去保存当前节点和祖先节点之间路径的最...原创 2019-07-30 09:34:51 · 99 阅读 · 0 评论 -
Jzzhu and Cities 【CodeForces - 449B】【最短路条数】
题目链接 题目大意 现在有n个城市标号1–n,有m条双向公路路连接,每条路有一个长度,还有k条火车,每个火车相连1到xi,每个火车路线有一个长度。问你在不破坏1到任何城市的最短路的情况下,最多能撤掉多少个火车路线。 解题思路 我们在跑最短路的同时,用一个vis数组来标记这个最短路的条数有多少个。当从1到第k个城市的最短路有一个的时候,那么这个火车路线就不能被撤离,如果有多个的话,就可以被撤离。 这...原创 2019-07-30 14:26:47 · 140 阅读 · 0 评论 -
NP-Hard Problem 【CodeForces - 687A】【染色法】
题目链接 题目大意 现在有一个图G,n个点,m个边,求出两个不相交的子集,使得,每个子集都是一个顶点覆盖集,也就是每个边有一个顶点在这个集合里。 解题思路 一条边连接两个顶点,要这两个顶点的其中一个在其中集合中,也就是二分图,用染色法判断一下能不能组成二分图,相同颜色的是一个集合就可以啦。 #include<stdio.h> #include<string.h> #incl...原创 2019-07-30 15:03:41 · 154 阅读 · 0 评论 -
Por Costel and the Algorithm 【Gym - 100923B】【最短路记录边】
题目链接 题目大意 有一个人写了一个Bellman-Ford算法来编写最短路,但是这个算法的效率实在是太慢了,他想让你给图的边排序,使得Bellman-Ford算法里的while循环最多跑两次。 解题思路 其实就是先跑最短路上的边,更新就按顺序就只需要一次,所以跑一遍最短路,记录一下边就好,(邻接表从1开始)。 #include<stdio.h> #include<string....原创 2019-07-31 10:10:02 · 154 阅读 · 0 评论 -
Path 【多校1 HDU 6582】【最短路+最小割】
题目链接 题目大意 有n个城市,m条路,有个人每天都沿着最短路径从城市1到城市n,现在让你堵上一些路使得这个人走的路比之前长,堵上一个路的代价是这个路的长度,输出最小代价。 解题思路 先计算出来最短路,找出所有在最短路上的路,然后再这些路上跑最小割。 找bug找到吐血(QAQ) #include<stdio.h> #include<string.h> #include<...原创 2019-08-08 17:47:22 · 151 阅读 · 0 评论 -
D. Shortest Cycle 【Codeforces Round #580 (Div. 2) D】【思路+最小环】
题目连接 题目大意 有n个数可以看做是n个点,如果ai & aj !=0,那么点 i 和点 j 可以连一条无向边。问这个图出点数最小的环的大小事多少,如果没有环就输出-1; 解题思路 如果 x&y != 0 那么x的二进制和y的二进制至少有一位是1,所以如果这n个数中有3个数的二进制都是1,那么这三个数可以围成一个环。 其他情况就是每一位最多只有两个数是1,那么最多是64*2个数,...原创 2019-09-13 10:45:33 · 108 阅读 · 0 评论