2015年7月24日

Travel(HDU 4284状压dp)

摘要: 题意:给n个城市m条路的网图,pp在城市1有一定的钱,想游览这n个城市(包括1),到达一个城市要一定的花费,可以在城市工作赚钱,但前提有工作证(得到有一定的花费),没工作证不能在该城市工作,但可以走,一个城市只能工作一次,问pp是否能游览n个城市回到城市1.分析:这个题想到杀怪(Survival(Z... 阅读全文

posted @ 2015-07-24 22:00 积跬步、至千里 阅读(112) 评论(0) 推荐(0) 编辑

Clear All of Them I(HDU 3920状压dp)

摘要: 题意:给有2*n个敌人的位置,枪在(0,0)位置,一次能消灭两个敌人,耗费能量为枪到一个敌人,由这个敌人再到另个敌人的的距离和,求消灭所有敌人最小耗费能量。分析:一次枚举状态的两位即可#include #include #include #include #include #include #inc... 阅读全文

posted @ 2015-07-24 21:40 积跬步、至千里 阅读(149) 评论(0) 推荐(0) 编辑

方格取数(1)(HDU 1565状压dp)

摘要: 题意:给你一个n*n的格子的棋盘,每个格子里面有一个非负数。从中取出若干个数,使得任意的两个数所在的格子没有公共边,就是说所取的数所在的2个格子不能相邻,并且取出的数的和最大。分析:直接枚举压缩后的所有情况超时,所以先把行所有可能的情况处理并得到该情况的对应的和,状态只与上一行状态有关,所有用两个数... 阅读全文

posted @ 2015-07-24 21:26 积跬步、至千里 阅读(182) 评论(0) 推荐(0) 编辑

Doing Homework(HDU 1074状压dp)

摘要: 题意:给你n个要做的作业,它们的名字、期限、可完成所需天数(必须连续)在规定期限不能完成要扣分(每天一分)求做作业顺序使扣分最少。分析:作业数量较少,用状态压缩,做到第i种作业花费的天数dp[i].t,最小扣分dp[i].sc,当前完成作业标号dp[i].now,和之前完成的作业的情况dp[i].p... 阅读全文

posted @ 2015-07-24 21:12 积跬步、至千里 阅读(158) 评论(0) 推荐(0) 编辑

Tourism Planning(HDU 4049状压dp)

摘要: 题意:n个朋友去游览m个城市,给出每个人对每个城市的兴趣值,和每人去每个城市的花费,如果两人在一个城市有一个价值,若多于2人这这个价值是任意两人产生价值的总和。在去每个城市的过程中人可以随便离开,也可以一个城市也不游览,求兴趣值总和+产生价值总和-总花费 最大。分析:开始读错题意了,白白浪费了一个小... 阅读全文

posted @ 2015-07-24 20:03 积跬步、至千里 阅读(203) 评论(0) 推荐(0) 编辑

Long Dominoes(ZOJ 2563状压dp)

摘要: 题意:n*m方格用1*3的方格填充(不能重叠)求有多少种填充方法分析:先想状态,但想来想去就是觉得不能覆盖所有情况,隔了一天,看看题解,原来要用三进制 0 表示横着放或竖放的最后一行,1表示竖放的中间一行 2表示竖放的第一行。 阅读全文

posted @ 2015-07-24 19:36 积跬步、至千里 阅读(106) 评论(0) 推荐(0) 编辑

Most Powerful(ZOJ 3471状压dp)

摘要: 题意:n个原子,两两相撞其中一个消失,产生能量,给出任意两原子相撞能产生的能量,求能产生的最大能量。分析:dp[i]表示情况为i时产生的最大能量/*#include #include #include #include #include #include #include #include #inc... 阅读全文

posted @ 2015-07-24 18:28 积跬步、至千里 阅读(168) 评论(0) 推荐(0) 编辑

Survival(ZOJ 2297状压dp)

摘要: 题意:有n个怪,已知杀死第i个怪耗费的血和杀死怪恢复的血,和杀死boss耗的血,血量不能超过100,若过程中血小于0,则失败,问是否能杀死boss(boss最后出现).分析:就是求杀死n个怪后剩余的最大血量 dp[i]表示杀怪情况为i(0未杀,1已杀)时剩余最大血量,注意血量上限为100,过程中血小... 阅读全文

posted @ 2015-07-24 17:14 积跬步、至千里 阅读(266) 评论(0) 推荐(0) 编辑

Islands and Bridges(POJ 2288状压dp)

摘要: 题意:给你一个图和每个点的价值,边权值为连接两点权值的积,走哈密顿通路,若到达的点和上上个点相连则价值加三点乘积,求哈密顿通路的最大价值,和最大价值哈密顿通路的条数。分析:开始看这个题很吓人,但想想这个题状态好确定dp[i][j][k]表示 i已走过点的情况,当前点为j前一点为k所产生的最大价值,枚... 阅读全文

posted @ 2015-07-24 16:59 积跬步、至千里 阅读(126) 评论(0) 推荐(0) 编辑

Hie with the Pie(POJ 3311状压dp)

摘要: 题意:披萨店给n个地方送披萨,已知各地方(包括披萨店)之间花费的时间,求送完所有地方并回到店花费的最小时间分析:状态好确定dp[i][j],i中1表示地方已送过,否则为0,j为当前状态最后一个送过的地方,注意怎么走才算最小时间,当然是走最短路,点很少由floyd求出各点最短路求回到店的最小时间,从店... 阅读全文

posted @ 2015-07-24 16:20 积跬步、至千里 阅读(1015) 评论(0) 推荐(0) 编辑

炮兵阵地(POJ 1185状压dp)

摘要: 题意:n*m地图'H'能放'p'不能放,布兵的方格上下左右不能布兵,给你地图求最大布兵数分析:关系到前两行,所以dp[i][j][k]第i行状态为j,i-1行状态为k时的最大布兵数, 先求出所有可行的状态,统计出其布兵数。#include #include #include #include #in... 阅读全文

posted @ 2015-07-24 15:59 积跬步、至千里 阅读(163) 评论(0) 推荐(0) 编辑

Corn Fields(POJ 3254状压dp)

摘要: 题意:n*m网格1能放0不能放 放的格子不能相邻 求一共多少种可放的方案。分析:dp[i][j]第i行可行状态j的的最大方案数,枚举当前行和前一行的所有状态转移就行了(不放牛也算一种情况)#include #include #include #include #include #include #i... 阅读全文

posted @ 2015-07-24 15:42 积跬步、至千里 阅读(151) 评论(0) 推荐(0) 编辑

Mondriaan's Dream(POJ 2411状态压缩dp)

摘要: 题意:用1*2的方格填充m*n的方格不能重叠,问有多少种填充方法分析:dp[i][j]表示i行状态为j时的方案数,对于j,0表示该列竖放(影响下一行的该列),1表示横放成功(影响下一列)或上一列竖放成功。状态转移时,枚举每一行可能的状态上一行取反得下一行能放的状态。#include #include... 阅读全文

posted @ 2015-07-24 15:09 积跬步、至千里 阅读(139) 评论(0) 推荐(0) 编辑

导航