zoukankan      html  css  js  c++  java
  • 挖地雷

    Problem Description

    在一个地图上有n个地窖(n<=200),每个地窖中埋有一定数量的地雷。同时,给出地窖之间的连接路径,并规定路径都是单向的,也不存在可以从一个地窖出发经过若干地窖后又回到原来地窖的路径。某人可以从任一处开始挖地雷,然后沿着指出的连接往下挖(仅能选择一条路径),当无连接时挖地雷工作结束。设计一个挖地雷的方案,使他能挖到最多的地雷。

    Input

    输入有多组数据,每组数据的第一行为一个整数n,表示地窖的个数,第二行为n个地窖中的地雷数。下面多行数据以0,0结束,每行为两个数x和y,表示从x可以到y。

    Output

    对于每组数据输出两行,第一行为挖地雷的顺序,第二行为最多挖出的地雷数

    Sample Input

    6
    5 10 20 5 4 5
    1 2
    1 4
    2 4
    3 4
    4 5
    4 6
    5 6
    0 0

    Sample Output

    3-4-5-6
    34
    【代码】
     1 #include<iostream>
     2 #include<cstdio>
     3 using namespace std;
     4 const int maxx=1001;
     5 int w[maxx],a[maxx][maxx],f[maxx],c[maxx];//w为每个地窖的地雷数目,a为地窖与地窖之间是否连通,f记录从每个地窖开始挖最多能挖多少,c为记录路径 
     6 int main()
     7 {
     8     int n;
     9     scanf("%d",&n);
    10     for(int i=1;i<=n;i++)
    11     scanf("%d",&w[i]);
    12     int x,y;
    13     do
    14     {
    15      scanf("%d%d",&x,&y);
    16      if(x!=0&&y!=0)
    17      a[x][y]=1;    
    18     }while(x!=0&&y!=0);
    19     f[n]=w[n];//最后一个地窖开始能挖的就只有他自己的了,因为没有和它连着的地窖 
    20     for(int i=n-1;i>=1;i--)//从后往前 
    21     {
    22         int l=0,k=0;
    23         for(int j=i+1;j<=n;j++)
    24         {
    25             if(a[i][j]&&f[j]>l)//这两个地窖相连并且要选一条能挖地雷最多的道路 
    26             {
    27                 l=f[j];//找最大 
    28                 k=j;//记录答案 
    29             }
    30         }
    31         f[i]=w[i]+l;//从i从发能挖的地雷 
    32         c[i]=k;//记录前驱 
    33     }
    34     int k=1;
    35     for(int i=1;i<=n;i++)
    36     {
    37         if(f[i]>f[k])//寻找能挖地雷最多的 
    38         k=i;
    39     }
    40     cout<<f[k]<<endl;//输出挖的地雷 
    41     cout<<k;//输出道路 
    42     k=c[k];
    43     while(k!=0)
    44     {
    45         cout<<"-"<<k;
    46         k=c[k];
    47     }
    48     cout<<endl;
    49     return 0;
    50 }
    View Code
  • 相关阅读:
    初识python 2.x与3.x 区别
    装饰器
    函数的进阶
    Spring Boot启动问题:Cannot determine embedded database driver class for database type NONE
    22.Spring Cloud Config安全保护
    23.Spring Cloud Bus 无法更新问题(踩坑) Spring cloud config server Could not fetch remote for master remote
    24.Spring Cloud之Spring Cloud Config及Spring Cloud Bus
    Spring Boot整合Spring Data Elasticsearch 踩坑
    项目中Spring Security 整合Spring Session实现记住我功能
    32.再谈SpringBoot文件上传
  • 原文地址:https://www.cnblogs.com/zzyh/p/6669885.html
Copyright © 2011-2022 走看看