
动态规划
M_Lter
这个作者很懒,什么都没留下…
展开
-
hdu 1024 Max Sum Plus Plus
一开始没摸清题目讲的范围,最后才理解只要m段连续不相交的子序列(不需要把数都用完)求和即可求一个连续子序列之和最大,用动态规划,状态转移方程为dp[j]=max(0,dp[j-1])+num[j] 这题可以先求一个子序列时能得到的dp[]数组,再根据这个数组求加一个子序列时的dp[]数组d[j]=max(pre[j-1],d[j-1])+num[j] #include<...原创 2018-04-15 13:48:13 · 99 阅读 · 0 评论 -
Fire CodeForces - 864E(01背包)
题目链接拿每件物品耗时t,价值为w当总时超过d则不能拿,问最大价值以及取物号(物品标号)。01背包问题,用dp[i][j]代表拿第i个物品用时j的价值,则拿:dp[i][j] = max( dp[i-1][j] , dp[i-1][j-t] + w ) ;不拿:dp[i][j] = dp[i-1][j] 。#include<cstdio>#include&l...原创 2019-05-06 20:24:07 · 208 阅读 · 0 评论 -
Make a Permutation! CodeForces - 864D(贪心)
题目链接用尽可能少的替换次数构成由1~n的数组成大小为n的数组排列,求最小交换次数和最小字典序排列顺序。判断每个次数出现超过1次的数和1~n个数中未使用的数的大小,决定是否替换,详见代码#include<cstdio>#include<cstring>using namespace std;const int N=2e5+5;int a[N],cnt[...原创 2019-05-06 15:58:30 · 185 阅读 · 0 评论 -
Sagheer and Nubian Market CodeForces - 812C (二分+贪心)
题目链接n个拥有基础值的物品,有s块钱,问最多能买多少个物品。物品的价值=基础值+编号(1~n)*cnt(买的个数)。二分思想,从能买一半开始贪心买最便宜的mid个,详见代码。#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>using na...原创 2018-09-28 23:14:30 · 228 阅读 · 0 评论 -
Sagheer, the Hausmeister CodeForces - 812B (dp状态转移)
题目链接从底层最左边开始走,要关闭所有灯(标记为1),每关一个灯花费一分钟,询问关闭所有灯的最短时间。一楼固定从左往右走,以上几层的走法可能是从左往右走再上一层,也可能是从右往左(有可能再往右)再上一层转移方程为:dis[i][0]=min(dis[i-1][0]+2*r[i],dis[i-1][1]+m+1)+1;dis[i][1]=min(dis[i-1][0]+m+1,di...原创 2018-09-28 23:09:40 · 164 阅读 · 0 评论 -
LightOJ - 1079 Just another Robbery( 概率+动规(01背包) )
题目链接给出银行数n,和被抓到的概率P,在已知每个银行被抓的概率下,求在不被抓到的情况下,他最多能够抢多少钱。求最优问题,看样例第一想到的就是动态规划的01背包,就去找了模板。dp[j] 代表抢劫到 j元钱不被抓的概率,dp[j] = max( dp[j], dp[j - b[i].m] )* b[i].p),再和P判断即可,详见代码。那个排序操作可有可无,一开始dp大小只开了1...原创 2018-09-05 21:12:17 · 170 阅读 · 0 评论 -
LightOJ - 1030 Discovering Gold (思维+概率期望+dp)
题目链接N个的格子,每个格子都有黄金权值,淘金者站在第一个位置(当然黄金归它了,概率为1),通过掷骰子得到一个X值,淘金者的位置就会从p变到p+X,然后收走里面的黄金,当位置p+X>N时不作数再掷骰子直到不超过N,到达N位置时淘金结束,求掏得得黄金数期望。每个位置都会影响接下来不超过6个位置的概率(前提长度大于6),即每个位置的期望都是由前面不超过六个位置的期望构成的。位置:1...原创 2018-09-05 19:12:12 · 148 阅读 · 0 评论 -
LightOJ - 1395 A Dangerous Maze (II) (期望+dp)
题目链接题目是LightOJ - 1027 A Dangerous Maze的加强版,即多了一个条件,探险者能记住k个门,也就是在返回k次过程中这几个门不会再走一遍,接下来经过的每个门的概率就会变化,求出去的时间期望。思维跟简单版的相似,每经过一个门出去期望都要考虑两种情况之和:一是能出去,二是返回再走一次才出去。当时,(为返回的门数) 意味着每个返回都能记住,那么记...原创 2018-09-05 18:36:32 · 170 阅读 · 0 评论 -
UVA - 11651 Krypton Number System
题目链接寻找状态转移方程,题解参考处#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>using namespace std;typedef unsigned long long ull;const ull mod=(1ull&...原创 2018-08-12 12:46:40 · 178 阅读 · 0 评论 -
银联高校极客挑战赛 初赛 第二场
目录A 码队GOB 码队弟弟的求和问题C 异世界幻想A 码队GOdp求解#include <bits/stdc++.h>using namespace std;const int N=305;int dp[N][N], n, m,maxlen;char p[N][N];int main() { int T; scanf("%d",&am...原创 2019-07-21 22:40:53 · 257 阅读 · 0 评论