随笔分类 - ACM——图论
1
摘要:1 // 欧拉图 CCF2016第六次 送货 2 // 思路: 3 // CCF数据很水。。。。这道题有问题 4 // 先判连通,再dfs边。 5 // 应为输出要满足字典序最小,用vector存图,sort一遍,用stack保存答案 6 7 #include 8 using namespace std; 9 #define LL long long 10 typedef ...
阅读全文
摘要:http://codeforces.com/contest/702 题意:n个点,n条边,每个点出边只有一条,问从每个点出发经过k条边的边权和,以及边权最小值 思路: f[i][j] 第i个点出发,经过2^j条边后的相连点 其余类似 二进制巧妙解决问题应用太广了
阅读全文
摘要:E 每过一秒,当前点会把它的值传递给所有相邻点,问t时刻该图的值
阅读全文
摘要:https://icpc.baylor.edu/regionals/finder/north-america-qualifier-2015 一个人打。。。。 B 概率问题公式见代码 F 水题 输出字符串中缺少的字母 G 过河的经典问题 多个人过河每次船上必须有一人问最短时间 H 水题 旋转矩阵再输出
阅读全文
摘要:求最短路径覆盖的全部边权值和。 思路:分别从起点和终点两次求最短路,再比较两个点到起点的距离和他们之间的权值相加和是否等于最短路径。 这题很好 1 #include <cstring> 2 #include <cmath> 3 #include <queue> 4 #include <vector>
阅读全文
摘要:题意:有n个人,m种需求,给出m行,每行a,b代表a想要的书在b那里,问能不能通过交换的方法来满足每个人的需求 思路:要符合题意的话一定是二分图。网上还一种dfs 1 #include<cstdio> 2 #include<iostream> 3 #include<cstdlib> 4 #inclu
阅读全文
摘要:题意:M×N的矩阵 让你保持每行每列的大小对应关系不变,将矩阵重写,重写后的最大值最小。 思路:离散化思想+并查集,详见代码 好题! 1 #include <iostream> 2 #include <string.h> 3 #include <stdio.h> 4 #include <algori
阅读全文
摘要:题意:n条隧道由一些点连接而成,其中每条隧道链接两个连接点。任意两个连接点之间最多只有一条隧道。任务就是在这些连接点中,安装尽量少的太平井和逃生装置,使得不管哪个连接点倒塌,工人都能从其他太平井逃脱,求最少安装数量和方案。 思路:其实本题就相当于在一张无向图中,涂尽量少的黑点,使得任意删除哪个点,每
阅读全文
摘要:题意:给你n,m n为有多少人,m为有多少组关系,每组关系代表两人相互憎恨,问有多少个骑士不能参加任何一个会议。 白书算法指南 对于每个双联通分量,若不是二分图,就把里面的节点标记 1 #include <stdio.h> 2 #include <string.h> 3 #include <iost
阅读全文
摘要:参考算法指南白书P316 1 #include <stdio.h> 2 #include <string.h> 3 #include <iostream> 4 #include <algorithm> 5 #include <vector> 6 #include <queue> 7 #include
阅读全文
摘要:算法指南白书 思路:“连续和转化成前缀和之差”
阅读全文
摘要:算法指南 主要就是建立欧拉回路
阅读全文
摘要:算法指南白书 维护一个四维数组,走一步更新一步
阅读全文
摘要:算法指南白书 分别求一次人和火到达各个点的最短时间
阅读全文
摘要:题意:问生成树里能不能有符合菲波那切数的白边数量 思路:白边 黑边各优先排序求最小生成树,并统计白边在两种情况下数目,最后判断这个区间就可以。注意最初不连通就不行。
阅读全文
摘要:题意:国王有n个儿子,现在这n个儿子要在n个女孩里选择自己喜欢的,有的儿子可能喜欢多个,最后国王的向导给出他一个匹配。匹配有n个数,代表某个儿子和哪个女孩可以结婚。已知这些条件,要你找出每个儿子可以和哪些女孩结婚 思路:求强联通分量。同时练习一下输入输出外挂可以减少时间 1 #include<cst
阅读全文
摘要:题意:给一张有向图G,求一个结点数最大的结点集,使得该结点中任意两个结点 u 和 v满足:要么 u 可以到达 v, 要么 v 可以到达 u(u 和 v 相互可达也可以)。 分析:”同一个强连通分量中的点要么都选,要么不选。把强连通分量收缩点后得到SCC图,让每个SCC结点的权等于它的结点数,则题目转
阅读全文
摘要:题意:有n个命题,已知其中的m个推导,要证明n个命题全部等价(等价具有传递性),最少还需要做出几次推导。 思路:由已知的推导可以建一张无向图,则问题变成了最少需要增加几条边能使图变成强连通图。找出所有的强连通分量,将每一个连通分量视作一个大节点,则整张图变成了一张DAG。设出度为0的大节点个数为b,
阅读全文
摘要:题意:每个人有喜欢的猫和不喜欢的狗。留下他喜欢的猫他就高心,否则不高心。问最后最多有几个人高心。思路:二分图求最大匹配 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 ...
阅读全文
摘要:题意:给你一个图,每条边权值0或1,问每个点周围最近的点有多少个?思路:并查集找权值为0的点构成的连通块。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #define clc(a,b) memset(a,b,sizeof(a)) ...
阅读全文
1