dp
文章平均质量分 84
xiaohuihuicb
分享快乐
展开
-
HDU1565—方格取数(1)——状压DP
Problem Description 给你一个n*n的格子的棋盘,每个格子里面有一个非负数。 从中取出若干个数,使得任意的两个数所在的格子没有公共边,就是说所取的数所在的2个格子不能相邻,并且取出的数的和最大。 Input 包括多个测试实例,每个测试实例包括一个整数n 和n*n个非负数(n Output 对于每个测试实例,输出可能取得的最大的和 Sample原创 2015-07-30 19:59:32 · 526 阅读 · 0 评论 -
uva 11795 Mega Man's Mission(dp专组L题)
Mega Man is off to save the world again. His objective isto kill the Robots created by Dr. Wily whose motive is toconquer the world. In each mission, he will try to destroya particular Robot. Initially, Mega Man is equipped witha weapon, called the “Mega B原创 2016-05-03 22:13:15 · 603 阅读 · 0 评论 -
uva 1099 状态压缩(dp专组E)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=23305 题意:有x*y的矩阵块,问能否把该矩阵切成n块大小分别为a0,a1,a(n-1的小块。每一刀切到底。 解题分析: 现在我们有任意a*b(a A. 如果x = 1,那么可以将矩阵块切成x个小块。 B .否则我们切一刀把矩阵块分成两个子块即把x原创 2016-05-02 14:59:46 · 401 阅读 · 0 评论 -
uva -11825 Hackers' Crackdown(dp专题C)
题目链接http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=18913 题目大意:黑客入侵了一个包含n台电脑的网络,每台电脑上都运行了相同的n种服务,每台电脑直接相连一些其他的电脑。黑客可以对每台电脑安装一种病毒k(一台电脑只能安装一种),病毒会导致与该台电脑直接相连的(包括本身)电脑无法提供第k种服务,当网络中没有电脑原创 2016-05-02 00:17:34 · 559 阅读 · 0 评论 -
uva 11552 dp专题I题
链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=28550 题意: 给出一个字符串, 并且给出一个k, 并且保证字符串可以分成k段, 每段等长. 每段里面的字符可以任意排列, 但是段与段之间顺序不变, 组合之后要使得字符串里面的块数最少(相同的字符放在一起可以统计为一块 一个字符也可以单独成块). 解原创 2016-05-03 15:33:41 · 401 阅读 · 0 评论 -
uva 10534 (dp专组H题)
题意:给一个长度为n的数字序列A,找到一个长度为2*k+1的子序列,使得前k+1个数单调上升,后k+1个数单调递减。输出2*k+1。 题解: 用cnt1[i]记录给定数组A到第i个元素,最长上升子序列的长度。求最长上升子序列的长度链接:http://blog.csdn.net/sinat_30062549/article/details/47193899 翻转数组A得到数组B 用cnt2[原创 2016-05-02 19:36:49 · 357 阅读 · 0 评论 -
uva 1424 (dp专组G题)
题意, 给定一个包含n(n 题解: 用矩阵a存图,如果i,j之间有边置a[i][j] = a[j][i] = 1,并把正对角线也置1,等价于点和它本身连线。 用数组f存给定的序列A 用dp[i][k]表示在第i位为k时需要修改的最小的次数。 则可知dp[0][i] = (f[i]!=i). 动态转移方程为dp[i][k] = min(dp[i][k],dp[i-1][j] + f原创 2016-05-02 18:12:09 · 474 阅读 · 0 评论 -
Contest1143 - 计算思维实训-ACM程序设计练习
点击打开链接#include using namespace std; long long dp[10000]; void dpp(int n){ dp[0] = 0; dp[1] = 1; for(int i = 2;i<=47;i++){ dp[i] = dp[i-1]+dp[i-2]; } } int main(){ int n; dpp(47); while(cin>>n原创 2016-01-04 20:18:07 · 446 阅读 · 0 评论 -
shuoj-小6的多米诺骨牌-双向dp
Description 小6有一副多米诺骨牌,它们的高度不一,且不计厚度。 小6将这些骨牌从左到右排成一排立起来,如果向左或者向右推倒其中一个骨牌,那么它碰到左边或者右边的骨牌会一起连续倒下。 也就是说,每个骨牌只能向左或者向右倒下。 小6想知道,最少需要直接推倒多少骨牌,才能把所有的骨牌全都放倒。 Input 第一行是一个整数T,表示数据组数。(T≤20) 每组输入中的原创 2015-08-03 23:47:20 · 2213 阅读 · 0 评论 -
NOIP2002-过河卒—经典的dp思想
Description 如图,A 点有一个过河卒,需要走到目标 B 点。卒行走规则:可以向下、或者向右。同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点。例如上图 C 点上的马可以控制 9 个点(图中的P1,P2 … P8 和 C)。卒不能通过对方马的控制点。 棋盘用坐标表示,A 点(0,0)、B 点(n,m)(n,m原创 2015-08-02 17:03:38 · 1436 阅读 · 0 评论 -
shuoj1936-D序列—最长上升子序列
Description 已知两个长度为N的数组A和B,下标从0标号至N-1。 现在定义一种D序列 (假设长度为L),这种序列满足下列条件: 1. 0 2. A[D[i]] 3. B[D[i]] > B[D[i+1]] (0 求满足条件的D序列的最大长度。 (其实这种序列叫做D序列的原因是:这道题是D题) Input 多组数据,每组数据第一行是一个整数N。(1原创 2015-08-02 00:08:23 · 1121 阅读 · 1 评论 -
POJ-2342::Anniversary party-树形DP
Description There is going to be a party to celebrate the 80-th Anniversary of the Ural State University. The University has a hierarchical structure of employees. It means that the supervisor rela原创 2015-07-30 15:40:06 · 467 阅读 · 0 评论 -
dp专题
codeforces 687C The Values You Can Make 题意: 给n枚硬币,和一个数k。求能够组成总和为k的全部子集的子集能够组成的数字可以是多少。 样例: 输入: 3 50 25 25 50 输出: 3 0 25 50 很普通的dp。 dp[i][j][y]表示前 i 个硬币是否能够有能够组成总和为j的子原创 2016-07-03 20:35:03 · 560 阅读 · 0 评论