码迷,mamicode.com
首页 > 其他好文 > 详细

挖地雷

时间:2018-11-03 02:03:53      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:clu   https   \n   map   main   print   开始   路径   new   

 

传送门:https://www.luogu.org/problemnew/show/P2196

逆推

#include<cstdio>
using namespace std;
int n,f[25],c[25],a[25],x,y,t,k,ans,map[25][25];
int main()
{
    scanf("%d",&n);
    for(int i = 1;i <= n;i++) scanf("%d",&a[i]);
    for(int i = 1;i < n;i++)
        for(int j = i+1;j <= n;j++)
            scanf("%d",&map[i][j]);
            
    f[n] = a[n];
    for(int i = n - 1;i >= 1;i--)
    {
        t = 0,k = 0;
        for(int j = i+1;j <= n;j++)
        {
            if(map[i][j] && f[j] > t)
            {
                t = f[j];//记录最大值 
                k = j;//记录路径 
            }
        }
        f[i] = t + a[i];//更新最大值 
        c[i] = k; //保存路径 
    }
    k = 1;
    for(int j = 2;j <= n;j++)
    {
        if(f[j] > f[k]) k = j;//找到从哪个结点开始挖能获得最大数地雷 
     }
    ans = f[k];
    printf("%d",k);
    k = c[k];//开始找路径 
    while(k != 0)
    {
        printf(" %d",k);
        k = c[k];
    }
    printf("\n%d",ans);
    return 0;
}

 

挖地雷

标签:clu   https   \n   map   main   print   开始   路径   new   

原文地址:https://www.cnblogs.com/peppa/p/9898826.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!