题目背景

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

动规,dp[i]表示到i点最大地雷数。

转移方程:if(vis[i][j]]) dp[i]=dp[j]+a[i]。a代表权值。

#include<bits/stdc++.h>
using namespace std;
const int maxn=25; //fa数组表示雷最大时时的路径,不断更新。
int n,dp[maxn],a[maxn],fa[maxn],mx=-1; //a数组表示每个地点埋的地雷。
bool vis[maxn][maxn]; //表示某两点是否连通。
int main(){
scanf("%d",&n);
for(register int i=1;i<=n;i++) scanf("%d",&a[i]);
for(register int i=1;i<=n-1;i++)
for(register int j=i+1;j<=n;j++){
int q;
scanf("%d",&q);
if(q==1) vis[i][j]=vis[j][i]=1;
}
dp[n]=a[n];
for(register int i=n-1;i>=1;i--){
int l=0,k=0; //k代表最大的点,l表示k点挖出的雷数。
for(register int j=i+1;j<=n;j++){
if(vis[i][j] && dp[j]>l){
l=dp[j];
k=j;
}
}
dp[i]=l+a[i];
fa[i]=k;
}
int k=1;
for(register int j=2;j<=n;j++)
if(dp[j]>dp[k]) k=j;
int ans=dp[k];
while(k!=0){
printf("%d ",k); //输出路径。
k=fa[k];
}
printf("\n");
printf("%d",ans);
return 0;
}

最新文章

  1. 安装HBase
  2. Python黑帽编程 3.1 ARP欺骗
  3. formData上传图片
  4. LitePal + Gson + Volley的ORM框架尝试方案
  5. PNG无损压缩工具Optipng【备忘】
  6. chrome调试学习
  7. SPRING IN ACTION 第4版笔记-第十一章Persisting data with object-relational mapping-001-使用Hibernate(@Inject、@EnableTransactionManagement、@Repository、PersistenceExceptionTranslationPostProcessor)
  8. mysql Error Handling and Raising in Stored Procedures
  9. .Net设计模式_工厂模式(3)
  10. 【原创】Linux编译内核
  11. JENKINS 打包发布脚本
  12. jQuery的使用及关于框架造型(转)
  13. 【Xbox one S】开箱&amp;开机&amp;初入坑心得
  14. CentOS 7下GitLab搭建及配置
  15. Zombie Scanning
  16. JSJ—类与对象
  17. Qt浅谈之一:内存泄露(总结)
  18. nginx 重定向与反向代理
  19. JSP中页面向Action传递参数的几种方式
  20. Codeforces Beta Round #54 (Div. 2)

热门文章

  1. Delphi直接读取XmL
  2. hdu 4336 Card Collector(状压dp/Min-Max反演)
  3. Linux系统Centos查看IP地址,不显示IP地址或者显示127.0.0.1
  4. java动态代理的原理
  5. HTML-参考手册: HTML ASCII
  6. JPA 唯一索引
  7. Vue手把手教你撸一个 beforeEnter 钩子函数
  8. android 批量加载数据
  9. wrong mechandise category
  10. LeetCode Array Easy169. Majority Element