基础概念 我们之前的课程当中接触了最基础的动态规划. 动态规划最重要的就是找到一个状态和状态转移方程. 除此之外,动态规划问题分析中还有一些重要性质,如:重叠子问题.最优子结构.无后效性等. 最优子结构 的概念: 1)如果问题的一个最优解包含了子问题的最优解,则该问题具有最优子结构.当一个问题具有最优子结构的时候,我们就可能要用到动态规划(贪心策略也是有可能适用的). 2)寻找最优子结构时,可以遵循一种共同的模式: 问题的一个解可以是一个选择.例如,装配站选择问题. 假设对一个给定的问题,已知的…
问题描述 X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签. 地宫的入口在左上角,出口在右下角. 小明被带到地宫的入口,国王要求他只能向右或向下行走. 走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿). 当小明走到出口时,如果他手中的宝贝恰好是k件,则这些宝贝就可以送给小明. 请你帮小明算一算,在给定的局面下,他有多少种不同的行动方案能获得这k件宝贝. 输入格式 输入一行3个整数,用空格分开:n…
[pixiv] https://www.pixiv.net/member_illust.php?mode=medium&illust_id=57148470 Descrition 首先很明显是期望dp.但是如何进行转移呢? 对于dp,什么样的状态容易储存呢?怎样又分解成相应的子问题呢?于是发现,对于这个问题,我们需要知道猫的位置到老鼠位置的期望值.与这样的相似的状态有很多.观察数据范围,是可以用二维数组存下的.所以我们用f[i][j]表示猫在i点,老鼠在j点的答案. 转移方程: f[i][j]=…
二进制数(dp,记忆化搜索) 给定k个<=1e6的正整数x(k不大于10),问最小的,能被x整除且只由01组成的数. 首先,dp很好写.用\(f[i][j]\)表示i位01串,模ki的值是j的数是否存在.判断是否有\(f[n][0]\)即可.然而dp的做法没有记忆化搜索快,原因是dp用到了一些冗余状态.如果p被访问过了,说明不用继续搜了. #include <cstdio> #include <string> #include <iostream> using n…
http://poj.org/problem?id=1179 Description Polygon is a game for one player that starts on a polygon with N vertices, like the one in Figure 1, where N=4. Each vertex is labelled with an integer and each edge is labelled with either the symbol + (add…
题目描述 Michael喜欢滑雪.这并不奇怪,因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道在一个区域中最长的滑坡.区域由一个二维数组给出.数组的每个数字代表点的高度.下面是一个例子: 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小.在上面的例子中,一条可行的…
本文出自:http://blog.csdn.net/dr5459 题目地址: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4097 题目意思: 以下内容出自http://blog.csdn.net/shuangde800/article/details/9885147 我是按照他的想法,算法是自己实现的 给一个字符串,可以把连续相同的部分…
心得: 这比赛真的是不要不要的,pending了一下午,也不知道对错,直接做过去就是了,也没有管太多! Problem A: 两只老虎 Description 来,我们先来放松下,听听儿歌,一起“唱”. 两只老虎两只老虎,跑得快跑得快. 一只没有耳朵,一只没有尾巴. 真奇怪,真奇怪. Tmk也觉得很奇怪,因为在他面前突然出现了一群这样的老虎,有的没耳朵,有的没尾巴,不过也有正常的. 现在Tmk告诉你这群老虎的耳朵个数,尾巴条数,以及老虎的腿的数目,问你有多少只是正常的. 其中只有三种老虎: 第一…
题目链接:https://vjudge.net/problem/HYSBZ-1509 我参考的证明的论文:8.陈瑜希<多角度思考 创造性思维>_百度文库  https://wenku.baidu.com/view/f3b19d0b79563c1ec5da710e.html 我参考的博客:BZOJ1509: [NOI2003]逃学的小孩 - Cynthia_wjyi - CSDN博客  https://blog.csdn.net/cynthia_wjyi/article/details/5038…
题目大意:有4堆糖果,每堆有n个,有一只最多能容5个糖果的篮子.现在,要把糖果放到篮子里,如果篮子中有相同颜色的糖果,放的人就可以拿到自己的口袋.如果放的人足够聪明,问他最多能得到多少对糖果. 题目分析:很显然的多阶段决策.定义dp(a,b,c,d)为每堆糖果分别拿掉a.b.c.d块之后最多能获得得糖果对数.则决策有4个,以第一堆为例,状态转移方程为:dp(a,b,c,d)=dp(a+1,b,c,d) (如果拿掉第一堆的第a+1个不会产生相同颜色).dp(a,b,c,d)=dp(a+1,b,c,…