HDU 4778 Gems Fight!(DP)
当我放弃的时候过了。sb啊,卡常数!!!
换了好几个姿势,本来没写预处理,预处理+俩剪枝,尼玛就过了。。
- #include <stdio.h>
- #include <string.h>
- #include <iostream>
- #include <queue>
- using namespace std;
- #define INF 0x3f3f3f3f
- #define LL __int64
- int bag[][];
- int sum[];
- int dp[<<];
- int bg[<<][];
- int g,b,s;
- int temp[];
- int dfs(int x)
- {
- int maxz = ,i,j,flag,st;
- if(dp[x] != -)
- return dp[x];
- for(i = ;i < b;i ++)
- {
- if((x&(<<i)) == )
- {
- flag = ;
- st = ;
- for(j = ;j < g;j ++)
- {
- flag += bg[x|(<<i)][j]/s - bg[x][j]/s;
- st += sum[j]/s - bg[x|(<<i)][j]/s;
- }
- if(flag)
- {
- if(maxz >= st + flag) continue;//剪枝就是这两个剪枝
- if(maxz < dfs(x|(<<i))+flag)
- maxz = dfs(x|(<<i))+flag;
- }
- else
- {
- if(maxz >= st) continue;//剪枝
- if(maxz < st - dfs(x|(<<i)))
- maxz = st - dfs(x|(<<i));
- }
- }
- }
- return dp[x] = maxz;
- }
- int main()
- {
- int i,j,k,n,num,sp,sa,sb;
- while(scanf("%d%d%d",&g,&b,&s)!=EOF)
- {
- if(g == &&b == &&s == )
- break;
- for(i = ;i < (<<b);i ++)
- {
- dp[i] = -;
- for(j = ;j < g;j ++)
- bg[i][j] = ;
- }
- for(i = ;i < b;i ++)
- {
- for(j = ;j < g;j ++)
- {
- bag[i][j] = ;
- }
- }
- for(j = ;j < g;j ++)
- {
- sum[j] = temp[j] = ;
- }
- for(i = ;i < b;i ++)
- {
- scanf("%d",&n);
- for(j = ;j <= n;j ++)
- {
- scanf("%d",&num);
- bag[i][num-]++;
- sum[num-] ++;
- }
- }
- for(i = ;i < (<<b);i ++)//扯淡的预处理
- {
- for(j = ;j < b;j ++)
- {
- if(i&(<<j))
- {
- for(k = ;k < g;k ++)
- bg[i][k] += bag[j][k];
- }
- }
- }
- sp = ;
- for(i = ;i < g;i ++)
- {
- sp += sum[i]/s;
- }
- sa = dfs();
- sb = sp - sa;
- printf("%d\n",sa-sb);
- }
- return ;
- }
HDU 4778 Gems Fight!(DP)的更多相关文章
- hdu 4778 Gems Fight! 博弈+状态dp+搜索
作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4102743.html 题目链接:hdu 4778 Gems Fight! 博弈+状态dp+搜 ...
- Hdu 4778 Gems Fight! (状态压缩 + DP)
题目链接: Hdu 4778 Gems Fight! 题目描述: 就是有G种颜色,B个背包,每个背包有n个宝石,颜色分别为c1,c2............两个人轮流取背包放到公共容器里面,容器里面有 ...
- hdu 4778 Gems Fight! 状压dp
转自wdd :http://blog.csdn.net/u010535824/article/details/38540835 题目链接:hdu 4778 状压DP 用DP[i]表示从i状态选到结束得 ...
- hdu 4778 Gems Fight! 状态压缩DP
Gems Fight! Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 327680/327680 K (Java/Others)T ...
- HDU 4778 Gems Fight! (2013杭州赛区1009题,状态压缩,博弈)
Gems Fight! Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 327680/327680 K (Java/Others)T ...
- hdu 4778 Gems Fight!
第一次写状压dp-- 题意:http://blog.csdn.net/dyx404514/article/details/15506601 状压dp+博弈吧-- #include<iostrea ...
- HDU 4778 状压DP
一看就是状压,由于是类似博弈的游戏.游戏里的两人都是绝对聪明,那么先手的选择是能够确定最终局面的. 实际上是枚举最终局面情况,0代表是被Bob拿走的,1为Alice拿走的,当时Alice拿走且满足变换 ...
- hdu 6169 gems gems gems【DP】
题目链接:hdu 6169 gems gems gems Now there are n gems, each of which has its own value. Alice and Bob pl ...
- hdu 4778 Rabbit Kingdom(减少国家)
题目链接:hdu 4778 Rabbit Kingdom 题目大意:Alice和Bob玩游戏,有一个炉子.能够将S个同样颜色的宝石换成一个魔法石.如今有B个包,每一个包里有若干个宝石,给出宝石的颜色. ...
随机推荐
- APP消息推送:通知和透传
目前市场上的消息推送方式有两种:通知和透传.什么是透传?透传即是透明传送,即传送网络无论传输业务如何,只负责将需要传送的业务传送到目的节点,同时保证传输的质量即可,而不对传输的业务进行处理.透传消息, ...
- android:id="@id/resid" , andorid:id="@+id/resid" 的区别
的区别?android:id="@id/resid" // 引用现有的资源idandorid:id="@+id/resid" // 新增一个资源id i ...
- 拷贝,集合,函数,enumerate,内置函数
1.拷贝 字符串和数字.赋值 id一样 import copy #提供拷贝功能 copy.copy() #原来的和现在的一起修改,不用修改时用浅copy,节省内存,复制最外层 copy.deepcop ...
- poj 1003:Hangover(水题,数学模拟)
Hangover Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 99450 Accepted: 48213 Descri ...
- HDU3359 Kind of a Blur(高斯消元)
建立方程后消元 #include<cstdio> #include<iostream> #include<cstdlib> #include<cstring& ...
- NS 802.11函数分析(一)
recv函数有两个作用,不仅是接收其他节点发送的包,而且当节点接收到其他包的时候也会调用recv() 首先给出NS2中recv的源码,和一些注释: void Mac802_11::recv(Packe ...
- hdu 4389 数位dp
求区间内满足x%fx==0的数的个数,fx为该数各个位数上的数字之和Sample Input21 1011 20 Sample OutputCase 1: 10Case 2: 3 大小不是你想开,想开 ...
- Mac系统修改Intellij Idea默认JDK版本
Intellij IDEA 默认情况下,使用的jdk的版本是1.6,当第一次启动IDEA的时候,如果系统中未安装jdk,则系统会自动到苹果官网下载jdk安装文件.如果你的系统已经安装了jdk1.7或是 ...
- 通过PID获取进程路径的几种方法
通过PID获取进程路径的几种方法 想获得进程可执行文件的路径最常用的方法是通过GetModuleFileNameEx函数获得可执行文件的模块路径这个函数从Windows NT 4.0开始到现在的Vis ...
- EventBus代替Intent将复杂对象传递给下一个即将启动的Activity
我觉得EventBus确实非常好,把我们从序列化中解脱出来,即使不序列化也能在界面间传递数据,但是有个前提,那是两个界面都已经存在并且注册了EventBus.而即将启动的下一个Activity就非常尴 ...