记录编号 163877 评测结果 AAAAAAAAAA
题目名称 [IOI 1999] 花店橱窗 最终得分 100
用户昵称 Gravatarforever 是否通过 通过
代码语言 C++ 运行时间 0.022 s
提交时间 2015-05-27 08:12:17 内存使用 0.43 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int a[102][102],f[102][102],n,m;
int b[102][102],op[105];
int main()
{  freopen("hana.in","r",stdin);
	freopen("hana.out","w",stdout);
   cin>>n>>m;
   f[0][0]=0;
   for(int i=1;i<=n;++i)
    for(int j=1;j<=m;++j)
     {
			cin>>a[i][j];
			f[i][j]=-0x3fffffff;
     }
   for(int i=1;i<=n;++i)
    f[1][i]=a[1][i];
	int anss=0,d;
   for(int i=1;i<=n;++i)  
    for(int j=i;j<=m-n+i;++j)
     for(int k=1;k<j;++k)//从前往后找最佳方案;
       if(f[i-1][k]+a[i][j]>f[i][j])
         {
                f[i][j]=f[i-1][k]+a[i][j];
                if(f[i][j]>anss&&i==n)
				  {
						anss=f[i][j];
						d=j;
				  }
                b[i][j]=k;
         }
    cout<<anss<<endl;
    for(int i=n;i>=1;--i)
    {
       op[i]=d;
       d=b[i][d];//寻找上一个节点;;
    }
    for(int i=1;i<=n-1;++i)
     cout<<op[i]<<" ";
    cout<<op[n];
    //system("pause");
}