poj 2923(状态压缩+背包)】的更多相关文章

比较巧妙的一道题目,拿到题目就想用暴力直接搜索,仔细分析了下发现复杂度达到了2^n*n! ,明显不行,于是只好往背包上想. 于是又想二分找次数判断可行的方法,但是发现复杂度10^8还是很悬... 然后学习了这种背包状压的好思路, 巧妙的转化成了背包的模型. 一道经典的题目!   Relocation Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1664   Accepted: 678 Description Emma…
题意:就是给了你一些货物的重量,然后给了两辆车一次的载重,让你求出最少的运输次数. 分析:首先要从一辆车入手,搜出所有的一次能够运的所有状态,然后把两辆车的状态进行合并,最后就是解决了,有两种方法: 1.组合解决: 代码实现: #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; ]; ],st2[],st[],num1,n…
Q: 如何判断几件物品能否被 2 辆车一次拉走? A: DP 问题. 先 dp 求解第一辆车能够装下的最大的重量, 然后计算剩下的重量之和是否小于第二辆车的 capacity, 若小于, 这 OK. Description Emma and Eric are moving to their new house they bought after returning from their honeymoon. Fortunately, they have a few friends helping…
题意 给定平面直角坐标系内的N(N <= 20)个点,每四个点构成一个正方形可以消去,问最多可以消去几个点. 思路 比赛的时候暴力dfs+O(n^4)枚举写过了--无意间看到有题解用状压DP(这才是正解吧T_T),然后自己才恍然大悟- --- 点不多嘛,用一个20位的整数表示各个点.先O(n^4)枚举出所有正方形情况,然后把这20位当背包,每种情况的二进制位当物品,做01背包就可以了. 似乎遇到N = 10+.20+的都应该想想状态压缩>.<-- 代码 [cpp] #include &l…
http://poj.org/problem?id=3254 题意:有一个n*m的农场(01矩阵),其中1表示种了草可以放牛,0表示没种草不能放牛,并且如果某个地方放了牛,它的上下左右四个方向都不能放其他的牛, 问总共有多少种放牛方案??(不放也是一种方案) 状态压缩讲的好的博客 分析:利用状态压缩进行求解,先筛选出每行所有的可能状态,然后将每行与所有可行状态进行比较. dp[i][j]表示当第i行的状态为j时前i行的放牛方案总数. 所以状态转移方程便是 dp[i][j] = dp[i][j]+…
1. 为何状态压缩: 棋盘规模为n*m,且m≤10,如果用一个int表示一行上棋子的状态,足以表示m≤10所要求的范围.故想到用int s[num].至于开多大的数组,可以自己用DFS搜索试试看:也可以遍历0~2^m-1,对每个数值的二进制表示进行检查:也可以用数学方法(?) 2. 如何构造状态: 当然,在此之前首先要想到用DP(?).之后,才考虑去构造状态函数f(...). 这里有一个链式的限制 :某行上的某个棋子的攻击范围是2.即,第r行的状态s[i],决定第r-1行只能取部分状态s[p]:…
题目链接 Emma and Eric are moving to their new house they bought after returning from their honeymoon. Fortunately, they have a few friends helping them relocate. To move the furniture, they only have two compact cars, which complicates everything a bit.…
题目直达车:   POJ 1185 炮兵阵地 分析: 列( <=10 )的数据比较小, 一般会想到状压DP. Ⅰ.如果一行10全个‘P’,满足题意的状态不超过60种(可手动枚举). Ⅱ.用DFS搜出所有可能表示状态的整数(二进制1表示可以放,0则不能). Ⅲ.对每一行的地行进行状态处理(p[i]表示第i行地形的状态),二进制‘H’转1,‘P’转0: Ⅳ.用dp[i][j][k]表示第i行,且i行状态为j,i-1行状态为k时,最多能放置的量. Ⅴ.对于第i行的可行状态必须满足: ⒈  j &…
http://poj.org/problem?id=1324 Holedox Moving Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 17042   Accepted: 4065 Description During winter, the most hungry and severe time, Holedox sleeps in its lair. When spring comes, Holedox wakes…
Judges' response Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 741    Accepted Submission(s): 429 Problem Description The contest is running and the judges is busy watching the progress of the…