摘要:
例题 "洛谷P1894" 分析: 裸题,牛栏作为一个点集,牛作为另一个,牛喜欢牛栏则从牛向牛栏连一条边跑匈牙利就得了,邻接表开大点 代码: include define MAXN (2000+5) using namespace std; inline int read(){ int cnt=0,f 阅读全文
摘要:
二分图的定义: 二分图的顶点可以被分为两个点集,且相同点集内的顶点之间没有连边 二分图的判定: dfs整个图并对其进行染色,且只能染两种颜色,若与其相邻的顶点与其同色则不是二分图,否则继续dfs。 代码: // 匈牙利算法: // int find(int u){ for(register int 阅读全文
摘要:
题目描述: 数学中,假如有命题 p 一定能推出命题 q,则称 p 是 q 的充分条件,q 是 p 的必要 条件。 特别的,当 p 既是 q 的充分条件,又是 q 的必要条件时,称 p 和 q 互为 充要条件 现在有 n 个命题,其中一些是另一些的充分条件。请问有多少对命题互为 充要条件? 输入 第一 阅读全文
摘要:
题目链接: "传送门" 题目分析: 很裸的分块题,最开始在原数组上排序WA掉了,还因此调了很久23333 ~~(不过为什么这样一个全是bug的程序交上去会有90分啊 WOJ上甚至还能玄学A过)~~ 大块打标记,小块暴力改,每次改了小块之后把小块所在的整个大块复制到另外一个数组里排序,询问时用二分找比 阅读全文
摘要:
题目链接: "点我" 题目分析: tarjan缩点后统计入度为0的连通分量。 代码: include define MAXN 100000+5 define MAXM 500000+5 using namespace std; inline int read(){ int cnt=0,f=1;cha 阅读全文
摘要:
题目链接: "传送门" 题目: Description 有三个好朋友喜欢在一起玩游戏,A君写下一个字符串S,B君将其复制一遍得到T,C君在T的任意位置(包括首尾)插入一个字符得到U.现在你得到了U,请你找出S. Input 第一行一个数N,表示U的长度. 第二行一个字符串U,保证U由大写字母组成 O 阅读全文
摘要:
题目链接: "点我" 题目分析: 这是什么,区间dp吗?怎么大佬都在说区间dp的样子 完蛋区间dp都不知道是啥quq 于是使用了玄学的姿势A过了这道题 设 dp[i][j][0] 表示第i天,左边选了 j 个,当前选择了左边的最大价值方案, dp[i][j][1] 表示从右边选 (其实第三维好像不用 阅读全文
摘要:
$2019/10/3 UPD:$ 我回来填坑了 分块: 联想一下线段树,分块也是一种基于对数据进行~~信仰~~合理分治以提高处理效率的算法 考虑一下线段树是一分为二的树形数据结构,即有从属关系(一个节点的两子节点从属于它) 而分块是一种线性的分治方式,它把数据分成若干个互不影响的块,之后对于一些范围 阅读全文
摘要:
题目链接: "理想的正方形" 题目分析: 这道题对于我这种菜鸡来说其实有点难……值得一做 核心思想:分别在行和列上维护单调队列 用x_min[i][j]表示以mapp[i][j]为起点向右推n个里的最小值,最大值同理 用y_min[i][j]表示以mapp[i][j]为起点向下推n个里的最小值,最大 阅读全文
摘要:
题目链接: "WOJ1583" 题目分析: 大水题……我就来水个题解 倒序扫,单调栈维护单减序列,每个对象的答案是栈里它下面那个元素 代码: include define MAXN (1000000+5) using namespace std; inline int read(){ int cnt 阅读全文