社区讨论
进来欣赏一下.............
P2196[NOIP 1996 提高组] 挖地雷参与者 18已保存回复 17
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 17 条
- 当前快照
- 1 份
- 快照标识符
- @mi7pmvkl
- 此快照首次捕获于
- 2025/11/21 01:33 4 个月前
- 此快照最后确认于
- 2025/11/21 01:52 4 个月前
C
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int order[21],/*顺序*/ ja[21],/*地窖所埋地雷 */ pa[21][21];/*路径*/
int ord[21];//所求输出路径
int tot,n,s=2,w=-1,t=2;//记录所扫地雷最大值
int f;
//bool a[21][21];
//int b[21][21];
void dfs(int x)
{
// cout<<t;
/*if(i=n+1)
{
for(int i=1;i<=n;i++)
{
}
}*/
int m=0;//判断是否还有路径
for(int j=1;j<=n;j++)
{
if(pa[x][j]==1)
{
m=1;
tot+=ja[j];
order[t]=j;
t++;
dfs(j);
tot-=ja[j];
t--;
// m=0;
}
}
if(m=1)
{
if(tot>w)
{
w=tot;
f=t;
//cout<<f;
for(int i=1;i<f;i++)
{
ord[i]=order[i];
}
}
}
}
int main()
{
memset(ord,0,sizeof(ord));
memset(order,0,sizeof(order));
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>ja[i];//dilei
}
for(int i=1;i<=n;i++)
{
for(int j=s;j<=n;j++)
{
cin>>pa[i][j];
}
s++;
}
/* for(int i=1;i<=n-1;i++)
{
for(int j=f;j<=n;j++)
cout<<pa[i][j]<<" ";
cout<<endl;
f++;
}*/
for(int i=1;i<=n;i++)
{
tot=ja[i];
order[1]=i;
dfs(i);
}
for(int i=1;i<f;i++)
{
cout<<ord[i]<<" ";
}
cout<<endl;
cout<<w;
}
回复
共 17 条回复,欢迎继续交流。
正在加载回复...