dp杂题(根据个人进度选更)】的更多相关文章

----19.7.30 今天又开了一个新专题,dp杂题,我依旧按照之前一样,这一个专题更在一起,根据个人进度选更题目; dp就是动态规划,本人认为,动态规划的核心就是dp状态的设立以及dp转移方程的推导,这也是训练的重中之重,所以代码不那么重要,重要的就是dp的思想; T1: A. 消失之物 题目描述 ftiasch 有 N 个物品, 体积分别是 W1, W2, ..., WN. 由于她的疏忽, 第 i 个物品丢失了. “要使用剩下的 N - 1 物品装满容积为 x 的背包,有几种方法呢?” -…
CQOI2014 数三角形 首先一看题,先容斥一波,求出网格内选三个点所有的情况,也就是C(n*m,3);然后抛出行里三点共线的方案数:C(n,3)*m; 同理就有列中三点共线的方案数:n*C(m,3) 还要刨去对角线的方案数,由于gcd(i,j)-1就是这条线((i,j)与原点的连线)的方案数,然后这样的线斜着因为方向不同就要*2 然后这样的线在整个网格中总共有(m-j+1)*(n-i+1)种所以求出公式C(n*m,3)-n*C(m,3)-m*C(n,3)-∑(m-j+1)*(n-i+1)*(…
由于换了台电脑,而我的贪心 & 构造能力依然很拉跨,所以决定再开一个坑( 前传: 贪心/构造/DP 杂题选做 u1s1 我预感还有Ⅲ(欸,这不是我在多项式Ⅱ中说过的原话吗) 24. P5912 [POI2004]JAS 一开始直接莽了个点分治,当我测过了样例美滋滋地一交,发现自己获得了 20 分的好成绩之后,才发现事情有那么亿点点不对劲( 不难发现,题目等价于求高度最小的点分树的高度,直接求有点困难,我们不妨来对其进行一些转化:我们考虑给每个点一个标号,那么问题可以转化为,求使得任意两个标号相同…
颓!颓!颓!(bushi 前传: 贪心/构造/DP 杂题选做 贪心/构造/DP 杂题选做Ⅱ 51. CF758E Broken Tree 讲个笑话,这道题是 11.3 模拟赛的 T2,模拟赛里那道题的名字叫猛张(orz ztr),而我刚好在 11.4 把这题 A 了.乍一看好像也没啥问题,不过模拟赛时间是 2020.11.3,而我 AC 这道题的时间是 2021.11.4((( 首先看到这样的题我们肯定会想到贪心,具体来说我们 DFS 一遍整棵树,DFS 到一个节点 \(x\) 时,我们考虑用最…
本博客将会收录一些贪心/构造的我认为较有价值的题目,这样可以有效的避免日后碰到 P7115 或者 P7915 这样的题就束手无策进而垫底的情况/dk 某些题目虽然跟贪心关系不大,但是在 CF 上有个 greedy 的 tag,这种题目大概率也会被我收录进来(比方说这篇博客里大概率会收录不少 DP 题,因为 CF 上不少 DP 题都莫名其妙地打上了一个 greedy 的 tag 1. CF1592F1 Alice and Recoloring 1 首先很明显我们不会选择翻转包含 \((1,m),(…
P2577 [ZJOI2004]午餐 $\texttt{solution}$ 想到贪心: 吃饭慢的先打饭节约时间, 所以先将人按吃饭时间从大到小排序. 状态: \(f[i][j]\) 表示前 \(i\) 个人,在 \(1号\) 窗口打饭总时间 \(j\) ,最早吃完饭的时间. 我们可以发现 \(j+k\) 等于前 \(i\) 个人打饭总和( \(sum[i]\) ),\(k = sum(i)-j\) ,所以可以省去一维. 转移: 将第 \(i\) 个人放在 \(1\) 号窗口:(前提:\(j \…
A POJ 1018 Communication System B POJ 1050 To the Max C POJ 1083 Moving Tables D POJ 1125 Stockbroker Grapevine E POJ 1143 Number Game F POJ 1157 LITTLE SHOP OF FLOWERS G POJ 1163 The Triangle H POJ 1178 Camelot I POJ 1179 Polygon J POJ 1189 钉子和小球 K…
1. [HNOI2001] 产品加工 一道简单的背包,然而我还是写了很久QAQ 时间范围是都小于5 显然考虑一维背包,dp[i]表示目前A消耗了i的最小B消耗 注意 if(b[i]) dp[j]=dp[j]+b[i]; else dp[j]=1e9+7; 可以用B则直接转移,否则要把上一次的这个状态设为正无穷,只能用后两个转移. //Twenty #include<cstdio> #include<cstdlib> #include<iostream> #include…
很神的题,感谢lnc大佬的指点. 先设1-LL[i]统称左区间,RR[i]-m为右区间 用L[i]统计从1-i列,出现的左区间端点的前缀和,R[i]是右区间.... f[i][j]中j表示当前在第i列,右区间的左端点(RR[i])到i存在的1的个数,总体表示当前方案数. 所以,我们分几种情况 两种是直接转移的      f[i+1][j]=f[i][j]表示i向右移动但j不变方案转移      f[i+1][j+1]=f[i][j]*(r[i+1]-j)表明又选了一个,当前新的1可以从r[i+1…
1.邦邦的大合唱站队 https://www.luogu.org/problem/show?pid=3694 XY说这是道简单的签到题,然后我大概是普及组都拿不到三等的那种了.. 插入题解.写得太好了,不刊之论,orzSXY大佬 http://www.cnblogs.com/Serene-shixinyi/p/7475529.html 一开始不知道为什么这样转移是对的,可能是这几天写(划)题(水)脑子坏掉了,觉得要枚举1的个数为1的,再枚举为2的,再枚举为3的.. (噫突然想了想这样好像也不会T…
正睿OI DAY3 杂题选讲 CodeChef MSTONES n个点,可以构造7条直线使得每个点都在直线上,找到一条直线使得上面的点最多 随机化算法,check到答案的概率为\(1/49\) \(n\leq k^2\) 暴力 \(n\geq k^2\),找点x,求直线l经过x,且点数最多,点数\(\geq k+1\),递归,否则再找一个 One Point Nine Nine 现在平面上有\(n\)个点,已知有一个常数\(D\). 任意两点的距离要么\(\leq D\),要么\(\geq 1.…
自闭集训 Day6 杂题选讲 CF round 469 E 发现一个数不可能取两次,因为1,1不如1,2. 发现不可能选一个数的正负,因为1,-1不如1,-2. hihoCoder挑战赛29 D 设\(f(x)\)表示最后一个数小于等于\(x\)的答案,从左往右加入数并维护\(f(x)\). 加入\(A\)的时候\(f(x)\)要加上\(|x-A|\),再对\(f(x-1)\)取min. 显然\(f(x)\)是一个分段函数,而且斜率是连续整数. 于是只需要维护拐点就可以知道函数长什么样.每次就是…
不要62 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 58665    Accepted Submission(s): 23095 Problem Description 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer).杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可…
Preface 又自己开了场CF/Atcoder杂题,比昨天的稍难,题目也更有趣了 昨晚炉石检验血统果然是非洲人... 希望这是给NOIP2018续点rp吧 A.CF1068C-Colored Rooks 现在还没理解题意... B. CF1070K-VideoPosts 一道模拟,没什么好说的. 不过一开始还是WA了...一个智障的坑,感觉做题还是不细心 const int maxn=100005; const int inf=0x7fffffff; int a[maxn],ave,n,k,c…
  记录一些没有写在其他随笔中的 Codeforces 杂题, 以 Problemset 题号排序   1326D2 - Prefix-Suffix Palindrome (Hard version) 题意: 给出一个串 s, |s| ≤ 1e6, 要求选出一个前缀和一个后缀(不相交, 可以为空), 使得它们连接后是一个回文串. 求最长的回文串. 思路: 马拉车处理半径数组, 用前缀, 后缀, 半径与相同的前后缀相交的情况更新答案. view code #include <bits/stdc++…
目录 DP百题练(二) 区间 DP NOI1995 石子合并 IOI1998 Polygon CH5302 金字塔 USACO06FEB Treats for the Cows G/S LG1043 数字游戏 LG1063 能量项链 LG1005 矩阵取数游戏 LG3146 [USACO16OPEN]248 G 树形 DP LG1352 没有上司的舞会 CTSC1997 选课 LG1273 有线电视网 POJ3585 Accumulation Degree LG3478 [POI2008]STA…
之前没有怎么刷过dp的题,所以在此学习了~(感谢walala大神的思路,给了我很大的启发) 也算是自己学习的另一种dp题型吧 先贴上状态转移方程: if(a[i][j]) f[i][j]=min(f[i-1][j],min(f[i][j-1],f[i-1][j-1]))+1 然后更新ans即可 详细的解释一下这个状态转移方程的意义 F[i-1,j] 表示向左能延伸的最大长度 F[i-1,j-1] 表示沿对角线延伸的最大长度 F[i,j-1] 表示向上能延伸的最大长度 很多人一开始不明白为什么明明…
好吧,这名字真是让我想起了某段被某教科书支配的历史.....各种DP题层出不穷,不过终于做完了orz 虽然各种手糊加乱搞,但还是要总结一下. T1 Monkey Banana Problem    这道题和数塔问题差不多,不过多了一个倒过来的 代码如下: #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; ][],t,n;…
51nod 1353 树 | 树形DP好题! 题面 切断一棵树的任意条边,这棵树会变成一棵森林. 现要求森林中每棵树的节点个数不小于k,求有多少种切法. 数据范围:\(n \le 2000\). 题解 //为什么这道题做的人这么少呢--感觉这道题超级经典,非常符合上周末模拟那种树形DP的套路.会做这道题之后,可以想出许多类似的树形DP. 首先状态很好想:\(dp[u][i]\)表示"以u为根的子树中,与u相连的联通块大小是i,剩下的联通块大小均大于k"的方案数. 下面的题解中,我们设要…
来中山纪中半个月了,差不多就要结束了, 写一些之前考试能更正的题解吧,还有一些不是给人做的(比如IOI2018互测.. 备注:我不会的就没有放上来了,所有数学有关的基本上都死了. 所以这里的题目都是相对其他考的而言简单的题qwq,然而我考场上还是不会做 写完之后发现只会分块和线段树qwq,偶尔有点网络流,其他都不会,awsl 3.18 第一天来就考NOI NO.2的题目.. 题目看这里吧 more?more! 这道题非常奇妙的地方在于 因为\(n\)是固定的所以\(n+1\)本就是不需要求的状态…
DP刷题记录 (本文例题目前大多数都选自算法竞赛进阶指南) TYVJ1071 求两个序列的最长公共上升子序列 设\(f_{i,j}\)表示a中的\(1-i\)与b中色\(1-j\)匹配时所能构成的以\(b_j\)结尾的最长公共上升子序列的长度 考虑转移 \[ f_{i,j} = \left\{\begin{array}{l}{f_{i - 1,j}\quad \quad \quad \quad \quad \quad\quad(a_i \not= b_j)} \\ {\max_{k = 1}^{…
目录 DP百题练(一) 线性 DP 简述 Arithmetic Progressions [ZJOI2006]物流运输 LG1095 守望者的逃离 LG1103 书本整理 CH5102 移动服务 LG1006 传纸条 CH5104 I-区域 LG1359 租用游艇 USACO2.3 最长前缀 Longest Prefix LG1435 回文字串 LG1854 花店橱窗布置 LG3842 [TJOI2007]线段 LG5017 摆渡车 LG1434 [SHOI2002]滑雪 LG2051 [AHO…
目录 DP百题练(三) DP百题练(三) 不知不觉也刷了 50 道 DP 题了,感觉确实有较大的进步.(2020.3.20) 这里的 (三) 主要用来记录 DP 的各种优化(倍增.数据结构.斜率.四边形不等式...) 给出 DP百题练(二) 继续努力吧.(DP 优化很难学的,所以更新会慢很多...) 难度太大了,目前接受不了,去玩数据结构了,之后再更吧,咕咕咕(2020.3.21)…
title: woj1012 Thingk and Count DP好题 date: 2020-03-12 categories: acm tags: [acm,dp,woj] 难题,dp好题,几何题(?数学题) 想明白了其实思路很简单,但是因为数据量很大优化需要考虑. 滚动数组. description You are given a chessboard made up of N squares by M squares. Some of the squares are colored bl…
题意: 给一个m*n的矩阵,每格上有一个数. 找从第1行到第m行的一条路径,使得这条路径上的数之和最小. 路径必须满足相邻两行所选的两个数的纵坐标相邻(即一个格子必须是另一个格子的周围八个格子中的一个) 输出每一行取的数的列值.  若有多个答案,则路径要求尽量靠右. 思路: 简单数塔DP.题比较不好读,不过可以分析样例. 代码: int T,m,n; int a[105][105], f[105][105]; int path[105]; int main(){ cin>>T; rep(t,1…
杂题 2019-11-03  21:09:37  by冲冲 1.类加载器的双亲委派机制 类加载器:把类通过类加载器加载到JVM中,然后转换成class对象(通过类的全路径来找到这个类). 双亲委派机制:当有一个类进入虚拟机加载环节后,但是他自己的类加载器不去加载,而是让其父类加载器加载(让上级加载器加载),只有当父类加载器找不到这个类的时候,子类加载器才会去加载. 优点:为了安全,Object是所有类的父类,系统类的加载都是经过Object加载器加载.此时,如果有一个自定义的类,但是类名和系统类…
CSU 1772 漫漫上学路 Time Limit: 1000MS   Memory Limit: 131072KB   64bit IO Format: %lld & %llu Submit Status Description 对于csuxushu来说,能够在CSU(California State University)上学是他一生的荣幸.CSU校园内的道路设计的十分精巧,由n+1条水平道路和n+1条竖直道路等距交错而成,充分体现了校园深厚的文化底蕴.然而不幸的是CS市每到夏季,天降大雨,…
DP 水题 Description A number whose only prime factors are 2,3,5 or 7 is called a humble number. The sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 25, 27, ... shows the first 20 humble numbers. Write a program to find and print…
1.poj 3254  Corn Fields    状态压缩dp入门题 2.总结:二进制实在巧妙,以前从来没想过可以这样用. 题意:n行m列,1表示肥沃,0表示贫瘠,把牛放在肥沃处,要求所有牛不能相邻,求有多少种放法. #include<iostream> #include<cstring> #include<cmath> #include<queue> #include<algorithm> #include<cstdio> #d…
比基础的多一点东西的背包问题. 链接:POJ2642 大意:有N种砖,每种花费p[i],含铜量c[i],现需要用M种不同的砖融成含铜量在Cmin到Cmax之间(可等于)的砖,即这M种砖的含铜量平均值在这个范围内,求最小花费.(M.Cmin.Cmax有多种需求,分别输出花费) 题解: DP, f[i][j]表示选i种砖,含铜量的和为j时的最小花费.这样在询问M.Cmin.Cmax之前,先将各种砖数.组成各种含铜量的花费都算好. DP方程:f[k][j]=min(f[k][j],f[k-1][j-c…