摘要: link 挺有意义的一道题,把最大权闭合子图和拓扑排序结合了起来。 问题可以分成两个部分。可以如此描述:每个点可以被攻击当且仅当所有可以保护它的点(认为右边的点也可以保护它)都被攻击,点有点权,求最大选择方案。把每个可以保护某个点的点作为这个点的后继,那么问题就成了选择这个点就一定要选择它的后继(反 阅读全文
posted @ 2022-07-17 17:36 Feyn618 阅读(15) 评论(0) 推荐(0) 编辑
摘要: link 对偶图的学习笔记。 首先这道题要求的是一个最小割,但数据范围太大写最小割会爆炸。于是按照题解中的天才思路考虑把平面内某个由点围成的区域看成一个点,然后这些点之间的连边可以和原图中的边一一对应,而且相交。选好源汇点之后就可以看成是在新图上跑一个最短路,因为这条路上每一条边都对应原图上一条边, 阅读全文
posted @ 2022-07-17 17:36 Feyn618 阅读(10) 评论(0) 推荐(0) 编辑
摘要: link 一道挺基础的最小割。 按照克鲁斯卡算法的流程,一条边被加入最小生成树当且仅当排名排在它前面的边无法构成一个合格的生成树,而且这条边可以连接两个联通块。于是问题就变成了小于那条边的所有边中最少去除多少条边就可以使得两个点属于两个联通快。于是就是最小割的板子了,可能在最大生成树中解法也是一样的 阅读全文
posted @ 2022-07-17 17:27 Feyn618 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 把板子挂在这里,以后要用下载即可。string转number似乎要手写一个函数来处理,但总比char数组来得方便些(某些情况下)。其它的没什么,重要的是如果读取答案一部分就可以判断答案正确也必须把所有内容全部读完,否则会直接返回wrong的讯息。 板子:download 阅读全文
posted @ 2022-07-17 14:17 Feyn618 阅读(29) 评论(0) 推荐(0) 编辑
摘要: sscanf是用来读取字符串中数字的一种简便方法,当然手写一个函数也可以,但有一个无法处理string的缺陷。用法如下: char w[10]="123"; int a; sscanf(w,"%d",&a);printf("%d\n",a); sscanf(w,"%2d",&a);printf("% 阅读全文
posted @ 2022-07-17 14:15 Feyn618 阅读(185) 评论(0) 推荐(0) 编辑