摘要:
【原题】Time Limit: 1sec Memory Limit:32MBDescription心宝热爱运动,喜欢爬山。一天他去道场山游玩。杭嘉湖平原多丘陵,心宝手上有一幅地图,是分层设色地形图(地图为长宽均不超过50的矩阵),心宝想算算地图上有多少个山顶他需要翻越。为了方便,地图上地势高度用小写字母'a' - 'z'表示,序号越靠前的字母表示地势越高。山顶的定义是指其东南西北四个相邻地点都没有更高的地势存在即为山顶,若有相邻的一片等高地势,则算做一个山顶,例如一幅地图如下表示:ccccccbbbccbabccbbbcccccc则显然的,地图中a点为山顶。整张 阅读全文
摘要:
【题意】在一个网格上,每个格子里面有不同数量的蚊子。有一只灰常卡哇伊的壁虎,她从顶行走下来,一直走到最后一行,每经过一个格子她就把那个格子里的蚊子吃掉。问能够吃掉的最大蚊子数目是多少。【思路】经鉴定为水题一条,不过体现了动态规划的思想。状态转移:到达每一个格子能够吃掉的最大蚊子数目等于左上,上,右上三个方向格子里能够吃掉的蚊子数目最大值加上该格子的蚊子数。状态转移方程:f[i][j]=MAX(f[i-1][j],f[i-1][j-1],f[i-1][j+1])+m[i][j] 1 #include<cstdio> 2 #include<memory.h> 3 #incl 阅读全文
摘要:
【原题】1342. 开心的金明ConstraintsTime Limit: 1 secs, Memory Limit: 32 MBDescription金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”。今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N元。于是,他把每件物品规定了一个重要度,分为5等:用整数1~5表示,第5等最重要。他还从因特网上查到了每件物品的价格(都是整数元)。他希望在不超过N元(可以等于N元)的前提下,使每件物品的价 阅读全文
摘要:
【题意】最简单直接的0-1背包问题,输入数据个数n,背包容量m,接下来n个数据表示各个具体值,求不超过背包容量能装的最大数量。从此知道有种题叫做动态规划。 1 #include<cstdio> 2 #include<memory.h> 3 #include<algorithm> 4 using namespace std; 5 int main() 6 { 7 int testcase; 8 scanf("%d",&testcase); 9 while(testcase--)10 {11 int n,m;12 ... 阅读全文
摘要:
【原题】Time Limit: 1sec Memory Limit:32MBDescription金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”。今天一早,金明就开始做预算了,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子:主件附件电脑打印机,扫描仪书柜图书书桌台灯,文具工作椅无如果要买归类为附件的物品,必须先买该附件所属的主件。每个主件可以有0个、1个或2个附件。附件不再有从属于自己的附件。金明想买的东西很多,. 阅读全文
摘要:
【题意】给一串数,这一串数可以解码为若干英文字母的组合,比如‘1’对应‘A’,‘26’对应‘Z’,输入保证是合法的,不会出现说有解码不了的情况,求这一串数可以解释为多少种英文字母的组合。【思路】动态规划思想,如果当前字符为‘0’,则dp[i]=dp[i-2],如果当前字符不为‘0’,且与前面的数字组合能构成英文字母,那么dp[i]=dp[i-1]+dp[i-2]。这两种情况中,i=1的时候另外处理。本来不难的题目,因为和前一个字母进行判断的时候条件写错了,纠结了很久…… 1 #include<iostream> 2 #include<cstring> 3 #includ 阅读全文