HDOJ 2167 Pebbles (状态压缩dp)】的更多相关文章

题意:给你一个n*n的矩阵,让你从矩阵中选择一些数是的他们的和最大,规则是:相邻的两个数不能同时取,位置为(i,j)的数与(i+1,j),(i-1,j),(i,j+1),(i,j-1),(i+1,j+1),(i+1,j-1),(i-1,j+1),(i-1,j-1)相邻. 思路:很常见的状态压缩dp,设dp[i][j]表示前i行,第i行状态为j时的最大和,那么dp[i][j] = max(dp[i-1][k]) + (该状态下取第i行的那些数的和). #include<cstdio> #incl…
Pebbles Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 795    Accepted Submission(s): 439 Problem Description You're given an unlimited number of pebbles to distribute across an N x N game boar…
有5个砖块..加上一个空着不放..那么有6种状态..所以很明显的可以用6进制的状态DP... 不过这么做..我觉得我已经能优化的都优化了...还是超时..一看数据范围是100*6..打表先AC了.. 看有大神用3进制状态DP水过..Orz...看了好久没看懂...觉得自己状态DP还是很表面~~ Program: #include<iostream> #include<stdio.h> #include<string.h> #include<set> #inc…
hdu2167 http://acm.hdu.edu.cn/showproblem.php?pid=2167 给定一个N*N的板子,里面有N*N个数字,选中一些数字,使得和最大 要求任意两个选中的数字不相邻,相邻包括上下,左右和对角线相邻. 由于N<=15,用程序判断了一下,每一行的有效状态<1600个,如果记录这些状态,然后每一行枚举当前行的上一行的状态那么极端下有1600*1600*15的复杂度,TLE 所以卡在这里很久,想不到怎么优化. 然后看了别人的代码知道了用邻接表存储哪两个状态是相…
http://acm.hdu.edu.cn/showproblem.php?pid=2167 第一道状态压缩dp,其实就是爆搜,只不过把排除了大量不可能的情况,先用sta保存每行可能的情况,sum[i][j]保存i行j种情况的该行和,然后依次更新dp. #include<iostream> #include<cstring> #include<cstdio> using namespace std; ][<<],dp[][<<],a[][],st…
Pieces Assignment My Tags   (Edit)   Source : zhouguyue   Time limit : 1 sec   Memory limit : 64 M Submitted : 444, Accepted : 156 Background 有一个n*m的棋盘(n.m≤80,n*m≤80)要在棋盘上放k(k≤20)个棋子,使得任意两个棋子不相邻(每个棋子最多和周围4个棋子相邻).求合法的方案总数. Input 本题有多组测试数据,每组输入包含三个正整数n…
Corn Fields Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 4739   Accepted: 2506 Description Farmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M ≤ 12; 1 ≤ N ≤ 12) square parcels. He wants to grow some yumm…
// 此博文为迁移而来,写于2015年7月15日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102w6jf.html 1.前言        动态规划,永远的痛.        好了不扯远了.状态压缩动态规划,其实看名字还是较好理解的.我们在动态规划的时候,最重要的就在于状态的设计和状态转移方程.那么,如果当我们状态过多导致时间或空间不够的饿时候,就可以用到状态压缩.王队(@wyh2000)说状态压缩DP难起来的话会很难…
题意:给定一个合法的八皇后棋盘,现在给定1-10个骑士,问这些骑士不能够相互攻击的拜访方式有多少种. 分析:一开始想着搜索写,发现该题和八皇后不同,八皇后每一行只能够摆放一个棋子,因此搜索收敛的很快,但是骑士的话就需要对每一个格子分两种情况进行,情况非常的多,搜索肯定是会超时的.状态压缩DP就是另外一个思路的,理论上时间复杂度是8*n*2^24,但是由于限制比较多,也就能够解决了.设dp[i][j][p][q]表示第i-1行压缩后的状态是p,第i行压缩后的状态为q,且之前一共使用了j个骑士的方案…
题目描述 阿姆斯特朗回旋加速式阿姆斯特朗炮是一种非常厉害的武器,这种武器可以毁灭自身同行同列两个单位范围内的所有其他单位(其实就是十字型),听起来比红警里面的法国巨炮可是厉害多了.现在,零崎要在地图上布置一片阿姆斯特朗回旋加速式阿姆斯特朗炮,那么在N行M列单位长度大小的地图上,求解阿姆斯特朗回旋加速式阿姆斯特朗炮最大的部署数量和对应部署方案总数. 输入 每组输入一行,为两个整数N,M (N <= 100:M <= 10) 输出 每组一行两个整数, 第一个为阿姆斯特朗回旋加速式阿姆斯特朗炮的个数…