题意:

给出n个怪的生命值,然后n个怪手里有一把枪,给出n*n的矩阵代表第i个怪对第j个怪的伤害值;

现在让你去干掉n个怪,只能平A使怪扣一滴血,干掉目标后,

可以把这个目标的武器拿进口袋然后用这个武器打别的怪

参考:大牛博客

思路:

明明也直到了状压,然后每次对于一个状态;

枚举最后被干掉的怪物,那么对于dp[i] = min(dp[i] , dp[i-(1<<j)] + 先前那个状态对这个 j 怪物的最小枪数 );

所以还要预处理每个状态对每个怪物的最小枪数;

#include <cstdio>
#include <stack>
#include <iostream>
#include <string.h>
#include <algorithm>
using namespace std;
typedef long long LL; const int INF=0x3f3f3f3f;
const int N=1<<15;
int dp[N];
int minnum[N][20];
int mp[20][20];
char s[20];
int ww[20]; int solve(int w,int k)
{
if(!k) return INF;
return (w+k-1)/k;
} int main()
{
int n;
int T;
int cas=1;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n); for(int i=0;i<n;i++)
scanf("%d",&ww[i]); for(int i=0;i<n;i++)
{
scanf("%s",s);
for(int j=0;j<n;j++)
mp[i][j]=s[j]-'0';
} for(int i=0;i<(1<<n);i++)
for(int j=0;j<n;j++)
minnum[i][j]=ww[j]; for(int i=1;i<(1<<n);i++)
{
for(int j=0;j<n;j++) //对于每个人求一个最小数量;
{
if(i&(1<<j))
{
int s=i^(1<<j); //去掉j怪物被杀死的状态;
for(int k=0;k<n;k++)
{
if(s&(1<<k)) //该状态下如果k怪物已经被杀死了;
minnum[s][j]=min(solve(ww[j],mp[k][j]),minnum[s][j]);
}
}
}
} dp[0]=0;//初始化
for(int i=1;i<=(1<<n);i++) //从第二个怪物开始;
{
dp[i]=INF;
for(int j=0;j<n;j++)
{
if(i&(1<<j))
{
int s=i^(1<<j);
dp[i]=min(dp[s]+minnum[s][j],dp[i]);
}
}
}
printf("Case %d: %d\n",cas++,dp[(1<<n)-1]);
}
return 0;
}

最新文章

  1. android-plugmgr源代码分析
  2. 轻松掌握:JavaScript享元模式
  3. JDE910笔记2--OMW项目建立及简单使用
  4. windows 端搭建nfs 服务器
  5. Using the Task Parallel Library (TPL) for Events
  6. C#- 基于Lumisoft.NET组件的POP3邮件接管和删除操纵
  7. 9.27 noip模拟试题
  8. 算法系列之图--DFS
  9. DIV+CSS 让同一行的图片和文字对齐
  10. html5 画个圈
  11. Spring MVC之RequestMapping
  12. mysql truncate、delete与drop区别
  13. POJ Building roads [二分答案 2SAT]
  14. 获取Avrix上Computer Vision and Pattern Recognition的论文,进一步进行统计分析。
  15. 协议系列之IP协议
  16. 修改WordPress后台默认登陆地址提高网站安全性
  17. 解决秒杀活动高并发出现负库存(Redis)
  18. 通过jstack与jmap分析一次线上故障
  19. 应对新型“蠕虫”式比特币勒索软件“wannacry”的紧急措施
  20. Data truncation: Out of range value for column &#39;Quality&#39; at row 1

热门文章

  1. javascript 连续赋值(转载)
  2. Struts2实例详解(转载)
  3. Drawing Images and Text
  4. 【BZOJ3728】PA2014Final Zarowki 贪心
  5. Safair 浏览器cllick事件不生效或者需要双击才生效
  6. Redis相关的内核参数解释与设置
  7. SDUT 2402 水杯最小表面积问题
  8. Gradle build-info.xml not found for module app.Please make sure that you are using gradle plugin &#39;2.0.0-alpha4&#39; or higher.
  9. H3C-L2TP
  10. MAC 地址解析