上一页 1 ··· 35 36 37 38 39 40 41 42 43 ··· 54 下一页
  2022年11月28日
摘要: 这题#10130. 「一本通 4.4 例 1」点的距离 求树上两点的距离 #include <bits/stdc++.h> using namespace std ; const int N=1e6+2,M=N; int nxt[M],hd[N],all,go[M],n; int dep[N],f[ 阅读全文
posted @ 2022-11-28 12:28 towboat 阅读(24) 评论(0) 推荐(0)
摘要: 一个数组,每个元素属性:颜色和代价, 选择2个元素l ,r,颜色要相同, 且 [l,r] 区间的 min(代价) <=P ; 问有多少方案 dp思想 ,还有维护信息 f[i] =f[j] ,( i,j 颜色相同) 考虑 区间 [ j ,i ] 若满足 min() <=p , f[i] = cnt[i 阅读全文
posted @ 2022-11-28 01:04 towboat 阅读(29) 评论(0) 推荐(0)
  2022年11月27日
摘要: 定义合法序列: 含有的元素各不相同 查询[l,r] 有多少合法序列 处理出stt[i] 表示以i结尾的合法序列的起点 stt[i] =stt[i-1],last[ a[i] ]+1 stt [ ]单调增,可以找到一个点x 满足stt[i]<L (I<x) ,stt[j]>=L(j>x) 二分查找即可 阅读全文
posted @ 2022-11-27 22:24 towboat 阅读(79) 评论(0) 推荐(0)
摘要: 01序列 操作 1. [l,r] 翻转 2.求位置 x 的值 维护区间的反转次数即可 区间修改 采用差分,求前缀和得到单点的值 #include <bits/stdc++.h> using namespace std ; const int N=5e5+2; int c[N],a[N],n; int 阅读全文
posted @ 2022-11-27 10:48 towboat 阅读(30) 评论(0) 推荐(0)
摘要: 在区间上种树 1. 区间 [l,r] 全部设为一种树木(每次都种新的品种) 2. 问 [l,r] 内有多少种树木 且操作不会出现覆盖的情况 把区间当作括号 () [ ] , 询问时答案为 r 左边 ( 的个数 - l左边 ) 的个数 ,求前缀和,以及更新 #include <iostream> #i 阅读全文
posted @ 2022-11-27 10:15 towboat 阅读(24) 评论(0) 推荐(0)
摘要: 给定 n 个点,定义每个点的等级是在该点左下方(含正左、正下)的点的数目,(输入按照y值递增给出) 统计每个等级有多少个点 输入按照y值递增给出,y坐标是没有用的(脑补 直接求前缀和,然后更新 注意x,y坐标从0开始,所以处理一下 +1 #include <iostream> #include <c 阅读全文
posted @ 2022-11-27 09:43 towboat 阅读(61) 评论(0) 推荐(0)
  2022年11月26日
摘要: 给一个图,删除一个点,问最多得到多少个块 当low[y]>dfn[x] ,发现一个割点时,删去这个点会出现新的块 ans =原来的块的个数+ 删点产生的块 #include <bits/stdc++.h> using namespace std ; const int N=1e5+1,M=5*N; 阅读全文
posted @ 2022-11-26 20:26 towboat 阅读(93) 评论(0) 推荐(0)
摘要: 找割点,且去掉这个点后 S,T 两个点在2个块中 除了dfn[x]<=low[y] , 还有 dfn[y]<=dfn[T ] #include <bits/stdc++.h> using namespace std ; const int N=2*1e5+1,M=5*1e5+1; int nxt[M 阅读全文
posted @ 2022-11-26 18:15 towboat 阅读(100) 评论(0) 推荐(0)
摘要: 给一张图加边成为双连通分量( 任意两点之间都有两条不重叠的道路) 缩点得到树,ans= (leaf_num+1)/2 一条无向边只走一次 (flag==0) #include <bits/stdc++.h> using namespace std ; const int N=6000,M=7*1e4 阅读全文
posted @ 2022-11-26 17:44 towboat 阅读(137) 评论(0) 推荐(0)
摘要: 给一个无向图,选择一些点,使得任意去掉一个点后,任一点都可以连接到至少一个选择的点 缩点后,每个块: 1. 割点数量为0, 要建立2个站点, 方案+= len(len-1) 2. 数量为1,建立1个站点 方案+=len-1 #include <bits/stdc++.h> using namespa 阅读全文
posted @ 2022-11-26 12:05 towboat 阅读(99) 评论(0) 推荐(0)
上一页 1 ··· 35 36 37 38 39 40 41 42 43 ··· 54 下一页