![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 72
Jayint
这个作者很懒,什么都没留下…
展开
-
优先队列,并查集
每次输出set里的元素个数即可。把已经被确认下来的动物(已经被说过的)的三种情况放到三个集合里(这里的集合就是并查集),比如X吃Y,那么就把X是A,Y是B放到一个集合,X是B,Y是C放到一个集合,X是C,Y是A放到一个集合,然后比如X和Y同类,那么就把两个都是A,都是B,都是C放到一个集合。我们看到,如果在上一次删除时,删除其他的单元,则可以避免本次访问的缺失。如果说X和Y是同类,但是X是A,Y是B在一个集合,或者X是A,Y是C在一个集合,那么说明这是假话,X是B,C无需讨论,性质一样。...原创 2022-07-21 18:32:57 · 166 阅读 · 0 评论 -
栈,队列,单调栈,单调队列
经典题for循环让数字按顺序压入栈,然后里面while循环判断是否弹出栈,最后循环结束的时候看看栈是否为空,即该出栈顺序有没有问题。例题1给你一个1->n的排列和一个栈,入栈顺序给定你要在不打乱入栈顺序的情况下,对数组进行从大到小排序当无法完全排序时,请输出字典序最大的出栈序列思路观察发现,当一个数后面没有比他大的数的时候他必出栈水题牛牛喜欢跟字符串玩耍,他刚刚学会了一个新操作,将一个字符串x插入另一个字符串y中(包括放在开头和结尾)解法2。...原创 2022-07-17 00:31:13 · 167 阅读 · 0 评论 -
二分,三分,01分数规划
二分,三分,01分数规划原创 2022-07-13 10:55:50 · 225 阅读 · 0 评论 -
线段树与树状数组
1.模板两种操作:1.给某个数加x。2.查询区间和#include<bits/stdc++.h>using namespace std;int n,m;int a[100010];int tree[4*100010];//节点数不超过叶子的四倍void build(int p,int l,int r)//p是节点编号 { if(l==r) { tree[p]=a[l]; return; } int mid=(l+r)/2; build(p*2,l原创 2022-06-06 19:29:42 · 117 阅读 · 2 评论 -
递归与分治思想
递归与分治思想原创 2022-05-21 16:29:10 · 136 阅读 · 0 评论 -
动态规划详解
01背包:f [ i ][ j ]表示前i个物品中恰好塞满 j 体积的背包的最大价值f[ i ][ j ]=max ( f[ i -1 ][ j ] , f[ i - 1][ j -a[ i ] ] + w [ i ])最原始的思路应该将f[ 0 ][ j ]全部赋值为无穷小,因此表格就变成如下:可以,发现最后答案还要枚举才能找到最大值,原因是f[ i - 1][ j -a[ i ] ]可能是负无穷,这样就会导致f[ i - 1][ j -a[ i ] ]+ w [ i ]是负无穷,..原创 2022-05-05 21:56:27 · 68 阅读 · 0 评论