zoukankan      html  css  js  c++  java
  • LightOJ1037 Agent 47(状压DP)

    • dp[S]表示已经消灭目标集合为S的最少射击数
    • dp[0]=0
    • dp[S]=min( dp[S'] + min( health[i] , health[i]/demage[j][i] ) )  其中S-S'={i},j∈S'
     1 #include<cstdio>
     2 #include<cstring>
     3 #include<algorithm>
     4 using namespace std;
     5 #define INF (1<<29)
     6 int d[1<<15],a[15][15],b[15];
     7 int main(){
     8     int t,n;
     9     scanf("%d",&t);
    10     for(int cse=1; cse<=t; ++cse){
    11         scanf("%d",&n);
    12         for(int i=0; i<n; ++i) scanf("%d",b+i);
    13         for(int i=0; i<n; ++i){
    14             for(int j=0; j<n; ++j) scanf("%1d",&a[i][j]);
    15         }
    16         for(int i=1; i<(1<<n); ++i) d[i]=INF;
    17         for(int i=1; i<(1<<n); ++i){
    18             for(int j=0; j<n; ++j){
    19                 if(((i>>j)&1)==0) continue;
    20                 int time=b[j];
    21                 for(int k=0; k<n; ++k){
    22                     if(j==k || ((i>>k)&1)==0 || a[k][j]==0) continue;
    23                     time=min(time,b[j]/a[k][j]+(b[j]%a[k][j]!=0));
    24                 }
    25                 d[i]=min(d[i],d[i^(1<<j)]+time);
    26             }
    27             
    28         }
    29         printf("Case %d: %d
    ",cse,d[(1<<n)-1]);
    30     }
    31     return 0;
    32 }
  • 相关阅读:
    GC(垃圾分代收集)
    排序算法总结
    Redis中的数据结构
    事务的隔离性(续篇)
    手写Spring mvc框架 (二)
    MySql日志与事务的隔离级别
    手写Spring mvc框架 (一)
    IO流
    随笔三(Ajax)
    关于博主noble_
  • 原文地址:https://www.cnblogs.com/WABoss/p/5130512.html
Copyright © 2011-2022 走看看