zoukankan      html  css  js  c++  java
  • B

    /*其实DP题最重要的就是找到状态 转移 方程,懂得这写再刷刷水体=题加深印象,应该没什么问题了;*/ 

    这道水题着实让我一阵痛啊!!

     1 #include<stdio.h>
     2 # define N (1<<16) +100
     3 
     4 int dp[20][N];
     5 int max (int x,int y)
     6 {
     7     return x>y?x:y;
     8 }
     9 int main ()
    10 {
    11     int T,i,j,n,a[20][20],p;
    12     while(scanf("%d",&T)!=EOF)
    13     {
    14         for(p=1;p<=T;p++)
    15         {
    16             scanf("%d",&n);
    17             for(i=1;i<=n;i++)
    18             {
    19                 for(j=1;j<=n;j++)
    20                 {
    21                     scanf("%d",&a[i][j]);
    22                 }
    23             }
    24             for( i = 1; i <= n; i++)  
    25                  for( j = 1; j <=(1<<n); j++) dp[i][j] = -1; 
    26             for(i=1;i<=n;i++)dp[1][1<<(i-1)]=a[1][i];
    27             for(i=2;i<=n;i++)
    28             {
    29                 for(j=0;j<(1<<n);j++)
    30                 {
    31                     //printf("-----%d+++++
    ",j);
    32                     if(dp[i-1][j]!=-1)
    33                     {
    34                         for(int k=1;k<=n;k++)
    35                         {
    36                             if(!(j&(1<<(k-1))))
    37                             {
    38                                 //printf("+++++%d-----
    ",1<<k-1);
    39                                 dp[i][j|(1<<(k-1))]=max(dp[i][j|(1<<(k-1))],dp[i-1][j]+a[i][k]);
    40                             }
    41                         }
    42                     }
    43                 }
    44             }printf("Case %d:",p);
    45             printf(" %d
    ",dp[n][(1<<n)-1]);
    46         }
    47     }
    48 }
  • 相关阅读:
    ES6入门详解(二) 解构赋值
    python 入门简述
    webpack4x 简述
    ES6入门详解(一) let const
    关于HTML的简述
    按照in条件排序
    Oracle 优化效率
    input输入框校验
    <a>标签操作
    svn安装
  • 原文地址:https://www.cnblogs.com/ace-top/p/3265042.html
Copyright © 2011-2022 走看看