随笔 - 530  文章 - 0  评论 - 3  阅读 - 10098 
03 2023 档案
CF1187E
摘要:换根dp #include<iostream> #include<algorithm> #include<cstring> #include<queue> #define IOS std::ios::sync_with_stdio(0) using namespace std; #define in 阅读全文
posted @ 2023-03-31 21:05 towboat 阅读(9) 评论(0) 推荐(0) 编辑
Bottles CF730J
摘要:有 n 瓶水,第 ii 瓶水的水量为 ai,容量为 bi​。 将 1 单位水从一个瓶子转移到另一个瓶子所消耗时间为 1秒,且可以进行无限次转移。 求储存所有水所需最小瓶子数 k 以及该情况下所用最小时间 t。 第一问直接贪心 第二问 dp , 问题重要的的一个转化: 求不变的水瓶的最大值即可 f[i 阅读全文
posted @ 2023-03-31 15:26 towboat 阅读(39) 评论(0) 推荐(0) 编辑
Cashback CF940E
摘要:给你一个长度为n的数列a和整数c 你需要把它任意分段 每一段假设长度为k,就去掉前[ k/c] ( 向下取整)小的数 最小化剩下的数的和 #include<iostream> #include<algorithm> #include<cstring> #include<queue> #define 阅读全文
posted @ 2023-03-30 23:29 towboat 阅读(21) 评论(0) 推荐(0) 编辑
P1345 奶牛的电信
摘要:题目略,就是求最小割 (容量和最小的边集,使得图不联通,常用S-T割) 那么 最小割=最大流 这里要求点权和最小,可以通过拆点转化为边权 #include<iostream> #include<algorithm> #include<cstring> #include<queue> #define 阅读全文
posted @ 2023-03-30 22:13 towboat 阅读(13) 评论(0) 推荐(0) 编辑
P2774 方格取数问题
摘要:有一个 m 行 n列的方格图,每个方格中都有一个正整数。 现要从方格中取数,使任意两个数所在方格没有公共边,且取出的数的总和最大,请求出最大的和。 黑白染色, 相邻格子连边,S->黑点,白点->T, 形成一个二分图, 现在要删去一些边( 边权和最小) ,使得S-T不连通,即最小割 SUM - 最小割 阅读全文
posted @ 2023-03-30 21:14 towboat 阅读(12) 评论(0) 推荐(0) 编辑
P5337 [TJOI2019]甲苯先生的字符串
摘要:同CF222E #include<iostream> #include<algorithm> #include<cstring> #include<vector> #define IOS std::ios::sync_with_stdio(0) using namespace std; const 阅读全文
posted @ 2023-03-29 22:20 towboat 阅读(21) 评论(0) 推荐(0) 编辑
P4015 运输问题
摘要:W 公司有 mm 个仓库和 nn 个零售商店。第 ii 个仓库有 aiai​ 个单位的货物;第 jj 个零售商店需要 bjbj​ 个单位的货物。 货物供需平衡,sum{ai} =sum{bi} 从第 i 个仓库运送每单位货物到第 j 个零售商店的费用为 cij。 试设计一个将仓库中所有货物运送到零售 阅读全文
posted @ 2023-03-29 12:26 towboat 阅读(11) 评论(0) 推荐(0) 编辑
P3033 [USACO11NOV]Cow Steeplechase G
摘要:给出 N 条平行于坐标轴的线段,要你选出尽量多的线段使得这些线段两两没有交点(顶点也算)。 横的与横的,竖的与竖的线段之间保证没有交点,输出最多能选出多少条线段。 #include <iostream> #include <algorithm> #include <cstring> #include 阅读全文
posted @ 2023-03-28 22:58 towboat 阅读(11) 评论(0) 推荐(0) 编辑
nowcoder contest/911/F
摘要:https://ac.nowcoder.com/acm/contest/911/F 值域上维护右括号的个数,遇到左括号就查询前面有几个右括号 #include <iostream> #include <algorithm> #include <queue> using namespace std ; 阅读全文
posted @ 2023-03-28 21:19 towboat 阅读(12) 评论(0) 推荐(0) 编辑
Counting Arrays CF893E
摘要:给出x和y,求一个长度为y的序列,其乘积为x,允许有负数,求这种序列的个数, x分解质因数,考虑每个 p^e, 把e分为y 份( 可以为0),个数为 C( e+y-1,e) 这题需要乘法逆元 来进行乘法 比如想组合数 n!/ (n-m)! * m! , 转化为 n!* fnv(n-m)! *fnv( 阅读全文
posted @ 2023-03-28 14:41 towboat 阅读(10) 评论(0) 推荐(0) 编辑
Gourmet choice CF1131D
摘要:给你对于任意一个 ai,bj 的大小关系的判断,让你构造 a,b 序列满足条件。无解输出No 拓扑排序+并查集 #include <iostream> #include <cstring> #include <queue> using namespace std ; const int N=4000 阅读全文
posted @ 2023-03-28 12:24 towboat 阅读(11) 评论(0) 推荐(0) 编辑
Gourmet choice 1131D
摘要:有 n 组序列,第 i 组有 ki个元素,每次可以随机选一组拿掉其目前最左边或最右边的元素, 问 取了m 次后,的最大价值和。 #include <iostream> #include <cstring> #include <vector> using namespace std ; const i 阅读全文
posted @ 2023-03-28 10:53 towboat 阅读(11) 评论(0) 推荐(0) 编辑
Mahmoud and a Dictionary CF766D
摘要:给一些单词,它们可能是同义或者反义,给出一些关系定义,从前面的定义开始建立关系,如果有的关系定义和之前的冲突输出NO,否则输出YES。 然后查询q次单词x和单词y的关系。 扩展域并查集 1~n 存朋友,n+1~2n 存敌人 #include <iostream> #include <map> usi 阅读全文
posted @ 2023-03-27 21:32 towboat 阅读(9) 评论(0) 推荐(0) 编辑
Decoding Genome CF222E
摘要:需要构造一个符合如下条件的字符串: 长度为 n,并且只包含字符 1∼m (n≤1e15,m≤52) 满足 K 个要求,第 i 个要求为 xi 后面不能是 yi 现在问你,有多少种字符串符合条件。 F[ i ][ j] += F[i -1] [lk ]* a[k][j] 用矩阵快速幂优化 Fn =F[ 阅读全文
posted @ 2023-03-27 16:41 towboat 阅读(11) 评论(0) 推荐(0) 编辑
Wizards and Huge Prize CF167B
摘要:最开始你有 K 的容积,有 n 轮比赛, 每轮比赛胜率为 pi,比赛分为两种(具体种类有输入给出,若 ai≥1 则为第一种,若 ai=−1ai​=−1 则为第二种), 第一种的奖品是增加 A[i]​ 的容积,第二种奖品是获得一个物品,体积为 1, n 轮比赛结束后所有物品都能被装下的方案才是合法方案 阅读全文
posted @ 2023-03-26 21:54 towboat 阅读(13) 评论(0) 推荐(0) 编辑
Pencils and Boxes CF985E
摘要:给出nn个整数a1,a2,...,an,现在需要对其进行分组,使其满足以下条件: 每个数都必须恰好分入一组中 每一组中必须至少包含K个数 在每一组中,整数的权值之差的绝对值<=D。 请判断是否存在满足条件的分组方案,若有请输出"YES",否则输出"NO"。 直接的贪心是错误的,但要魔改一下,双指针+ 阅读全文
posted @ 2023-03-26 17:20 towboat 阅读(11) 评论(0) 推荐(0) 编辑
P1251 餐巾计划问题
摘要:一个餐厅在相继的 N 天里,每天需用餐巾。假设第 i天需要 A[i]块餐巾( i=1,2,...,N)。 餐厅可以购买新的餐巾,每块餐巾的费用为 p 分; 或者把旧餐巾送到快洗部,洗一块需 m 天,其费用为 f 分; 或者送到慢洗部,洗一块需 nn 天(n>mn>m),其费用为 ss 分(s<fs< 阅读全文
posted @ 2023-03-26 15:11 towboat 阅读(11) 评论(0) 推荐(0) 编辑
Magic Potion Gym - 101981I
摘要:有 n 个人,m 个怪兽,k 瓶药水,现在依次给出每个人可以杀的怪物的数量 t 以及怪物的编号, 每个人只能杀他能杀的一个怪物,但可以领取一瓶药水复活再杀一个(只能领取一次),问最多能杀死的怪物 最大流 建图: S--> 人(1) , S->S+1(K) , S+1 --> 人 (1) , 人--》 阅读全文
posted @ 2023-03-26 13:17 towboat 阅读(25) 评论(0) 推荐(0) 编辑
P4452 [国家集训队]航班安排
摘要:神犇航空有K架飞机,为了简化问题,我们认为每架飞机都是相同的。神犇航空的世界中有N个机场,以0⋯N-1编号, 其中0号为基地机场,每天0时刻起飞机才可以从该机场起飞,并不晚于TT时刻回到该机场。 一天,神犇航空接到了MM个包机请求,每个请求为在ss时刻从aa机场起飞,在恰好tt时刻到达bb机场,可以 阅读全文
posted @ 2023-03-26 00:58 towboat 阅读(35) 评论(0) 推荐(0) 编辑
Towers CF229D
摘要:一个序列A, 每次可以 相邻的数相加为一个数字,求最少次数使得序列非降 f[i ]= min{ f [ j ] + i-j-1 } ,s[i]-s[j] >= s[j] -s[mn[j-1] ] 维护下前缀最小值mn[ i] #include <iostream> #include <queue> 阅读全文
posted @ 2023-03-25 22:41 towboat 阅读(15) 评论(0) 推荐(0) 编辑
P4016 负载平衡问题
摘要:有 n 个环形排列的仓库,每个仓库存储的货物数量不等。 请用最少搬运量使 n 个仓库的库存数量相同。搬运货物时,只能在相邻的仓库之间搬运。 每个点拆为in 和 out #include <iostream> #include <queue> #include <cstring> using name 阅读全文
posted @ 2023-03-25 15:31 towboat 阅读(13) 评论(0) 推荐(0) 编辑
P4014 分配问题
摘要:有 n 件工作要分配给 n 个人做。第 i个人做第 j件工作产生的效益为 c 试设计一个将 n 件工作分配给 n 个人做的分配方案,使产生的总效益最大。 输入 5 2 2 2 1 2 2 3 1 2 4 2 0 1 1 1 2 3 4 3 3 3 2 1 2 1 二分图模型 直接跑费用流 ,add_ 阅读全文
posted @ 2023-03-25 12:42 towboat 阅读(12) 评论(0) 推荐(0) 编辑
最小费用最大流( spfa )
摘要:const int N =5005, M=1e5+100; #define inf 1e9 int all=1,hd[N],go[M],w[M],nxt[M],cost[M]; int S,T,n,m; int pre[N],mn[N],dis[N],vis[N],ans=0; void add_( 阅读全文
posted @ 2023-03-24 22:19 towboat 阅读(7) 评论(0) 推荐(0) 编辑
Two out of Three CF82D
摘要:给定一个序列,每次从前三个中选两个值并取他们的最大值累加,不足 3 个就取剩下的 1 个或 2 个的最大值累加, 求和的最小值以及取法。 每一次会取两个数,也就是会剩下一个数,所以我们可以把剩下的那个数来设状态 F[ i] [j ] 前i个数,剩余的数为j #include <iostream> # 阅读全文
posted @ 2023-03-24 20:35 towboat 阅读(17) 评论(0) 推荐(0) 编辑
Pawn CF41D
摘要:给定一个棋盘,你从最下面一行任选一个位置开始移动,每次只能向右上方或者左上方移动,求满足经过路径的权值和是 k+1k+1 (给定常数)的倍数的情况下最大权值和是多少。 #include <iostream> #include <cmath> #include <cstring> using name 阅读全文
posted @ 2023-03-23 21:55 towboat 阅读(12) 评论(0) 推荐(0) 编辑
Yaroslav and Two Strings CF296B
摘要:如果两个只包含数字且长度为 nn 的字符串 ss 和 ww 存在两个数字 1≤i,j≤n 使得 si<wi,sj>wj 则称 ss 和 ww 是不可比的。现在给定两个包含数字和问号且长度为 nn 的字符串, 问有多少种方案使得将所有问号替换成0到9的数字后两个字符串是不可比的 明显的容斥原理 但注意 阅读全文
posted @ 2023-03-23 00:50 towboat 阅读(19) 评论(0) 推荐(0) 编辑
P2764 最小路径覆盖问题
摘要:求最少的路径数目覆盖DAG每个点(无点交集 #include<iostream> #include<algorithm> #include <queue> using namespace std ; const int N=500,M=5e5+5; const int inf =1e9+7; int 阅读全文
posted @ 2023-03-22 21:24 towboat 阅读(9) 评论(0) 推荐(0) 编辑
P2825 [HEOI2016/TJOI2016]游戏
摘要:给定一张 n×m 的网格地图:其中 * 代表空地,炸弹的威力可以穿透,可以在空地上放置一枚炸弹。 x 代表软石头,炸弹的威力可以穿透,不能在此放置炸弹。# 代表硬石头,炸弹的威力是不能穿透的,不能在此放置炸弹。 例如:给出 1×41×4 的网格地图 *xx*,这个地图上最多只能放置一个炸弹。给出另一 阅读全文
posted @ 2023-03-22 21:22 towboat 阅读(30) 评论(0) 推荐(0) 编辑
P1129 [ZJOI2007] 矩阵游戏
摘要:#include<iostream> #include<algorithm> #include <queue> using namespace std ; const int N=6e4,M=1e5+10; const int inf =1e9+7; int all=1,hd[N],go[M],w[ 阅读全文
posted @ 2023-03-22 01:52 towboat 阅读(12) 评论(0) 推荐(0) 编辑
P3254 圆桌问题
摘要:关于网络流解决二分图问题,输出具体方案,看一下残量图的边==0 ?就好 #include <iostream> #include<cmath> #include <queue> #include <cstring> using namespace std; const int N =1e4,M=5e 阅读全文
posted @ 2023-03-21 22:31 towboat 阅读(13) 评论(0) 推荐(0) 编辑
P2766 最长不下降子序列问题
摘要:给定正整数序列 x1…,xn 1.计算其最长不下降子序列的长度 ss。 2.如果每个元素只允许使用一次,计算从给定的序列中最多可取出多少个长度为 ss 的不下降子序列。 3.如果允许在取出的序列中多次使用 x1​ xn(其他元素仍然只允许使用一次), 则从给定序列中最多可取出多少个不同的长度为 ss 阅读全文
posted @ 2023-03-21 20:34 towboat 阅读(29) 评论(0) 推荐(0) 编辑
P2472 [SCOI2007] 蜥蜴
摘要:在一个 R 行 C列的网格地图中有一些高度不同的石柱,第 ii 行 jj 列的石柱高度为 a[i][j] 一些石柱上站着一些蜥蜴,你的任务是让尽量多的蜥蜴逃到边界外。 每行每列中相邻石柱的距离为 1,蜥蜴的跳跃距离是 D,即蜥蜴可以跳到平面距离不超过 D 的任何一个石柱上。 石柱都不稳定,每次当蜥蜴 阅读全文
posted @ 2023-03-21 01:39 towboat 阅读(14) 评论(0) 推荐(0) 编辑
P2763 试题库问题
摘要:假设一个试题库中有 n道试题。每道试题都标明了所属类别。 同一道题可能有多个类别属性。现要从题库中抽取 m道题组成试卷。并要求试卷包含指定类型的试题mi 道 任务: 求满足要求的组卷方案。 试卷和类别连线(z=1) ,S和题目连线(z=1) 类别和T连线( z=m[i] ) #include <io 阅读全文
posted @ 2023-03-20 21:11 towboat 阅读(15) 评论(0) 推荐(0) 编辑
P2515 [HAOI2010]软件安装
摘要:题目就是树上背包,但要先缩点为DAG #include <iostream> #include <cstring> #include <vector> #include <stack> using namespace std ; const int N=503,M=1003; //#define i 阅读全文
posted @ 2023-03-20 17:46 towboat 阅读(5) 评论(0) 推荐(0) 编辑
P2746 [USACO5.3]校园网Network of Schools
摘要:https://www.luogu.com.cn/problem/P2746 第二问, 就是在 入度为0(或者出度为0)那排的点之间加边 #include <bits/stdc++.h> using namespace std ; const int N=1e4+2; vector<int> g[N 阅读全文
posted @ 2023-03-19 21:35 towboat 阅读(13) 评论(0) 推荐(0) 编辑
P4343 [SHOI2015]自动刷题机
摘要:https://www.luogu.com.cn/problem/P4343 #include <iostream> using namespace std ; const int N=1e5+2; #define int long long const int inf=1e15; int a[N] 阅读全文
posted @ 2023-03-19 17:29 towboat 阅读(21) 评论(0) 推荐(0) 编辑
interval GCD
摘要:https://ac.nowcoder.com/acm/contest/1033/B 区间加,求 区间 gcd [L,R] gcd (a[x],a[x+1],.....a[y] ) = gcd (a[x], a[x+1]-a[x], a[x+2]-a[x+1] ,..... a[y]-a[y-1] 阅读全文
posted @ 2023-03-19 13:11 towboat 阅读(14) 评论(0) 推荐(0) 编辑
nowcoder 天气预报
摘要:https://ac.nowcoder.com/acm/problem/235096 双指针,就按这个形式写了 #include <iostream> #include <map> #include <cstring> #include <algorithm> using namespace std 阅读全文
posted @ 2023-03-18 22:31 towboat 阅读(12) 评论(0) 推荐(0) 编辑
P1902 刺杀大使
摘要:迷阵由 n×m 个相同的小房间组成,每个房间与相邻四个房间之间有门可通行。在第 n 行的 m 个房间里有 m个机关, 这些机关必须全部打开。而第 1 行的 mm个房间有 mm 扇向外打开的门,是迷阵的入口。 除了第 11行和第 nn 行的房间外,每个房间都被使馆的安保人员安装了激光杀伤装置,将会对进 阅读全文
posted @ 2023-03-18 11:48 towboat 阅读(27) 评论(0) 推荐(0) 编辑
P2495 [SDOI2011] 消耗战
摘要:f[x]=SUM{ min(f[y], z) } ( y是不重要的点) 建立虚树,然后dp #include <bits/stdc++.h> using namespace std ; const int N=3e6,M=N,inf=1e9; #define int long long int mn 阅读全文
posted @ 2023-03-17 22:15 towboat 阅读(15) 评论(0) 推荐(0) 编辑
c++11
摘要:https://www.cnblogs.com/zhanqing/p/17135925.html 阅读全文
posted @ 2023-03-17 19:25 towboat 阅读(6) 评论(0) 推荐(0) 编辑
P4054 [JSOI2009] 计数问题
摘要:二维树状数组板子, C[color] [x][y] #include <bits/stdc++.h> using namespace std ; const int N =403 ,M =2e5+4; #define int long long int A[N][N],c[101][N][N] ; 阅读全文
posted @ 2023-03-15 21:00 towboat 阅读(18) 评论(0) 推荐(0) 编辑
P1972 [SDOI2009] HH的项链
摘要:多次询问子序列 [L,R] 包含了多少种不同的数? 我们使用离线+树状数组,和last[j]表示上一次出现j的位置,对于第p个的数j,我们add(last[j],-1),add(p,1),因为我们按照r排序,只用管最右边的一个,所以留下最右端的就可以,对于一个询问直接树状数组求区间和; #inclu 阅读全文
posted @ 2023-03-15 17:25 towboat 阅读(15) 评论(0) 推荐(0) 编辑
P3605 [USACO17JAN]Promotion Counting P
摘要:求 某节点子树内比该节点的点权大的点的个数 值域上维护树状数组, #include <bits/stdc++.h> using namespace std ; const int N=1e5+2,M=N*2; int bin[N],len; int sum[N] ,n,ans[N],a[N]; in 阅读全文
posted @ 2023-03-15 12:55 towboat 阅读(16) 评论(0) 推荐(0) 编辑
P1966 [NOIP2013 提高组] 火柴排队
摘要:涵涵有两盒火柴,每盒装有 nn 根火柴,每根火柴都有一个高度。 现在将每盒中的火柴各自排成一列, 同一列火柴的高度互不相同, 两列火柴之间的距离定义为:∑(ai−bi)2 其中 ai表示第一列火柴中第 i个火柴的高度,bi表示第二列火柴中第 i个火柴的高度。 每列火柴中相邻两根火柴的位置都可以交换, 阅读全文
posted @ 2023-03-14 22:18 towboat 阅读(54) 评论(0) 推荐(0) 编辑
P1196 [NOI2002] 银河英雄传说
摘要:有一个30000*N(i) 的列队,2种操作 1. M i,j i行移动到j行的末尾 2.C i,j 询问i行和j行的距离(如果在同一列) #include <bits/stdc++.h> using namespace std ; const int N=3e4; int fa[N+2],L[N] 阅读全文
posted @ 2023-03-14 17:59 towboat 阅读(10) 评论(0) 推荐(0) 编辑
P1455 搭配购买
摘要:商店里有n朵云,云朵被编号为i1,2,…,n ,并且每朵云都有一个价值。但一些云朵要搭配来买, 买一朵云则与这朵云有搭配的云都要买。 Joe的钱有限,希望买的价值最大 #include <iostream> #include <queue> #include <algorithm> using na 阅读全文
posted @ 2023-03-14 12:52 towboat 阅读(11) 评论(0) 推荐(0) 编辑
P1525 [NOIP2010 提高组] 关押罪犯
摘要:我们用“怨气值”(一个正整数值)来表示某两名罪犯之间的仇恨程度, 如果两名怨气值为 cc 的罪犯被关押在同一监狱,他们俩之间会发生摩擦,并造成影响力为 cc 的冲突事件。 每年年末,警察局会将本年内监狱中的所有冲突事件按影响力从大到小排成一个列表,然后上报市长那里。 市长只会去看列表中的第一个事件的 阅读全文
posted @ 2023-03-14 11:12 towboat 阅读(20) 评论(0) 推荐(0) 编辑
P5664 [CSP-S2019] Emiya 家今天的饭
摘要:给出一个矩阵,要求每行只能选一个节点,每列选的节点不能超过所有选的节点的一半,给出每个节点的选择方案数(a[i][j] ) 不能完全不选,求总方案数 直接容斥,ALL - 存在一个列的所选个数超过一半 但是发现这种列只能存在一个(脑补 枚举这个列, 对这个列做dp : F [ i] [j ][ k 阅读全文
posted @ 2023-03-13 16:51 towboat 阅读(21) 评论(0) 推荐(0) 编辑
P4047 [JSOI2010]部落划分
摘要:地图上标注了 n 个野人居住的地点(可以看作是平面上的坐标)。 我们知道,同一个部落的野人总是生活在附近。我们把两个部落的距离,定义为部落中距离最近的那两个居住点的距离。 聪聪知道这些野人总共被分为了 K个部落。 对于任意一种部落划分的方法,都能够求出两个部落之间的距离,求一种部落划分的方法,使最近 阅读全文
posted @ 2023-03-12 17:50 towboat 阅读(24) 评论(0) 推荐(0) 编辑
P1462 通往奥格瑞玛的道路
摘要:城市之间有 mm 条双向的公路,连接着两个城市,从某个城市到另一个城市,会遭到联盟的攻击,进而损失一定的血量。 每次经过一个城市,都会被收取一定的过路费(包括起点和终点)。路上并没有收费站。 假设 1 为暴风城,n为奥格瑞玛,而他的血量最多为 b,出发时他的血量是满的。如果他的血量降低至负数,则他就 阅读全文
posted @ 2023-03-12 15:23 towboat 阅读(23) 评论(0) 推荐(0) 编辑
P2065 [TJOI2011] 卡片
摘要:桌子上有 mm 张蓝色卡片与 nn 张红色卡片,每张卡片上有一个大于 1 的整数。 现在你要从桌子上拿走一些卡片,分若干次拿。每次只能拿走一组卡片:这组卡片颜色不同,并且两张卡片上面的数字的最大公约数大于 1。 问:最多可以从桌上拿走多少组卡片。 #include <iostream> #inclu 阅读全文
posted @ 2023-03-12 10:39 towboat 阅读(11) 评论(0) 推荐(0) 编辑
Apple Catching POJ - 2385
摘要:有个人在2柯树之间来回,在1~T 的时刻i 时,其中一颗棵树会掉一个果子,规定只能掉头m 次,问最多能获得多少果子 f[ i ][ j] #include <iostream> #include <algorithm> #include <cstring> using namespace std ; 阅读全文
posted @ 2023-03-11 20:15 towboat 阅读(1) 评论(0) 推荐(0) 编辑
Polygon POJ - 1179
摘要:除了维护一个区间最大值,还要一个最小值,( 有负数) #include <iostream> #include <algorithm> #include <cstring> using namespace std ; const int N=160; #define inf 1e9 int n,a[ 阅读全文
posted @ 2023-03-11 12:09 towboat 阅读(17) 评论(0) 推荐(0) 编辑
Communication System POJ - 1018
摘要:目前有一个公司需要购进宽带设备,每种设备有多款机器供选择,每种设备都需购进一台, 现给出每台设备的带宽p与价格q,要求选择设备的最小带宽min(p)/add(q)(其中min(p)表示所有购进设备中最小的带宽,add(q)表示所有购进设备的价格之和)为最大,并求出该值。 f[i][j] j表示最小带 阅读全文
posted @ 2023-03-11 10:45 towboat 阅读(9) 评论(0) 推荐(0) 编辑
P2590 [ZJOI2008]树的统计
摘要:一棵树上有 n个节点,编号分别为 1 到 n,每个节点都有一个权值 W。 我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点 u的权值改为 t。 II. QMAX u v: 询问从点 u到点 v 的路径上的节点的最大权值。 III. QSUM u v: 询问从点 阅读全文
posted @ 2023-03-10 22:20 towboat 阅读(10) 评论(0) 推荐(0) 编辑
P1967 [NOIP2013 提高组] 货车运输
摘要:静态查询树上路径的最小边权 边权转点权: 将根节点设置 val[ rt ]=inf , 每个边权转移到向下的点的点权 然后树剖查询要改一下 树剖后用线段树查询点权最小值 #include <bits/stdc++.h> using namespace std ; const int N=5e5+4, 阅读全文
posted @ 2023-03-10 20:57 towboat 阅读(11) 评论(0) 推荐(0) 编辑
重链剖分板子
摘要:1 x y z,表示将树从 xx 到 yy 结点最短路径上所有节点的值都加上 zz。 2 x y,表示求树从 xx 到 yy 结点最短路径上所有节点的值之和。 3 x z,表示将以 xx 为根节点的子树内所有节点值都加上 zz。 4 x 表示求以 xx 为根节点的子树内所有节点值之和 #includ 阅读全文
posted @ 2023-03-10 20:48 towboat 阅读(10) 评论(0) 推荐(0) 编辑
最小生成树板子
摘要:#include <bits/stdc++.h> using namespace std ; const int N=5003,M=2e5+2; int f[N],n,m; struct E{ int x,y,z; }e[M]; int find(int x){ return x==f[x]?x:f 阅读全文
posted @ 2023-03-10 13:21 towboat 阅读(11) 评论(0) 推荐(0) 编辑
P1038 [NOIP2003 提高组] 神经网络
摘要:https://www.luogu.com.cn/problem/P1038 #include <iostream> #include<queue> #include <vector> #include <cstring> using namespace std; const int N=104, 阅读全文
posted @ 2023-03-10 13:10 towboat 阅读(9) 评论(0) 推荐(0) 编辑
P4551 最长异或路径
摘要:给定一棵 nn 个点的带权树,结点下标从 11 开始到 nn。寻找树中找两个结点,求最长的异或路径。 异或路径指的是指两个结点之间唯一路径上的所有边权的异或。 处理出每个点的树上异或前缀 这些异或值按照二进制数插入Trie 经典问题了 #include <iostream> #include <cs 阅读全文
posted @ 2023-03-08 20:20 towboat 阅读(17) 评论(0) 推荐(0) 编辑
P3879 [TJOI2010] 阅读理解
摘要:查找单词个数 样例: 3 9 you are a good boy ha ha o yeah 13 o my god you like bleach naruto one piece and so do i 11 but i do not think you will get all the poi 阅读全文
posted @ 2023-03-08 19:49 towboat 阅读(13) 评论(0) 推荐(0) 编辑
P2375 [NOI2014] 动物园
摘要:求num[i] ,表示1~i前缀 的合法子串个数( 满足前后缀相等,且不重合 #include <iostream> #include <cstring> using namespace std; const int N =1e6+3 ,mod= 1e9+7; #define int long lo 阅读全文
posted @ 2023-03-08 16:37 towboat 阅读(26) 评论(0) 推荐(0) 编辑
P4824 [USACO15FEB] Censoring S
摘要:希望在Str 中删掉 1个屏蔽词(一个屏蔽词可能出现多次) 求最后的串 栈+hash #include <iostream> #include <cstring> using namespace std; const int N =1e6+3; #define int long long int b 阅读全文
posted @ 2023-03-08 15:23 towboat 阅读(10) 评论(0) 推荐(0) 编辑
P3435 [POI2006] OKR-Periods of Words
摘要:对于给定串的每个前缀i,求最长的,使 这个字符串重复两边能覆盖原前缀i的前缀(就是前缀i的一个前缀),求所有的这些“前缀的前缀”的长度和 一张图秒懂 求next[] , 对于前缀i ,设 j =next[i] , 他有一个周期 i- j #include <bits/stdc++.h> using 阅读全文
posted @ 2023-03-08 14:55 towboat 阅读(19) 评论(0) 推荐(0) 编辑
P3195 [HNOI2008]玩具装箱
摘要:[HNOI2008]玩具装箱 f[i] =max( f[j]+ (s[i]-s[j] + i-j+1 )^2 设 a[i] =fi + si ,b[i] =s[i]+i+1 f[i] =max( f[j] + (a[i]-b[j])^2 =max{ f[j]+a[j]^2+b[j]^2 -2*a[j 阅读全文
posted @ 2023-03-07 21:08 towboat 阅读(6) 评论(0) 推荐(0) 编辑
P4852 yyf hates choukapai
摘要:yyf要抽卡 第 i 张卡的欧气值为 a[i],而在连抽时,欧气值等于第一张卡的欧气值。 每次抽卡的欧气之和”指每次单抽的欧气之和加上每次连抽的欧气之和. yyf想 C 连抽(连续抽 C 张卡) n 次,单抽 m 次, 但不想连续单抽超过 d次(可以连续单抽恰好 d 次)。 共有 c∗n+m张卡,抽 阅读全文
posted @ 2023-03-07 20:30 towboat 阅读(13) 评论(0) 推荐(0) 编辑
P5665 [CSP-S2019] 划分
摘要:36分代码 f[i][j] =min(f[j-1][k]+ pow(s[i]-s[j]) ) #include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N=403; #defi 阅读全文
posted @ 2023-03-07 17:36 towboat 阅读(17) 评论(0) 推荐(0) 编辑
P3522 [POI2011]TEM-Temperature
摘要:n天的温度测量,测量存在误差,测量结果是第 i天温度在[ Li,Ri ] 求最长的连续的一段,满足该段内可能温度不降。 一个纯粹的单调队列 要满足 R[ i] >= max{ L[k] } j<=k<=i (维护一个L[i] 增的队列) #include<iostream> #include <al 阅读全文
posted @ 2023-03-07 12:55 towboat 阅读(15) 评论(0) 推荐(0) 编辑
P2607 [ZJOI2008] 骑士
摘要:和<没有上司的舞会>一样,但树上多了条边 断掉环上一条边,两个点分别做dp ,取max #include <iostream> #include <algorithm> using namespace std ; const int N=1e6+5,M=2*N; #define int long l 阅读全文
posted @ 2023-03-06 20:13 towboat 阅读(15) 评论(0) 推荐(0) 编辑
P4395 [BOI2003]Gem 气垫车
摘要:给出一棵树,要求你为树上的结点标上权值,权值可以是任意的正整数 唯一的限制条件是相临的两个结点不能标上相同的权值,要求一种方案,使得整棵树的总价值最小。 考虑 j 为权值, 这个值不是1,2,但有个上界 logn ,ORZ F[u][ j ] += min(F[y][k]) #include <bi 阅读全文
posted @ 2023-03-06 17:11 towboat 阅读(20) 评论(0) 推荐(0) 编辑
P3047 [USACO12FEB]Nearby Cows G
摘要:一棵 n个点的树,点带权,对于每个节点求出距离它不超过 m 的所有节点权值和 S[i ] 换根dp 1. f[i][L] += f[y][L-1] 2 . g[i][L] =f[i][L] , g[i][L]+= g[fa][L-1] -f[y][L-2] (这个脑补一下图片, 换根dp是这样的) 阅读全文
posted @ 2023-03-06 16:17 towboat 阅读(10) 评论(0) 推荐(0) 编辑
P2585 [ZJOI2006]三色二叉树
摘要:给一颗二叉树,每个点有3种颜色可以涂,但相邻的点不能同色,问最少能有几个绿色的点 f[i][1] = f[L][0]+f[R][0]+1 f[i][0] = max( f[L][0]+f[R][1] , f[R][0]+f[L][1]) for(i=n;i>0;i--){ f[i][1]=f[tr[ 阅读全文
posted @ 2023-03-06 15:01 towboat 阅读(7) 评论(0) 推荐(0) 编辑
P1273 有线电视网
摘要:f[u][j] =max( f[y][k] +f[u][j-k]- w[i] ) #include <bits/stdc++.h> using namespace std ; const int N=3002,M=N*5,inf=0x7f7f3f; int n,m,sz[N]; int a[N],n 阅读全文
posted @ 2023-03-06 14:01 towboat 阅读(10) 评论(0) 推荐(0) 编辑
P3089 [USACO13NOV]Pogo-Cow S
摘要:FJ给奶牛贝西的脚安装上了弹簧,使它可以在农场里快速地跳跃,但是它还没有学会如何降低速度。 FJ觉得让贝西在一条直线的一维线路上进行练习, 他在不同的目标点放置了N (1 <= N <= 1000)个目标点,目标点i在目标点x(i),该点得分为p(i)。贝西开始时可以选择站在一个目标点上,只允许朝一 阅读全文
posted @ 2023-03-05 22:35 towboat 阅读(24) 评论(0) 推荐(0) 编辑
P1156 垃圾陷阱
摘要:卡门――农夫约翰极其珍视的一条 奶牛――已经落了到 “垃圾井” 中。它的深度为 DD(2≤D≤100)英尺。 卡门想把垃圾堆起来,等到堆得高度大等于于井的深度时,她就能逃出井外了。另外,卡门可以通过吃一些垃圾来维持自己的生命。 每个垃圾都可以用来吃或堆放,并且堆放垃圾不用花费卡门的时间。 假设卡门预 阅读全文
posted @ 2023-03-05 21:13 towboat 阅读(13) 评论(0) 推荐(0) 编辑
P5322 [BJOI2019] 排兵布阵
摘要:小 C 正在玩一款排兵布阵的游戏。在游戏中有 nn 座城堡, 每局对战由两名玩家来争夺这些城堡。每名玩家有 m名士兵,可以向第 ii 座城堡派遣 ai名士兵去争夺这个城堡,使得总士兵数不超过 m。 如果一名玩家向第 ii 座城堡派遣的士兵数严格大于对手派遣士兵数的两倍,那么这名玩家就占领了这座城堡, 阅读全文
posted @ 2023-03-05 20:53 towboat 阅读(23) 评论(0) 推荐(0) 编辑
P2946 [USACO09MAR]Cow Frisbee Team S
摘要:从序列A中选出一些数,使得总和为m的倍数,求有几种选法? f[i][j] ,考虑前i个,总和的余数为j 时的 方案数 (a[i]%m) f[i] [j ]+= f[i-1][j] +f[i-1][ j-a[i] ] #include <bits/stdc++.h> using namespace s 阅读全文
posted @ 2023-03-05 19:49 towboat 阅读(43) 评论(0) 推荐(0) 编辑
P3558 [POI2013]BAJ-Bytecomputer
摘要:给定一个长度为 nn 的只包含 −1,0,1−1,0,1 的数列 A, 每次操作可以使 ai←ai+ai−1 , 求最少操作次数使得序列单调不降。 F [i] [3 ] 分类讨论 #include <iostream> using namespace std ; const int N=1e6+2, 阅读全文
posted @ 2023-03-05 17:04 towboat 阅读(11) 评论(0) 推荐(0) 编辑
P4158 [SCOI2009]粉刷匠
摘要:windy有 N 条木板需要被粉刷。 每条木板被分为 M 个格子。 每个格子要被刷成红色或蓝色。 windy每次粉刷,只能选择一条木板上一段连续的格子,然后涂上一种颜色。 每个格子最多只能被粉刷一次。 如果windy只能粉刷 T 次,他最多能正确粉刷多少格子? (一个格子如果未被粉刷或者被粉刷错颜色 阅读全文
posted @ 2023-03-05 16:09 towboat 阅读(14) 评论(0) 推荐(0) 编辑
P2679 [NOIP2015 提高组] 子串
摘要:两个仅包含小写英文字母的字符串 AA 和 BB。 现在要从字符串 AA 中取出 kk 个互不重叠的非空子串,然后把这 kk 个子串按照其在字符串 AA 中出现的顺序依次连接起来得到一个新的字符串。 请问有多少种方案可以使得这个新串与字符串 BB 相等? 注意:子串取出的位置不同也认为是不同的 1) 阅读全文
posted @ 2023-03-05 13:40 towboat 阅读(13) 评论(0) 推荐(0) 编辑
P3628 [APIO2010] 特别行动队
摘要:斜率优化还是挺板子的: 考虑 两个变量 j,k ,且 F( j ) >F( k ) ,化简得到一个斜率的市子。。 slope( i ,j ) 然后用单调队列维护 #include <iostream> #include <cstring> #include <queue> using namespa 阅读全文
posted @ 2023-03-04 17:47 towboat 阅读(14) 评论(0) 推荐(0) 编辑
AcWing 299. 裁剪序列
摘要:给定一个长度n的序列 A,要求把该序列分成若干段,在满足“每段中所有数的和”不超过M 的前提下,让“每段中所有数的最大值”之和最小。 f[i ] =min( f[ j ]+ max{ a[k] , j<k<=i } ) ,s[ i ]-s[j] <=M 单调队列优化dp 待补 阅读全文
posted @ 2023-03-04 15:25 towboat 阅读(22) 评论(0) 推荐(0) 编辑
acwing 298 围栏
摘要:有 n块木板从左到右排成一行,有m M 个工匠对这些木板进行粉刷,每块木板至多被粉刷一次。 第ii个木匠要么不粉刷,要么粉刷包含木板 pos[ i] 的,长度不超过 c[i] 的连续的一段木板,每粉刷一块可以得到 Y[i] 的报酬。 不同工匠的pos[i] 不同。 如何安排能使工匠们获得的总报酬最多 阅读全文
posted @ 2023-03-04 13:02 towboat 阅读(8) 评论(0) 推荐(0) 编辑
acwing 297 赤壁之战
摘要:给定一个长度为n 的序列 , 求 它有多少个长度为 m的严格递增子序列。 f[i][j] += f[i-1][k] (a[k]<a[i], k<i ) 优化 : 维护前缀和,根据a[k]<a[i] ,以a[ ] 为下标维护树状数组 , add(a[i] ,f[i-1][j] ) #include < 阅读全文
posted @ 2023-03-04 12:15 towboat 阅读(11) 评论(0) 推荐(0) 编辑
acwing 330. 估算
摘要:给定一个长度为 n的整数数组A ,你需要创建另一个长度n 的整数数组 B,数组B被分为 K个连续的部分,并且如果 X和y 在同一个部分,则 B[i]=B[j] b[x]= b[y] 如果要求数组 B 满足 sum{ abs(a[i] - b[i] ) } 最小,那么最小值是多少,请你输出这个最小值。 阅读全文
posted @ 2023-03-03 22:41 towboat 阅读(7) 评论(0) 推荐(0) 编辑
acwing 331 干草堆
摘要:给定n个数字,将它们分成连续的若干个区间。满足后一个区间中的数字之和一定不大于前一个区间中的数字之和。 求最多可以分成多少个区间。 除了f[ i] ,再记一个 g[i] ,表示最大序列和( 以i结尾) f [i] =max( f[j]+1) , j<i , g [j] < s[i]-s[j] #in 阅读全文
posted @ 2023-03-03 21:46 towboat 阅读(2) 评论(0) 推荐(0) 编辑
P1168 中位数
摘要:动态查询区间中位数 对顶堆,上面一个大根堆,下面小根堆,因此数值从上到下递增 不断交换堆顶的元素,使得abs(sz1-sz2)<=1 #include <iostream> #include <algorithm> #include <queue> #include <cmath> using na 阅读全文
posted @ 2023-03-03 17:36 towboat 阅读(22) 评论(0) 推荐(0) 编辑
acwing 329. 围栏障碍训练场
摘要:坐标纸的 1~n 行,每一整数行有一条线段 [ x,y ] , 从( n,m ) 每次往下掉,碰到线段就向端点跑,然后继续掉 问到达(0,0) 最小的水平移动距离 f[i][0] = min(f[j][0] + abs(L[i] - L[j]), f[j][1] + abs(L[i] - R[j]) 阅读全文
posted @ 2023-03-03 15:17 towboat 阅读(26) 评论(0) 推荐(0) 编辑
acwing 310 启示🦌
摘要:只要某数字的十进制表示中有三个连续的 6 ,古代人也认为这是个魔鬼的数,比如 666,1666,6663,16666,6660666 古代典籍中经常用“第X小的魔鬼的数”来指代这些数, 输入XX ,输出对应的第X个魔鬼数 二分 X ,看1~X 有几个这样的数,以此检验 #include <iostr 阅读全文
posted @ 2023-03-02 22:00 towboat 阅读(20) 评论(0) 推荐(0) 编辑
AcWing 325. 计算机
摘要:求树上每个点的 最远点的距离 Di 换根dp #include <iostream> #include <vector> #include <algorithm> #include <cstring> using namespace std ; const int N=1e5,M=N; int nx 阅读全文
posted @ 2023-03-02 01:29 towboat 阅读(5) 评论(0) 推荐(0) 编辑
acwing 322. 消木块
摘要:消除方块,同色可以消除,产生价值 (len)^2 求最后最大的价值 区间dp #include <iostream> #include<queue> #include <cstring> #define IOS std::ios::sync_with_stdio(0) using namespace 阅读全文
posted @ 2023-03-02 01:15 towboat 阅读(5) 评论(0) 推荐(0) 编辑

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