随笔分类 - 图论
摘要:题意: 一个有n个数的排列,给你一些位置上数字的大小关系。求合法的排列有多少种。思路: 数字的大小关系可以看做是一条有向边,这样以每个位置当点,就可以把整个排列当做一张有向图。而且题目保证有解,所以只一张有向无环图。这样子,我们就可以把排列计数的问题转化为一个图的拓扑排序计数问题。 拓扑排序的...
阅读全文
摘要:做多校的时候遇见一个求拓扑排序数量的题,就顺便来写了一下。题意: 你有个朋友是KOF的狂热粉丝,他有一个对其中英雄的强弱比较,让你根据这些比较关系来给这些英雄排名。问一共有多少种排名方式。思路: 用dp[S]记录当前状态的数量。 S表示拓扑排序中当前阶段已经被排序的点的集合。然后就可以枚举当前排...
阅读全文
摘要:其实这个题是抄的题解啦…… 题解给了一个图,按照那个图模拟一遍大概就能理解了。题意: 有一段程序,给你一个C值(程序中某常量),让你构造一组数据,使程序输出"doge" 那段代码大概是 SPFA的SLF优化。其实题目的意思是让我们构造一组数据,使得总的出队次数大于C。 数据范围 C 2 #i...
阅读全文
摘要:又是一个看了题解以后还坑了一天的题…… 结果最后发现是抄代码的时候少写了一个负号。题意: 有一个n*m的网格,其中每个格子上都有0~9的数字。现在你可以玩K次游戏。 一次游戏是这样定义的: 你可以选任意之前没有走过的格子作为起点。然后走任意步,其中每一步你可以向右或者向下走任意格。假如从(x1,...
阅读全文
摘要:找匹配中的关键边。做法: 拆掉一条匹配边,然后对边两边的点做一次增广,如果可以增广,那么此边不是关键边,否则是关键边。详情可以参见:http://www.docin.com/p-109868135.html代码: 1 #include 2 #include 3 #include 4 #incl...
阅读全文
摘要:思路: 以理发的次数当容量,源点到每个人建一条容量为2的边,人到他可达的每个时间点建一条边,每个时间点到汇点建一条容量为m的边。然后判断最大流是否等于2*n。代码: 1 #include 2 #include 3 #include 4 #include 5 #include ...
阅读全文
摘要:题意: 众所周知,老师经常在班级上点名。点名是从名单上叫一个人的名字或者id来判断名单上这个人是否在场。学生们总是有各种各样的理由不来,所以他们需要其他人帮他们答到。但是打到工作不是这么简单,出于各种考虑,他们答道遵循以下原则。1. 每个来上课的人必须给自己达到;2. 每个来上课的人,只能帮另外一...
阅读全文
摘要:题意: 农夫约翰为他的牛准备了F种食物和D种饮料。每头牛都有各自喜欢的食物和饮料,而每种食物或饮料只能分配给一头牛。最多能有多少头牛可以同时得到各自喜欢的食物和饮料?思路: 用 s -> 食物 -> 牛 -> 牛 -> 饮料 -> t 为路径,建图。然后跑最大流。p.ps.: 抄的书上的思路和d...
阅读全文
摘要:Floyd + 状态DPWatashi的板子#include #include #include #include using namespace std;const int INF = (int) 1e8;int dp[1= 0; S--) { for (int v = 0;...
阅读全文
摘要:---恢复内容开始---题意: N个人想回家在至少一个时刻、至多两个时刻。并且,他们每个人都能独自回家。 定义:ai表示第i个人回家的时间, xij = abs(ai - aj) (i != j). 在每种时间计划中,定义 y = min{xij}。 问y最大可能是多少?解法: 二分时间差...
阅读全文
摘要:今天太无聊了,居然刷水题,不过觉得这道题挺有意义的,虽然还是很水 0 0题意: 略(中文)思路: 枚举每个点到其他所有点的距离和,取最小值。 先排序。然后求第一个点到其他点的距离和。然后向右移动,此时左边的点远离,右边的点靠近,可以O(1)的求出下一个点到其他点的距离。代码: 1 #includ...
阅读全文
摘要:题意: 在小明出生的星球X上有n国家。 一些国家通过结盟而拥有良好的双边关系,因此他们的公民得益于这些政策,使得所有这些国家之间的旅行变得免费。 但是,不同联盟之间的旅行就不是这么容易了。如果可能,它必须花一些钱。 请帮小明计算出国家之间的最小花费。 输入: 输入包含多组样例。 ...
阅读全文

浙公网安备 33010602011771号