第一行表示挖得最多地雷时的挖地雷的顺序,各地窖序号间以一个空格分隔,不得有多余的空格。
第二行只有一个数,表示能挖到的最多地雷数。
输入输出样例
输入 1
5
10 8 4 7 6
1 1 1 0
0 0 0
1 1
1
输出 1
1 3 4 5
27
说明/提示
【题目来源】
NOIP 1996 提高组第三题
解题代码:(动态规划版)
#include<stdio.h>
#include
using namespace std;
int n,a[21][21];
int f[21],w[21],q[21],ans[21];
int main(){
cin>>n;
for(int i=1;i<=n;i++) {scanf(“%d”,&w[i]); f[i]=w[i];}//雷的数目
for(int i=1;i<n;i++)
for(int j=i+1;j<=n;j++)
scanf(“%d”,&a[i][j]);
for(int i=1;i<=n;i++)
for(int j=1;j<i;j++)
if(a[j][i]){
if(f[j] + w[i] > f[i]){
f[i] = f[j] + w[i];
q[i] = j;
}
}
int x=0,tot=0;
for(int i=1;i<=n;i++)
if(f[x]<f[i]) x = i;
ans[0] = f[x];
while(x){ ans[++tot] = x; x=q[x];}
for(int i=tot;i>1;i–) printf("%d ",ans[i]);
printf(“%d”,ans[1]);
printf(“\n%d”,ans[0]);
return 0;
}
解题代码: (DFS版)
#include<stdio.h>
#include
using namespace std;
int n,cnt=-999,v,k; //k保存结果应该是几个数
int f[21][21],book[21];
int lei[21];
int a[21],b[21]; //a是结果,b用来每次dfs记录路径
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
结语
小编也是很有感触,如果一直都是在中小公司,没有接触过大型的互联网架构设计的话,只靠自己看书去提升可能一辈子都很难达到高级架构师的技术和认知高度。向厉害的人去学习是最有效减少时间摸索、精力浪费的方式。
我们选择的这个行业就一直要持续的学习,又很吃青春饭。
虽然大家可能经常见到说程序员年薪几十万,但这样的人毕竟不是大部份,要么是有名校光环,要么是在阿里华为这样的大企业。年龄一大,更有可能被裁。
送给每一位想学习Java小伙伴,用来提升自己。
本文到这里就结束了,喜欢的朋友可以帮忙点赞和评论一下,感谢支持!文章来源:https://www.toymoban.com/news/detail-847845.html
又很吃青春饭。
虽然大家可能经常见到说程序员年薪几十万,但这样的人毕竟不是大部份,要么是有名校光环,要么是在阿里华为这样的大企业。年龄一大,更有可能被裁。
送给每一位想学习Java小伙伴,用来提升自己。
[外链图片转存中…(img-0bNg2Ri7-1711101242391)]
本文到这里就结束了,喜欢的朋友可以帮忙点赞和评论一下,感谢支持!
本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录文章来源地址https://www.toymoban.com/news/detail-847845.html
到了这里,关于动态规划+深度优先搜索—,java面试问的问题都答上来了的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!