------动态规划------
键盘里敲打出的巨人
这个时代带给我太多太多,我也要回馈这个时代!!
展开
-
徐州 icpc 区域赛 M. Kill the tree 树的重心
#include <bits/stdc++.h>using namespace std;#define ll long long#define inf 0x3f3f3f3fconst int mx = 2e5+100;vector<int>ve[mx];int so[mx], sou[mx], sum[mx], n, h[mx];int ff[mx];...原创 2019-12-11 09:22:44 · 254 阅读 · 0 评论 -
G - Alice’s Stamps HDU - 6249 DP k个区间的最大值
题目链接:传送门题意:有m个区间,你选k个使得所选的总区间最大。思路: dp[r][k] 表示以r为结尾选k个区间的最大值。ac代码:#include <cstdio>#include <cmath>#include <algorithm>#include <iostream>#include <string>...原创 2019-11-14 11:37:05 · 211 阅读 · 0 评论 -
E. Yet Another Division Into Teams dp
题目传送门题意给你一堆数字,让你分组,每组至少三个数,每组的价值是组内最大值-最小值,问所有组值得总和最小的分组。思路:只要你发现这个定理即可很快解决这题, 就是6个数必然有两组:例如 a1 < a2 < ...< a6, 一组的情况 a6-a1 > 两组的情况 a6-a4+a3-a1 = a6-a1+a3-a4.. a4比a3 大所以肯定小,之后你在举例...原创 2019-11-11 14:45:15 · 219 阅读 · 0 评论 -
I - Misunderstood … Missing 2018西安赛区icpc 练习赛 dp
题目链接:http://codeforces.com/gym/102056/problem/I题意: 每次有三种选择做n次,问总共打了多少伤害每次攻击力A都会先增加D的成长值。每回合三种操作1. 打出伤害A+a[i]2. D添加b[i]3. A永久添加c[i]明显的dp题,就是有点难d它。。。。需要倒着递推主要状态有 从i开始攻击的轮数j, 所有攻击的轮数之和z...原创 2019-11-06 10:23:42 · 172 阅读 · 0 评论 -
C - Race to 1 Again LightOJ - 1038
题目:https://vjudge.net/contest/277062#problem/C题意:每次可以变成n除以任意它的除数,问最后变成1需要多少次期望。暴力求所有除数dp 一下即可。ac代码#include <cstdio>#include <cstring>#include <vector>#include <iterat...原创 2019-11-04 21:13:16 · 150 阅读 · 0 评论 -
B - Discovering Gold LightOJ - 1030 期望dp 基础水题
写下为了以后不易忘记。题目:https://vjudge.net/problem/LightOJ-1030题意: 从一号点出发,每次抛筛子走不能超过终点(超过重新抛),走到n点结束。每个点都有一定的金子,问最后期望得到多少金子。。。思路:从后往前想,从第n点开始走就只能得到n点的金子, 从n-2开始走可以得到(从n-1出发得到金子期望数)/2+(从n-1出发得到金子期望数)/2 ,往前...原创 2019-11-04 16:00:48 · 193 阅读 · 0 评论 -
C. Constanze's Machine dp水题
题目:http://codeforces.com/contest/1245/problem/CC. Constanze's Machinetime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputConstanze ...原创 2020-02-11 18:29:51 · 299 阅读 · 0 评论 -
CF 977F - Consecutive Subsequence map
题目链接题意:找最长递增连续子序列, d, d+1.输出长度和路径。ac代码:#include <cstdio>#include <string>#include <iostream>#include <map>#include <cmath>#include <cstring>#include <q...原创 2020-02-11 18:48:12 · 134 阅读 · 0 评论 -
A. A Twisty Movement 前缀和 dp
题目链接:https://codeforces.com/problemset/problem/933/Adp[l][r][k] = {l 到 r 末尾为k的最长不上升子序列长度} 完成这个遍历每个区间即可,前用1的个数前缀和,后用2的个数的前缀和,中间这个区间用max(dp[l][r][0], dp[l][r][1]) 表示反转。ac代码:#include <cstdio&g...原创 2019-10-25 20:15:35 · 218 阅读 · 0 评论 -
A - Ivan the Fool and the Probability Theory dp方案数
对于第ii行jj列的格子(i,j)(i,j),如果满足i>1i>1或j>1j>1且(i-1,j)(i−1,j),(i-1,j-1)(i−1,j−1)和(i,j-1)(i,j−1)的颜色已经确定,那么这个格子只会有一种填法。ac 代码:#include<stdio.h>#include <algorithm>...原创 2019-10-21 16:14:23 · 176 阅读 · 0 评论 -
codeforces 750E and 南昌网络赛的类类似 (线段树+矩阵转移dp)
题目链接:http://codeforces.com/problemset/problem/750/e题意: 单组第一行n,q两个整数,表示给你一个长度为n的串q次查询第二行字符串s,表示长度为n的字符串s;后面q行 每行两个整数l,r表示要你输出字符串在[l,r]区间内最少删除几个字符使[l,r]中有2017没有2016,如果不可能则为-1;这题巧妙的利用了矩阵来转移dp方...原创 2019-09-12 11:19:42 · 145 阅读 · 0 评论 -
数位dp---思路构思
用于数位dp 的模式回顾。。。。。看了几个博客没有自己满意的最终都是看代码。。。对数位dp的理解:就是个计数器数位:指的是以一个数的为一位当主要状态的意思dp:就是记录状态而数位dp则就是利用数位的来当记录的状态,然后累加计数;实则为记忆化搜索如何实现:首先你要找到状态的联系,简单的说,例如:数位相加能被10整除的数的个数,它们的联系就是单纯的数位相加取余10等于0,这里你必须要...原创 2019-03-28 11:02:49 · 175 阅读 · 0 评论 -
矩形嵌套(dp水题)
矩形嵌套题目描述:有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c,b<d或者b<c,a<d(相当于旋转X90度)。例如(1,5)可以嵌套在(6,2)内,但不能嵌套在(3,4)中。你的任务是选出尽可能多的矩形排成一行,使得除最后一个外,每一个矩形都可以嵌套在下一个矩形内。输入描述:第一行是一个正正数N(0<...原创 2018-05-26 11:39:58 · 313 阅读 · 0 评论 -
括号匹配(二)(区间dp)
括号匹配(二)题目描述:给你一个字符串,里面只包含"(",")","[","]"四种符号,请问你需要至少添加多少个括号才能使这些括号匹配起来。如:[]是匹配的([])[]是匹配的((]是不匹配的([)]是不匹配的输入描述:第一行输入一个正整数N,表示测试数据组数(N<=10)每组测试数据都只有一行,是一个字符串S,S中只包含以上所说的四种字符,S的长度不超过100输出描述:对于每组测试数据...原创 2018-05-26 10:57:34 · 432 阅读 · 0 评论