随笔 - 530  文章 - 0  评论 - 3  阅读 - 10098 
11 2022 档案
acwing131. 直方图中最大的矩形
摘要:#include "bits/stdc++.h" using namespace std; const int N=1e5+3; #define int long long int n,a[N]; int hh,stk[N],w[N]; void sov(){ hh=0; memset(a,0,si 阅读全文
posted @ 2022-11-30 23:58 towboat 阅读(22) 评论(0) 推荐(0) 编辑
AcWing 130. 火车进出栈问题
摘要:dp (n^2) #include "bits/stdc++.h" using namespace std; int n,f[35][35]; int dp(int i,int j){ if(f[i][j]!=-1) return f[i][j]; f[i][j]=0; if(i==0) retur 阅读全文
posted @ 2022-11-30 22:27 towboat 阅读(24) 评论(0) 推荐(0) 编辑
acw 120. 防线
摘要:给一些区间【l , r】 , 区间i 内间隔 d[i] 有一个点(可能会重复),保证最后只有一个位置的点数为奇数,其他位置的点数为偶数 找出这个点 二分查找 二分点的位置,注意题目中唯一的奇数点 求区间和,判断奇偶性,缩小范围 #include "bits/stdc++.h" using names 阅读全文
posted @ 2022-11-30 16:50 towboat 阅读(12) 评论(0) 推荐(0) 编辑
P1080 [NOIP2012 提高组] 国王游戏
摘要:#include <iostream> #include <algorithm> using namespace std; const int N=1100; struct T{ int x,y; } a[N]; int n; string c[N][2]; int cmp(T &a,T &b){ 阅读全文
posted @ 2022-11-30 14:21 towboat 阅读(120) 评论(0) 推荐(0) 编辑
acwing 112雷达设备
摘要:给n个区间,设置最少的点,每个区间都有至少一个点 区间按照右端点排序,每次贪心取区间右端点 #include <bits/stdc++.h> using namespace std; const int N=5e4+3; struct T{ double l,r; bool operator<(co 阅读全文
posted @ 2022-11-29 22:05 towboat 阅读(26) 评论(0) 推荐(0) 编辑
AcWing 111. 畜栏预定
摘要:有 n头牛在畜栏中吃草。 每个畜栏在同一时间段只能提供给一头牛吃草,所以可能会需要多个畜栏。 给定 n头牛和每头牛开始吃草的时间 A 以及结束吃草的时间 当两头牛的吃草区间存在交集时(包括端点),这两头牛不能被安排在同一个畜栏吃草。 求需要的最小畜栏数目和每头牛对应的畜栏方案。 #include < 阅读全文
posted @ 2022-11-29 18:42 towboat 阅读(20) 评论(0) 推荐(0) 编辑
acwing 110. 防晒
摘要:贪心:按照 a[i] .y 递减排序, 对每个牛取 所有物品的值 最大的 #include <bits/stdc++.h> using namespace std; const int N=2504; struct T{ int x,y; }a[N]; int n,m,cnt[N],val[N]; 阅读全文
posted @ 2022-11-29 16:51 towboat 阅读(9) 评论(0) 推荐(0) 编辑
P1613 跑路 (倍增
摘要:p[i][j][k] 表示 i, j 之间 是否存在 2^k 长度的路径 p[i][j][k] = p[i][mid] && p[mid][j] ,初始化 p[i][j][0] = 0/1 #include <bits/stdc++.h> using namespace std ; const in 阅读全文
posted @ 2022-11-29 15:32 towboat 阅读(13) 评论(0) 推荐(0) 编辑
acwing 103. 电影
摘要:莫斯科正在举办一个大型国际会议,有n个来自不同国家的科学家参会。 每个科学家都只懂得一种语言。 为了方便起见,我们把世界上的所有语言用 1到 1e9 间的整数编号。 电影院里一共有m部电影正在上映,每部电影的语音和字幕都采用不同的语言。 对于观影的科学家来说,如果能听懂电影的语音,他就会很开心;如果 阅读全文
posted @ 2022-11-29 13:23 towboat 阅读(33) 评论(0) 推荐(0) 编辑
acwing113. 特殊排序
摘要:记录交互题这个东西 class Solution { public: vector<int> specialSort(int N) { vector<int> res; res.push_back(1); for(int i=2;i <= N;i++){ int l=0,r=res.size()-1 阅读全文
posted @ 2022-11-29 11:27 towboat 阅读(12) 评论(0) 推荐(0) 编辑
acw 102. 最佳牛围栏
摘要:求一个序列中平均值最大的子序列(长度为m) 二分这个平均值,检验答案:每个数- average , 看能否找到长度为m的序列 #include <iostream> #include <algorithm> #include <map> using namespace std; const int 阅读全文
posted @ 2022-11-29 10:50 towboat 阅读(6) 评论(0) 推荐(0) 编辑
acwing101. 最高的牛
摘要:有 n头牛站成一行,每头牛的身高都为整数。 当且仅当两头牛中间的牛身高都比它们矮时,两头牛方可看到对方。 我们只知道其中最高的牛是第 pos 头,它的身高是H , 剩余牛的身高未知。 知道这群牛之中存在着 t 对关系,每对关系都指明了某两头牛B 可以相互看见。 求每头牛的身高的最大可能值是多少。 # 阅读全文
posted @ 2022-11-29 10:17 towboat 阅读(15) 评论(0) 推荐(0) 编辑
Acwing100 增减序列
摘要:给定一个长度为 n的数列 每次可以选择一个区间 使每个数都加一或者都减一。 求至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最少次数的前提下,最终得到的数列可能有多少种。 求差分数组,操作变为 df[i]++ ,df[j]-- 或者 df[i]-- ,df[j]++ 正负数贪心的对消,剩 阅读全文
posted @ 2022-11-29 09:23 towboat 阅读(15) 评论(0) 推荐(0) 编辑
二维前缀和 P2280 激光炸弹
摘要:#include <iostream> #include <algorithm> using namespace std; int s[5005][5005],n,r; void sov(){ int i,j,ans=0; int x,y,z; cin>>n>>r; r=min(r,5001); f 阅读全文
posted @ 2022-11-29 08:53 towboat 阅读(19) 评论(0) 推荐(0) 编辑
#10131. 暗的连锁 (树上差分
摘要:关于树上差分详细解释 https://www.cnblogs.com/fusiwei/p/11804595.html 树上差分常用于树上路径信息的统计, 比如我们对路径(x,y) 进行修改(比如每条边权值+1),要查询某条边的权值, 维护时: v(x)++, v(y)++, v[lca(x,y)] 阅读全文
posted @ 2022-11-28 13:56 towboat 阅读(25) 评论(0) 推荐(0) 编辑
lca 板子
摘要:这题#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 阅读(19) 评论(0) 推荐(0) 编辑
P1311 [NOIP2011 提高组] 选择客栈
摘要:一个数组,每个元素属性:颜色和代价, 选择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 阅读(17) 评论(0) 推荐(0) 编辑
#10121. 「一本通 4.2 例 3」与众不同
摘要:定义合法序列: 含有的元素各不相同 查询[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 阅读(68) 评论(0) 推荐(0) 编辑
#10117. 「一本通 4.1 练习 2」简单题
摘要: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 阅读(25) 评论(0) 推荐(0) 编辑
#10115. 「一本通 4.1 例 3」校门外的树
摘要:在区间上种树 1. 区间 [l,r] 全部设为一种树木(每次都种新的品种) 2. 问 [l,r] 内有多少种树木 且操作不会出现覆盖的情况 把区间当作括号 () [ ] , 询问时答案为 r 左边 ( 的个数 - l左边 ) 的个数 ,求前缀和,以及更新 #include <iostream> #i 阅读全文
posted @ 2022-11-27 10:15 towboat 阅读(20) 评论(0) 推荐(0) 编辑
#10114. 「一本通 4.1 例 2」数星星 Stars
摘要:给定 n 个点,定义每个点的等级是在该点左下方(含正左、正下)的点的数目,(输入按照y值递增给出) 统计每个等级有多少个点 输入按照y值递增给出,y坐标是没有用的(脑补 直接求前缀和,然后更新 注意x,y坐标从0开始,所以处理一下 +1 #include <iostream> #include <c 阅读全文
posted @ 2022-11-27 09:43 towboat 阅读(54) 评论(0) 推荐(0) 编辑
一本通1525:电力
摘要:给一个图,删除一个点,问最多得到多少个块 当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 阅读(68) 评论(0) 推荐(0) 编辑
1523:嗅探器
摘要:找割点,且去掉这个点后 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 阅读(94) 评论(0) 推荐(0) 编辑
1520:【 例 1】分离的路径
摘要:给一张图加边成为双连通分量( 任意两点之间都有两条不重叠的道路) 缩点得到树,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 阅读(102) 评论(0) 推荐(0) 编辑
一本通 1521: 矿场搭建
摘要:给一个无向图,选择一些点,使得任意去掉一个点后,任一点都可以连接到至少一个选择的点 缩点后,每个块: 1. 割点数量为0, 要建立2个站点, 方案+= len(len-1) 2. 数量为1,建立1个站点 方案+=len-1 #include <bits/stdc++.h> using namespa 阅读全文
posted @ 2022-11-26 12:05 towboat 阅读(77) 评论(0) 推荐(0) 编辑
割点/边 板子
摘要:一些直白的理解,和标准定义有差别,但也足够了 点双连通:一个图任意去掉一个点后仍然联通( 或者说任意两点件都有两条路径(无任何重叠的边) ) ; 边双连通同理 割点:去掉某个点后,图不连通 割边同理 求割点 ( low[y]>=dfn[x] ) #include <bits/stdc++.h> us 阅读全文
posted @ 2022-11-26 11:57 towboat 阅读(27) 评论(0) 推荐(0) 编辑
P3627 [APIO2009] 抢掠计划
摘要:从起点S到终点T,求一条路线获得最多的收益( 每个点收益a[i] ) , 可以重复通过路和点 裸题 缩点+最长路 #include <bits/stdc++.h> using namespace std ; const int N=5e5+2; int n,m,pool,a[N]; int low[ 阅读全文
posted @ 2022-11-26 01:12 towboat 阅读(25) 评论(0) 推荐(0) 编辑
P3387 缩点
摘要:缩点求DAG最长路 tarjan缩点:给一个强连通分量内的点打标记,缩为新的点,建立新的图( DAG ) #include <bits/stdc++.h> using namespace std ; const int N=1e4+2; int n,m,a[N]; int pool,low[N],d 阅读全文
posted @ 2022-11-25 23:33 towboat 阅读(19) 评论(0) 推荐(0) 编辑
P2341 [HAOI2006] 受欢迎的牛 G
摘要:每头奶牛都梦想成为牛棚里的明星。被所有奶牛喜欢的奶牛就是一头明星奶牛。 每头奶牛总是喜欢自己的。奶牛之间的“喜欢”是可以传递的 问有多少头奶牛可以当明星 缩点为DAG, 求出度为0的点 #include <bits/stdc++.h> using namespace std ; const int 阅读全文
posted @ 2022-11-25 23:22 towboat 阅读(17) 评论(0) 推荐(0) 编辑
#10078. 「一本通 3.2 练习 4」新年好
摘要:从1出发访问 5个给定点,最小化路程 枚举5个点的排列,然后单源最短路 #include <iostream> #include <cstring> #include <queue> using namespace std ; struct T{ int y,z; T(int y0,int z0){ 阅读全文
posted @ 2022-11-12 12:43 towboat 阅读(40) 评论(0) 推荐(0) 编辑
P2865 [USACO06NOV]Roadblocks G
摘要:求1到n的 次短路 #include <iostream> #include <cstring> #include <queue> using namespace std ; const int N=1e6+2,M=5e6+2; const int inf=0x3f3f3f3f; int all,n 阅读全文
posted @ 2022-11-12 10:56 towboat 阅读(14) 评论(0) 推荐(0) 编辑
#10077. 「一本通 3.2 练习 3」最短路计数
摘要:问1~n的最短路有几个 #include <iostream> #include <cstring> #include <queue> using namespace std ; const int N=1e6+2,M=2e6+2; const int inf=0x3f3f3f3f,mod=1000 阅读全文
posted @ 2022-11-12 10:21 towboat 阅读(36) 评论(0) 推荐(0) 编辑
#10075. 「一本通 3.2 练习 1」农场派对
摘要:图上每个点有一头牛,现在牛群聚集到点X上聚会,然后又回到各自的点,而且牛只走最短路径 问所有最短路中最长的一条( 路径包含来回) 正反跑一次 spfa(X) , spfa(i) , ans=max{ d0[i]+ dis[X] } #include <iostream> #include <cstr 阅读全文
posted @ 2022-11-12 09:54 towboat 阅读(46) 评论(0) 推荐(0) 编辑
#10074. 「一本通 3.2 例 3」架设电话线
摘要:在加权无向图上求出一条从 1 号结点到 N 号结点的路径,使路径上第 K + 1 大的边权尽量小 二分答案md, 判断1~n是否存在一条路径,花费不超过md 把w<=md 的边看作0,否则看作1,求1到n 的最短路,看 dis[n]<=md #include <bits/stdc++.h> usin 阅读全文
posted @ 2022-11-12 09:15 towboat 阅读(90) 评论(0) 推荐(0) 编辑
loj #10069. 「一本通 3.1 练习 4」Tree
摘要:给你一个无向带权连通图,每条边是黑色或白色。求一棵最小权的恰好有 K 条白色边的生成树。题目保证有解 二分一个增加量md, 给每个白边权值加md , 跑一下kruskal , 看贪心取了多少白边,和K比较检验答案 #include <bits/stdc++.h> using namespace st 阅读全文
posted @ 2022-11-11 17:34 towboat 阅读(42) 评论(0) 推荐(0) 编辑
#10067. 「一本通 3.1 练习 2」构造完全图
摘要:给一颗最小生成树,构造一个权和最小的完全图 无疑是贪心,模仿kruskal 做法 考虑一条树边,它连接了两个块,在块之间的连线中是最小的,构造完全图后,考虑所有这些连线,权值应该为 w+1 #include <bits/stdc++.h> using namespace std ; const in 阅读全文
posted @ 2022-11-11 15:33 towboat 阅读(41) 评论(0) 推荐(0) 编辑
loj#10064 黑暗城堡
摘要:求图中的最短路径生成树有多少个? ( 该生成树中的任意点i ,i到1的距离和 原图中的i到1的最短距离相等 跑所有点到1的单源最短路,d[i] if d[i]==d[y]+z ,那么z这个路径是该生成树的一条边 然后就是多步计数,乘法原理即可 #include <iostream> #include 阅读全文
posted @ 2022-11-11 13:34 towboat 阅读(16) 评论(0) 推荐(0) 编辑
最短路板子
摘要:floyed O(n^3) f[i][j] = min(f[i][j] ,f[i][k] + f[k][j] ) memset(f,inf,sizeof(f)); for(i=1;i<=m;i++) cin>>x>>y>>z,f[x][y]=f[y][x]=z; for(k=1;k<=n;k++) 阅读全文
posted @ 2022-11-11 12:53 towboat 阅读(18) 评论(0) 推荐(0) 编辑
P2134 百日旅行
摘要:剩下 n天的假期,小明可以安排旅行的计划。 如果连续 xx 天旅游,小明需要花旅行费用 p*x*x 元;如果连续 x 天不旅游,小明吃饭,花费为 q*x 计算出他至少需要花费多少元。 需要斜率优化,这里先写下暴力,后面学了再补 #include<iostream> #include <algorit 阅读全文
posted @ 2022-11-10 21:15 towboat 阅读(14) 评论(0) 推荐(0) 编辑
kmp板子
摘要:主串a,模式串b,求b在a中出现的位置 #include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<cmath> using namespace std; const int N = 1e6+3 阅读全文
posted @ 2022-11-07 21:57 towboat 阅读(22) 评论(0) 推荐(0) 编辑
loj#103 字符串hash板子
摘要:在串A中找B,输出B出现的次数 rt 这是字符串hash板子 #include<iostream> #include <algorithm> #include <cstring> using namespace std; #define int long long const int N=1e6+5 阅读全文
posted @ 2022-11-06 15:42 towboat 阅读(30) 评论(0) 推荐(0) 编辑
acwing 529 宝藏
摘要:给一个图,选定一个点为起点,求一个生成树,代价和最小(跑一条长度为z的边的代价:z*d ,d是起点的深度) n<=12 对于一个状态S, 由S2,S-S2组成,其中S2的点深度为d +1 f[u][d][s] = f[i][d+1][s2] + f[u][d][s-s2] + a[u][i] * d 阅读全文
posted @ 2022-11-05 23:19 towboat 阅读(20) 评论(0) 推荐(0) 编辑
一本通 1593
摘要:农场主 John 新买了一块长方形的新牧场,m*n (1≤M≤12;1≤N≤12),John 打算在牧场上的某几格里种上美味的草 。 遗憾的是,有些土地相当贫瘠,不能用来种草。并且,John 不会选择两块相邻的土地,也就是说,没有哪两块草地有公共边。 如果不考虑草地的总块数,那么,一共有多少种种植方 阅读全文
posted @ 2022-11-05 19:01 towboat 阅读(17) 评论(0) 推荐(0) 编辑
数位dp例题
摘要:https://zhuanlan.zhihu.com/p/50791875 1. 某人命名了一种不降数,这种数字必须满足从左到右各位数字成小于等于的关系,如12245 问区间【l,r】内有多少个不降数。 #include <iostream> #include <vector> #include < 阅读全文
posted @ 2022-11-05 15:14 towboat 阅读(18) 评论(0) 推荐(0) 编辑
luogu 5022
摘要:任意选定一个城市作为起点,然后从起点开始,每次可 以选择一条与当前城市相连的道路,走向一个没有去过的城市,或者沿着第一次访问该 城市时经过的道路后退到上一个城市。当回到起点时,可以选择结束这次旅行或 继续旅行。注意每个城市都被访问到。(m<=n) 每到达一个新的城市(包括起点)时,将 它的编号记录下 阅读全文
posted @ 2022-11-04 17:00 towboat 阅读(17) 评论(0) 推荐(0) 编辑
luogu 2607
摘要:题意和<没有上司的舞会> 一样,多了点东西:每颗树(总体为森林)上多一个环,问最大权值和 基环树,考虑把这种图去掉一条边,就变成树,然后dp 然后考虑这条去掉的边的影响: 两条边的端点x,y,不能都选 那么做法就是 取 f[x][0], f[y][0] 分别进行dp #include <iostre 阅读全文
posted @ 2022-11-04 11:41 towboat 阅读(15) 评论(0) 推荐(0) 编辑
一本通 1579
摘要:一棵有点权的树,选择一些点, 使得每个点至少满足下列中的一个: 1.已被选择 2.父亲被选择 3.子节点至少有一个被选择 求点权和最小值 f[x][0]=SUM{ min(f[y][1],f[y][2] } f[x][2] = SUM { min(f[y][0],f[y][1],f[y][2]) } 阅读全文
posted @ 2022-11-03 21:27 towboat 阅读(14) 评论(0) 推荐(0) 编辑
acwing298 围栏
摘要:有 NN 块木板从左到右排成一行,有 MM 个工匠对这些木板进行粉刷,每块木板至多被粉刷一次。 第 ii 个木匠要么不粉刷,要么粉刷包含木板 Si 的,长度不超过 Li 的连续的一段木板,每粉刷一块可以得到 Pi 的报酬。 如何安排能使工匠们获得的总报酬最多 #include <iostream> 阅读全文
posted @ 2022-11-02 18:42 towboat 阅读(10) 评论(0) 推荐(0) 编辑
1602:烽火传递
摘要:序列A,选择一些a[i] , 任意一个长度为m的区间内至少有一个所选的 问 sum{ a[i] } 的最小值 #include <iostream> #include <cstring> using namespace std; const int N=2e5+5; int a[N],n,m,f[N 阅读全文
posted @ 2022-11-02 08:52 towboat 阅读(25) 评论(0) 推荐(0) 编辑
一本通1603 绿色通道
摘要:有 n 道题目要抄,耗时a[i] 。用不超过 t分钟抄这个,每道题要么不写,要么抄完,。 下标连续的一些空题称为一个空题段,它的长度就是所包含的题目数。 现在,小 Y 想知道他在这 t 分钟内写哪些题,才能够尽量减轻马老师的怒火( 连续空题段的最大值 ) #include <iostream> #i 阅读全文
posted @ 2022-11-02 00:13 towboat 阅读(77) 评论(0) 推荐(0) 编辑
一本通1598:【 例 2】最大连续和
摘要:长度为n 的整数序列 要求从中找出一段连续的长度不超过m的子序列,使得这个序列的和最大 #include <iostream> using namespace std; const int N=2e5+3; #define int long long int a[N],s[N],f[N],n,m; 阅读全文
posted @ 2022-11-01 15:10 towboat 阅读(209) 评论(0) 推荐(0) 编辑
一本通1599:修剪草坪
摘要:FJ 有 n 只奶牛,奶牛 i的效率为 a[i]。 选一些奶牛放到n个格子上且 连续的奶牛不能超过K只。 计算 FJ 可以得到的最大效率 #include <iostream> using namespace std; const int N=2e5+3; #define int long long 阅读全文
posted @ 2022-11-01 15:09 towboat 阅读(52) 评论(0) 推荐(0) 编辑
P2569 [SCOI2010]股票交易
摘要:通过一段时间的观察,预测到了未来 n天内某只股票的走势,第 i 天的股票买入价为每股 a[i]​,第 ii 天的股票卖出价为每股 b[i] (a[i]>=b[i]), 规定第 ii 天的一次买入至多只能购买 as[i]​ 股,一次卖出至多只能卖出 bs[i] 股。 规定在两次交易(某一天的买入或者卖 阅读全文
posted @ 2022-11-01 12:57 towboat 阅读(24) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示