zoukankan      html  css  js  c++  java
  • uva10604 Chemical Reaction(DP)

    题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=11&page=show_problem&problem=1545

    #include <iostream>
    #include <cstring>
    #include <cstdio>
    #include <vector>
    #include <queue>
    #define ll long long
    using namespace std;
    int change[12][12];
    ll w[12][12],dp[11][11][11][11][11][11];
    bool vis[12];
    int a[12];
    vector<int> v;
    int t,n,m;
    void read(){
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
           for(int j=1;j<=n;j++){
              scanf("%d%lld",&change[i][j],&w[i][j]);
           }
        }
        v.clear();
        for(int i=0;i<=8;i++) v.push_back(0);
        scanf("%d",&m);
        for(int i=1;i<=m;i++){
           scanf("%d",&a[i]);
           v[a[i]]++;
        }
        char str;
        cin>>str;
    }
    ll DP(){
        if(v[1]+v[2]+v[3]+v[4]+v[5]+v[6]==1) return 0;
        if(dp[v[1]][v[2]][v[3]][v[4]][v[5]][v[6]]!=-1) return dp[v[1]][v[2]][v[3]][v[4]][v[5]][v[6]];
        ll ret=1e17;
        for(int i=1;i<=6;i++){
           if(v[i]==0) continue;
           for(int j=1;j<=6;j++){
               v[i]--;
               if(v[j]==0) {v[i]++;continue;}
               v[j]--;
               v[change[i][j]]++;
               //cout<<i<<" "<<j<<" "<<change[i][j]<<endl;
               ret=min(ret,DP()+w[i][j]);
               v[i]++;
               v[j]++;
               v[change[i][j]]--;
           }
        }
        return dp[v[1]][v[2]][v[3]][v[4]][v[5]][v[6]]=ret;
    }
    void gao(){
        memset(dp,-1,sizeof dp);
        printf("%lld
    ",DP());
    }
    int main(){
        //freopen("10604","r",stdin);
        scanf("%d",&t);
        for(int ca=1;ca<=t;ca++){
            read();
            gao();
        }
        return 0;
    }
    uva10604
  • 相关阅读:
    车厢重组
    军事机密
    士兵站队
    归并排序
    输油管道
    冒泡排序
    快排
    烦人的幻灯片(确实烦人啊)
    奖金(类拓扑排序)
    能量项链
  • 原文地址:https://www.cnblogs.com/wonderzy/p/3541905.html
Copyright © 2011-2022 走看看