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

    题目背景

    NOIp1996提高组第三题

    题目描述

    在一个地图上有N个地窖(N<=20),每个地窖中埋有一定数量的地雷。同时,给出地窖之间的连接路径。当地窖及其连接的数据给出之后,某人可以从任一处开始挖地雷,然后可以沿着指出的连接往下挖(仅能选择一条路径),当无连接时挖地雷工作结束。设计一个挖地雷的方案,使某人能挖到最多的地雷。

    输入输出格式

    输入格式:

    输入文件mine.in有若干行。

    第1行只有一个数字,表示地窖的个数N。

    第2行有N个数,分别表示每个地窖中的地雷个数。

    第3行至第N+1行表示地窖之间的连接情况:

    第3行有n-1个数(0或1),表示第一个地窖至第2个、第3个、…、第n个地窖有否路径连接。如第3行为1 1 0 0 0 … 0,则表示第1个地窖至第2个地窖有路径,至第3个地窖有路径,至第4个地窖、第5个、…、第n个地窖没有路径。

    第4行有n-2个数,表示第二个地窖至第3个、第4个、…、第n个地窖有否路径连接。

    … …

    第n+1行有1个数,表示第n-1个地窖至第n个地窖有否路径连接。(为0表示没有路径,为1表示有路径)。

    输出格式:

    输出文件wdl.out有两行数据。

    第一行表示挖得最多地雷时的挖地雷的顺序,各地窖序号间以一个空格分隔,不得有多余的空格。

    第二行只有一个数,表示能挖到的最多地雷数。

    输入输出样例

    输入样例#1: 复制
    5
    10 8 4 7 6
    1 1 1 0
    0 0 0
    1 1
    1
    
    输出样例#1: 复制
    1 3 4 5
    27


    这题题意没说清楚,应该是单向图(单向图几乎就没难度)

    #include<bits/stdc++.h>
    using namespace std;
    #define For(i,a,b) for(int i=a;i<=b;i++)
    #define FFor(i,a,b) for(int i=a;i>=b;i--)
    #define ll long long
    #define mem(a,b) memset(a,b,sizeof(a))
    #define mod 100000000
    #define maxn 1000005
    
    int n;
    int a[25][25];
    int f[25];
    int v[25];
    int res[25];
    int x;
    int ans=0;
    int sx=0;
    int t[25];
    
    int main()
    {
        cin>>n;
        For(i,1,n)
        cin>>v[i];
        For(i,1,n)
        {
            For(j,i+1,n)
            {
                cin>>a[i][j];
            }
        }
        FFor(i,n,1)
        {
            f[i]=v[i];
            For(j,i+1,n)
            {
                if(a[i][j]&&f[j]+v[i]>f[i])
                {
                    f[i]=f[j]+v[i];
                    t[i]=j;
                }
            }
            if(ans<f[i]){
            ans=f[i];
            sx=i;
            }
        }
        int p=sx;
       while(p){
        cout<<p<<" ";
        p=t[p];
       }
       cout<<endl;
        cout<<ans;
    
        return 0;
    }
  • 相关阅读:
    The Python Standard Library
    Python 中的round函数
    Python文件类型
    Python中import的用法
    Python Symbols 各种符号
    python 一行写多个语句
    免费SSL证书(https网站)申请,便宜SSL https证书申请
    元宇宙游戏Axie龙头axs分析
    OLE DB provider "SQLNCLI10" for linked server "x.x.x.x" returned message "No transaction is active.".
    The operation could not be performed because OLE DB provider "SQLNCLI10" for linked server "xxx.xxx.xxx.xxx" was unable to begin a distributed transaction.
  • 原文地址:https://www.cnblogs.com/planche/p/8650479.html
Copyright © 2011-2022 走看看