摘要: 题目链接 当模式串j达到len时表示匹配到了一个 这时候将j=next[j]代表着把j移到整个模式串最长前缀后缀,这样可以保证j以上next[j]个字符一定是匹配的 然后继续寻找就能得到答案 题目代码 阅读全文
posted @ 2019-08-05 16:36 helman78 阅读(102) 评论(0) 推荐(0)
摘要: 题目链接 模式串匹配模板题 题目代码 阅读全文
posted @ 2019-08-05 16:15 helman78 阅读(99) 评论(0) 推荐(0)
摘要: 题目链接 题目含义 说了一大堆,就是发电站发电,中转站不用电不发电,用户用电,而且每个都有一个电流的限制 问用户们最多能得到多少电 题目分析 用一个超级源头指向所有发电站,最大容量是他们的发电量 将所有用户指向一个终点,最大容量是他们的用电量 于是就变成了一个最简单的最大流 以后遇到类似的题,像这样 阅读全文
posted @ 2019-08-03 19:20 helman78 阅读(167) 评论(0) 推荐(0)
摘要: 题目链接 模板题练练手 题目代码 要建反向边,记得结构数大小乘二哦 阅读全文
posted @ 2019-08-03 19:05 helman78 阅读(91) 评论(0) 推荐(0)
摘要: 题目链接 题目含义 有一个机器人比赛,只要a能打败b,b能打败c,a就一定能打败c 然后给出一堆比赛的结果,如果不能得到唯一的所有的机器人战力排名,就输出-1 如果可以的话,最少能用前几场比赛结果能得到,输出这个最少的比赛次数 题目分析 使用拓扑排序,如果出队数不等于机器人数或者某一时刻队列有两个及 阅读全文
posted @ 2019-08-02 23:33 helman78 阅读(213) 评论(0) 推荐(0)
摘要: 题目链接 题目含义 给出很多一对数,代表这两个人认识 要你将这些人分成两堆,一堆中的人互不认识(就是判定无负环) 如果可以的话,问最大匹配 题目分析 二分图染色模板题 注意这里二分代表的两个集合都是n个学生,如果你建双向边,最后最大匹配数要除2 题目代码 阅读全文
posted @ 2019-08-02 20:21 helman78 阅读(133) 评论(0) 推荐(0)
摘要: 题目链接 题目含义 两个机器分别有n,m种模式,每个工作需要任一机器达到某个模式,问最少要变换几次模式 题目分析 将两个机器的n,m种模式作为二分图的两个集合,每个工作代表之间的一条线 题目可以化为求能覆盖所有边的最少点(取a或b的点都可以) 然后根据定理,可以转化成求最大匹配 注意,当工作需要机器 阅读全文
posted @ 2019-08-02 19:55 helman78 阅读(135) 评论(0) 推荐(0)
摘要: 题目链接 题目含义 每门课有几名同学参加,要求每门课选一个代表,当然代表只能由参加这门课的学生中选,并且一个人只能当一门课的代表 题目分析 二分图匹配,是课程去找一个同学与它匹配,如果每门课都匹配上了就输出yes,否则no 题目代码 阅读全文
posted @ 2019-08-02 19:30 helman78 阅读(98) 评论(0) 推荐(0)
摘要: 题目链接 题目含义 给出一个图,每个强连通图都要寻找一个点 要求寻找的点的价值之和最少,并且问这个最低价值有几种选法 题目分析 使用Tarjan算法,每次找到一个强连通图时出栈,并在出栈过程寻找最低价值的点和这个点的个数 最后把每个强连通图的最低价值加起来,个数都相乘就得到最后答案 有一个需要注意的 阅读全文
posted @ 2019-08-01 22:05 helman78 阅读(324) 评论(0) 推荐(0)
摘要: 题目链接 题目含义 判断一个图是不是强连通图,即任意两点存在双向通道 题目分析 用Tarjan可以算出这个图中的强连通图有多少个,如果不是1那当然输出No 而如果是1,只能说明有一个强连通子图而不能说明这个图是强连通图,就需要在当dfn[x]==low[x]时,找到这个强连通图所有的点,将他们全部指 阅读全文
posted @ 2019-08-01 20:30 helman78 阅读(326) 评论(0) 推荐(0)