zoukankan      html  css  js  c++  java
  • NOIP2000

    <问题分析>

    状态转移方程 s[k][i][j]=max{s[k-1][i-1][j-1],s[k-1][i][j-1],s[k-1][i-1][j],s[k-1][i][j]}+a[i][k-i]+a[j][k-j] (i<>j)

                     s[k][i][j]=s[k-1][i-1][j]+a[i][k-1]

     1 #include <stdio.h>
     2 #include <string.h>
     3 
     4 int main()
     5 {
     6     int n,tag,i,j,k,a[11][11],s[22][11][11];
     7     scanf("%d",&n);
     8     memset(a,0,11*11*sizeof(int));
     9     while(scanf("%d %d %d",&i,&j,&k),i||j||k)
    10     {
    11        a[i][j]=k;
    12     }
    13     s[1][0][1]=0;
    14     for(k=2;k<=2*n;k++)
    15     {
    16        for(i=1;i<=n;i++)
    17        {
    18           if(k-i>0&&k-i<=n)
    19           for(j=1;j<=n;j++)
    20           {
    21               if(k-j<=0||k-j>n)
    22                 continue;
    23               if(i==j)
    24               {
    25                  s[k][i][j]=s[k-1][i-1][j]+a[i][k-i];
    26                  continue;
    27               }
    28               tag=0;
    29               if(s[k-1][i-1][j-1]>tag)
    30                 tag=s[k-1][i-1][j-1];
    31               if(s[k-1][i-1][j]>tag)
    32                 tag=s[k-1][i-1][j];
    33               if(s[k-1][i][j-1]>tag)
    34                 tag=s[k-1][i][j-1];
    35               if(s[k-1][i][j]>tag)
    36                 tag=s[k-1][i][j];
    37               s[k][i][j]=a[i][k-i]+a[j][k-j]+tag;
    38           }
    39        }
    40     }
    41     printf("%d
    ",s[2*n][n][n]);
    42     while(true);
    43     return 0;
    44 }
  • 相关阅读:
    mysql 存储过程
    python 模块 SQLalchemy
    python 模块 DButils
    转:6410中断控制详解
    ARM中MMU地址转换理解
    ok6410内存初始化
    ARM时钟初始化
    ARM处理器启动流程
    uboot启动流程
    ARM处理器启动流程
  • 原文地址:https://www.cnblogs.com/simplesslife/p/matrix2way.html
Copyright © 2011-2022 走看看