dp
wwwlps
这个作者很懒,什么都没留下…
展开
-
codeforces D. Make The Fence Great Again(线性二维dp)
传送:https://codeforces.com/contest/1221/problem/D题目:给出一个长度为n的序列,a[1]...a[n],以及各值高度加1的代价,cost[1]...cost[n],要使得序列任意相邻的两个数a[i-1]!=a[i]。求代价最小是多少?思路:通过模拟观察可知每个数的增加值最多为2,用二维dp枚举递推。#include<bits/s...原创 2019-10-28 10:18:49 · 227 阅读 · 0 评论 -
codeforces 两道(dp、思维)(C.Ivan the Fool and the Probability Theory)( E. By Elevator or Stairs?)
传送:https://codeforces.com/contest/1248/problem/C题目:n x m的网格 (10^5),给网格涂上白黑两色,要求一种颜色网格最多有一个相同颜色的网格和它相邻,问总共有多少种涂色方案?答案对10^9取模。思路:说实话,当时没想出来,但知道应该是dp。我们可以从第一行开始考虑。1. 如果第一行有 两个相同颜色格子相邻 的情况,那么与这行相邻...原创 2019-10-24 17:34:00 · 367 阅读 · 0 评论 -
ECNU 1029. 走道铺砖 (状压dp)
单点时限:5.0 sec内存限制:256 MB有一个专门为装修设计方案的法国著名设计师。最近,他接到一个项目,为华东师大理科大楼设计走道的地砖铺设方案。此项目的委托人事先便进行了说明:地砖只有 12 一种规格,而整栋楼中同类走道又有许多个,他不想其中有任何的两个出现重复的设计方案。因此,设计师必须确定其可行性,即对一个 NM(NM 为偶数) 的走道,用 NM/2 块 1*2 的地砖将其...原创 2019-06-22 17:22:01 · 381 阅读 · 0 评论 -
蓝桥杯 传纸条 (动态规划)
http://www.dotcpp.com/oj/problem1611.html题目大意:给一矩阵,两人分别在左上和右下,两人传递纸条,规定左上的人只能向右和向下传递,右下的人只能向左和向上传递,两者路径不能相交,求两条路径的权值总和最大是多少。题目解答:我们转化一下思想,题目中说由左上方到右下方来回,我们可以看作是从左上方找两条不相交的路径到右下方。这里我们可以好比是两个纸条同...转载 2019-03-22 09:10:12 · 654 阅读 · 0 评论 -
牛客练习赛 背单词 (dp,递推)
链接:https://ac.nowcoder.com/acm/contest/326/B来源:牛客网时间限制:C/C++ 2秒,其他语言4秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述winterzz1准备考4级了,现在winterzz1决定把世界上所有单词都背一遍,winterzz1发现任意一个单词最多有A个连续的...原创 2019-03-11 18:25:10 · 162 阅读 · 0 评论 -
2018 浙江省大学生程序设计竞赛 D.Sequence Swapping(动态规划dp,思维逻辑)
转载出处:https://blog.csdn.net/i11000/article/details/80209662#include<cstdio>#include<cstring>#include<iostream>#include<queue>#include<stack>#include<algorithm&g...转载 2018-10-31 15:05:05 · 536 阅读 · 0 评论 -
最短Hamilton路径(二进制状态压缩)
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include <vector>#include<queue>#include <stack>#include <map>#de原创 2018-10-24 15:47:43 · 257 阅读 · 0 评论 -
poj 3280 Cheapest Palindrome (区间Dp)
题意:给出一个由m中字母组成的长度为n的串,给出m种字母添加和删除花费的代价,求让给出的串变成回文串的代价。 分析:我们知道求添加最少的字母让其回文是经典dp问题,转化成LCS求解。这个是一个很明显的区间dp我们定义dp [ i ] [ j ] 为区间 i 到 j 变成回文的最小代价。那么对于dp【i】【j】有三种情况首先:对于一个串如果s【i】==s【j】,那么dp【i】【j...原创 2018-08-03 10:06:37 · 100 阅读 · 0 评论 -
2018 百度之星资格赛 1001 调查问卷
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6344题意:给n份问卷,每个问卷m道题,每题只有A,B两种选项,问存在多少个问题集合,使得只保留这些问题后至少k对卷子不同。 题解:刚开始做的时候,没有什么思路,因为要求至少K对,我对这个点无从下手,后来比赛结束看了下别人的博客,原来可以用一个叫做状态压缩dp的东西来求解,用二进制去枚举问题集合...原创 2018-08-06 12:04:34 · 217 阅读 · 0 评论 -
poj 3616 Milking Time(dp,类似于最长上升子序列)
题意:给奶牛挤奶,共m次可以挤,给出每次开始挤奶的时间st,结束挤奶的时间ed,还有挤奶的量ef,每次挤完奶要休息r时间,问最大挤奶量.题解:此题灵感来自于最长上升子序列的做法#include <iostream>#include <cstring>#include <cstdio>#include <vector>#inclu...原创 2018-08-04 11:31:02 · 154 阅读 · 0 评论 -
poj 2385 Apple Catching(dp,状态转移)
题意:有两棵苹果树,编号为1,2,每分钟有一棵树会掉落一个苹果。一头牛在树下接苹果,每分钟只能站在一棵树下,但在树间转移的时间忽略不计。给定最大的转移次数w,问这只牛最多能接住多少苹果?”题解:关键是寻找状态转移方程,取dp[i][j]的含义为:在i时刻,已经转移j次的情况下的接到的最大苹果数量,则i时刻,已经转移j次的情况只能从两种状态转移过来i-1时刻已经转移j次的情况 i-1时...原创 2018-08-04 10:18:38 · 104 阅读 · 0 评论 -
蓝桥杯 算法训练 k好数(动态规划)
算法训练 K好数 时间限制:1.0s 内存限制:256.0MB 问题描述如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K = 4,L = 2的时候,所有K好数为11、13、20、22、30、31、33 共7个。由于这个数目很大,请你输出它对1000000007原创 2018-02-26 19:13:22 · 233 阅读 · 0 评论 -
hdu 1069 dp
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1069#include#include#include#include#include#define INF 99999999#define maxn 205#define LL long longusing namespace std;struct node{ int l,w原创 2017-10-28 10:44:18 · 151 阅读 · 0 评论 -
字符串dp codeforces B - Nikita and string
就是看在不更改各字母顺序的情况下,可以组成形如(a),(a+b),(a+b+a)的字符串的最长长度,其实就是子串拼成的a+b+a子串的最长长度拿3个数组记录从s[0]到s[j]的符合条件的最长长度,这三个数组分别表示“a”,"ab"/"ba","aba"三种字符串"a":只要记录字符串中“a”的个数就好了,每次遇到“a”dp[0][j]++;"ab":是由“a”或者“ab”原创 2017-10-28 08:56:22 · 206 阅读 · 0 评论 -
母函数讲解
转载出处:http://blog.csdn.net/xiaofei_it/article/details/17042651hdu 2082#include#include#include#includeusing namespace std;int dp1[55],dp2[55];int v[30];int num[30];void solve(){ memset转载 2017-10-07 10:45:42 · 225 阅读 · 0 评论 -
hdu 2082 (dp)
#include#include#includeusing namespace std;int w[30],num[30],dp[55][55];int main(){ int N; scanf("%d",&N); while(N--) { memset(w,0,sizeof(w)); memset(dp,0,sizeo原创 2017-10-07 09:19:28 · 214 阅读 · 0 评论 -
DP动态规划问题 1300
/* HDU1300 DP 给定n种珠宝 每种珠宝两个数据,num[i]代表数量,price[i]代表单价 购买珠宝时要满足以下购买规则: 单独买:每种珠宝要加上数量10 合并买:可以把连续几种珠宝数量合并,再加上10,单价按照price最大的计算 求出购买所有的珠宝最少要花费多少 思路: 初始化:第一种珠宝 只需要管当前第i种珠宝的购买 购买方法一原创 2017-09-25 22:09:47 · 189 阅读 · 0 评论