就是DP
Cyhlnj
这个作者很懒,什么都没留下…
展开
-
2014NOIP普及组 子矩阵
觉得题目水的离开 觉得普及组垃圾的请离开 不知道 DFS 和 DP 的请离开 不屑的大佬请离开 ……. 感谢您贡献的访问量————————————————华丽的分割线 ————————————————先看题面:题目描述 给出如下定义: 子矩阵:从一个矩阵当中选取某些行和某些列交叉位置所组成的新矩阵(保持行与列的相对顺序)被称为原矩阵的一个子矩阵。 例如,下面左图中选取第2、原创 2017-07-15 21:29:03 · 795 阅读 · 0 评论 -
Bzoj1499: [NOI2005]瑰丽华尔兹
题面BzojSol暴力:设f[i][j][k]设f[i][j][k]设f[i][j][k]表示到第iii次倾斜,当前在(j,k)(j,k)(j, k)的滑动最大距离 然后O(n∗m∗T)O(n∗m∗T)O(n*m*T)转移,ACACAC了???# include <bits/stdc++.h># define RG register# define IL ...原创 2018-02-27 17:10:16 · 223 阅读 · 0 评论 -
Bzoj1855: [Scoi2010]股票交易
题面BzojSol设f[i][j]f[i][j]f[i][j]表示第iii天有jjj张股票的最大收益 转移很简单辣# include <bits/stdc++.h># define RG register# define IL inline# define Fill(a, b) memset(a, b, sizeof(a))using namespace ...原创 2018-02-21 09:55:35 · 231 阅读 · 0 评论 -
Bzoj1558: [JSOI2009]等差数列
题面传送门Sol线段树维护区间DPDPDP 差分,你会发现就是选一些区间,第一个值可以不一样 那么我们维护原数组左右端点是否选的情况,一共四种 注意差分数组只有n−1n−1n-1的长度,并且每个数维护的是两个相邻的原数组的数# include <bits/stdc++.h># define RG register# define IL inline# d...原创 2018-03-15 21:50:54 · 314 阅读 · 0 评论 -
CF833B The Bakery
题意将一个长度为nnn的序列分为kkk段 使得总价值最大 一段区间的价值表示为区间内不同数字的个数 n<=35000,k<=50n<=35000,k<=50nf[i][j]f[i][j]f[i][j] 表示前iii个数字分成jjj段的最大价值 则f[i][j]=maxf[i][j]=maxf[i][j] = max{f[l][j−1]+Query(l+1,i)...原创 2018-03-17 14:44:27 · 676 阅读 · 1 评论 -
NOIP2017:逛公园
Sol发现NOIP2017NOIP2017NOIP2017还没AKAKAK??? 赶紧改考场上明明打出了DPDPDP,没时间了,没判环,重点是没初始化数组,爆000 TATTATTAT先最短路,然后f[i][j]f[i][j]f[i][j]表示到iii时,比最短路大jjj的方案 大力记搜就好了 判环就记录一下当前转移的是否在栈中就没了明明这么简单,可我就是与ACACAC擦肩...原创 2018-03-29 20:25:52 · 896 阅读 · 1 评论 -
Bzoj1835:[ZJOI2010]基站选址
Sol设f[i][j]f[i][j]f[i][j]表示钦定iii建基站,建了jjj个基站的最小代价 f[i][j]=max(f[l][j−1]+Σi−1t=l+1f[i][j]=max(f[l][j−1]+Σt=l+1i−1f[i][j]=max(f[l][j-1]+\Sigma_{t=l+1}^{i-1}不能影响到的村庄的w[t])+c[i]w[t])+c[i]w[t])+c[i]二分...原创 2018-03-21 21:38:24 · 174 阅读 · 0 评论 -
Bzoj4553: [Tjoi2016&Heoi2016]序列
题面传送门Sol处理出每个数p[i]p[i]p[i]最大能变成多少和最小能变成多少mx[i],mn[i]mx[i],mn[i]mx[i], mn[i]设f[i]f[i]f[i]表示到第iii个位置的最长的满足要求的序列 f[i]=max(f[j])+1f[i]=max(f[j])+1f[i]=max(f[j])+1满足mx[j]≤p[i]mx[j]≤p[i]mx[j]\le ...原创 2018-04-03 10:39:57 · 165 阅读 · 0 评论 -
Luogu3600 随机数生成器
题面传送门Solsto sto sto \ \ fdffdffdf sto sto sto \ \ fateicefateicefateice显然,如果一个区间包含了另一个区间,那么它的最小值不会有贡献,直接去掉考虑枚举最大值kkk 求出所有区间满足最小值小于等于kkk的概率,设...原创 2018-03-28 17:30:05 · 507 阅读 · 1 评论 -
Bzoj1496: [NOI2006]千年虫
题面传送门Sol左右可以分开搞 然后就是要形成一个类似梳子的东西 设f[0/1][i][j]f[0/1][i][j]f[0/1][i][j] 000凹,111凸,iii为行,可以滚一维,jjj为该行长度 f[0][i][j]=min(f[0][i−1][j],f[1][i−1][k])+j−a[i];k>jf[0][i][j]=min(f[0][i−1][j],f[1...原创 2018-04-03 20:35:23 · 386 阅读 · 0 评论 -
Bzoj3197: [Sdoi2013]assassin
题面传送门Sol套路:找出重心,如果有两个就新建一个点 然后把这棵树hash一下 设f[i][j]f[i][j]f[i][j]表示第一颗树到iii第二棵树到jjj,子树i,ji,ji,j同构的付出的最小代价 转移:每次把这一层hash值相同的点做一边二分图权匹配(KM/费用流)就好了 一遍AC# include <bits/stdc++.h># defin...原创 2018-05-30 22:26:17 · 180 阅读 · 0 评论 -
Bzoj3672: [Noi2014]购票
题面传送门Sol设f[i]f[i]f[i]表示iii到根的最小代价 f[i]f[i]f[i]可以由f[j]f[j]f[j]转移而来,要求jjj为iii的父亲,并且满足距离限制显然DPDPDP式可以斜率优化 然而这是在树上,并且每次都要一个iii往上的若干个点的凸包可以考虑维护区间凸包,可以用线段树 或者CDQCDQCDQ分治CDQCDQCDQ分治的方法,其实是点分治,...原创 2018-05-31 11:50:12 · 162 阅读 · 0 评论 -
Bzoj4044/HackerRank Virus synthesis
题意你要用 ATGCATGCATGC 四个字母用两种操作拼出给定的串: 1. 将其中一个字符放在已有串开头或者结尾 2. 将已有串复制,然后 reversereversereverse ,再接在已有串的头部或者尾部一开始已有串为空。求最少操作次数。 len≤100000len≤100000len\le100000Sol首先有个结论 每次形成偶数长度回文串的最后一步一定是操作...原创 2018-06-08 08:01:14 · 188 阅读 · 0 评论 -
UOJ#316. 【NOI2017】泳池
传送门一道 DPDPDP 好题设 qqq 为一个块合法的概率套路一恰好为 kkk 的概率不好算,算小于等于 kkk 的减去小于等于 k−1k-1k−1 的那么设 fif_ifi 表示宽为 iii 的合法的泳池面积都小于等于 kkk 的概率设 gig_igi 表示宽为 iii 的合法的泳池面积都小于等于 kkk 且最下面一行都合法的概率那么考虑转移 fff套路二强制前面的满足一定的...原创 2018-12-30 17:30:24 · 228 阅读 · 0 评论 -
LOJ#6032. 「雅礼集训 2017 Day2」水箱
传送门首先可以有一个平方复杂度的 DPDPDP设 fi,jf_{i,j}fi,j 表示前面 iii 个小格,高度为 jjj 的最大答案令 hih_ihi 表示隔板 iii 的高度当 j≤hij\le h_ij≤hi 时,转移到 fi+1,k,k∈[0,hi]f_{i+1,k},k\in [0,h_i]fi+1,k,k∈[0,hi]否则 fi,j→fi+1,jf{i,j}\rig...原创 2019-01-24 21:58:43 · 301 阅读 · 0 评论 -
ZJOI2007仓库建设
斜率优化# include <stdio.h># include <stdlib.h># include <iostream># include <string.h># include <algorithm># define IL inline# define RG register# define Fill(a, ...原创 2017-12-09 11:17:43 · 196 阅读 · 0 评论 -
APIO2010特别行动队
斜率优化# include <stdio.h># include <stdlib.h># include <iostream># include <string.h># include <algorithm># define Sqr(x) (1LL * (x) * (x))# define IL inline# de...原创 2017-12-09 11:14:57 · 258 阅读 · 0 评论 -
Luogu1121:环状最大两段子段和
题面传送门Sol两种情况 第一种就是类似∗∗∗000∗∗∗000∗∗∗(0表示选)" role="presentation">∗∗∗000∗∗∗000∗∗∗(0表示选)∗∗∗000∗∗∗000∗∗∗(0表示选)**原创 2018-01-25 11:48:53 · 292 阅读 · 0 评论 -
Bzoj1046: [HAOI2007]上升序列
题面传送门Sol先求出最长上升序列,倒着求,然后贪心的往后选,选满足的 求最长上升序列我用的是树状数组# include # define IL inline# define RG register# define Fill(a, b) memset(a, b, sizeof(a))using namespace std;typedef long long l原创 2018-01-25 21:33:34 · 172 阅读 · 0 评论 -
Bzoj1079:[SCOI2008]着色方案
题面传送门Sol1因为每种油漆的数量是有限的 并且每种油漆是没有优先级的 直接设状态f[lst][a][b][c][d][e]" role="presentation">f[lst][a][b][c][d][e]f[lst][a][b][c][d][e]f[lst][a][b][c][d][e]表示有a" role="presentation">aaa个可以涂一次,b" rol原创 2018-01-26 09:14:26 · 205 阅读 · 0 评论 -
[HNOI2010]CHORUS 合唱队
题面BzojSol简单DP" role="presentation">DPDPDP# include # define IL inline# define RG register# define Fill(a, b) memset(a, b, sizeof(a))using namespace std;typedef long long ll;const int _(1原创 2018-02-02 17:36:19 · 202 阅读 · 0 评论 -
BZOJ4321: queue2
题面传送门Sol先设一个套路的状态:f[i][j]" role="presentation">f[i][j]f[i][j]f[i][j]表示到第i" role="presentation">iii个人,有j" role="presentation">jjj对冲突 但是我们不能确定i−1" role="presentation">i−1i−1i-1,所以不好决策i的位原创 2018-01-27 09:03:18 · 228 阅读 · 0 评论 -
Bzoj2037: [Sdoi2008]Sue的小球
题面传送门Sol就相当于从x0x_0开始左右横走,显然可以设f[0/1][i][j]f[0/1][i][j]表示左到ii右到jj,当前在左/右的代价 但是不好记转移代价,因为不知道时间 那么可以把它变成最小损失,每次转移就是加上两边没走的蛋降落的损失,最后用总代价相减即可# include # define RG register# define IL inli原创 2018-01-20 08:40:41 · 256 阅读 · 0 评论 -
Bzoj2428: [HAOI2006]均分数据
题面链接Sol模拟退火 再做数列上的DPDPDP# include <bits/stdc++.h># define RG register# define IL inline# define Fill(a, b) memset(a, b, sizeof(a))using namespace std;typedef long long ll;cons...原创 2018-02-10 08:23:23 · 235 阅读 · 0 评论 -
Bzoj1030:[JSOI2007]文本生成器
题面BzojSolACACAC自动机上DPDPDP 总数−−-不合法# include <bits/stdc++.h># define RG register# define IL inline# define Fill(a, b) memset(a, b, sizeof(a))using namespace std;typedef long long ll...原创 2018-02-10 14:28:20 · 205 阅读 · 0 评论 -
Bzoj3992:[SDOI2015]序列统计
题面BzojSolpts 1大暴力很简单,f[i][j]f[i][j]f[i][j]表示到第iii个位置,前面积的模为jjj的方案 然后可以获得101010分的好成绩# include <bits/stdc++.h># define RG register# define IL inline# define Fill(a, b) memset(a, ...原创 2018-02-11 22:23:15 · 249 阅读 · 0 评论 -
清橙A1202&Bzoj2201:彩色圆环
因为Bzoj是权限题,所以可以去清橙做一下Sol突然考了一道这样的题,考场上强行yyyyyy出来了 win下评测Long double爆零TAT首先肯定是破环为链变成序列问题辣 那么就要求第一个的颜色和最后的颜色不同 怎么统计,枚举前面有多长和右面有多长长度相等 中间的强制第一个与枚举的前面不同,以及最后一个与枚举的后面(就是前面)不同 合起来就是答案考虑中间的怎么算...原创 2018-02-26 15:10:04 · 227 阅读 · 0 评论 -
Bzoj2442:修剪草坪
Sol一个很显然的暴力,设f[i]f[i]f[i]表示选到iii的最优效率 每次枚举一段不与前面连续的长度小于kkk的区间转移来# include <bits/stdc++.h># define RG register# define IL inline# define Fill(a, b) memset(a, b, sizeof(a))using namespa...原创 2018-02-13 21:32:02 · 264 阅读 · 0 评论 -
HNOI2008玩具装箱
斜率优化# include <stdio.h># include <stdlib.h># include <iostream># include <string.h># include <algorithm># define Sqr(x) (1LL * (x) * (x))# define IL inline# de...原创 2017-12-09 11:16:38 · 211 阅读 · 0 评论 -
USACO08MAR Land Acquisition
斜率优化# include <stdio.h># include <stdlib.h># include <iostream># include <string.h># include <algorithm># define IL inline# define RG register# define Fill(a, ...原创 2017-12-09 11:17:08 · 193 阅读 · 0 评论 -
CEOI2004锯木厂选址
斜率优化# include <stdio.h># include <stdlib.h># include <iostream># include <string.h># include <algorithm># define IL inline# define RG register# define Fill(a, ...原创 2017-12-09 11:15:59 · 264 阅读 · 0 评论 -
AGC009:Eternal Average
传送门好神啊直接考虑一棵 n+mn+mn+m 个叶子的 kkk 叉树,根结点权值为 ∑i∈m(1k)deepi\sum_{i\in m}(\frac{1}{k})^{deep_i}∑i∈m(k1)deepi对于一个 deepdeepdeep 的序列如果 ∑i∈m(1k)deepi+∑i∈n(1k)deepi=1\sum_{i\in m}(\frac{1}{k})^{deep_i}+\...原创 2019-02-09 16:40:01 · 181 阅读 · 0 评论