P2196 挖地雷
Posted for-miku
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P2196 挖地雷相关的知识,希望对你有一定的参考价值。
---------------------------
我跟你们说,这就是道假的黄题,普及难度还差不多,太水了
---------------------------
提议没啥好说的,搜索就是了
---------------------------
题目链接:Miku
--------------------------
1 /* 2 这是道假的黄题 3 4 */ 5 6 7 8 9 #include<iostream> 10 #include<algorithm> 11 #include<cstring> 12 #include<queue> 13 #include<cstdio> 14 15 using namespace std; 16 int now[21];//当前顺序 17 int ans[21];//答案顺序 18 int cnt;//答案 19 int vis[21];//回溯记录 20 int tu[21][21];//联通 21 int v[21];//价值 22 int n; 23 int x; 24 void dfs(int p,int k,int cntt) 25 if(vis[p]) 26 return ; 27 vis[p]=1; 28 now[k]=p; 29 for(int i=1;i<=n;++i) 30 31 if(i!=p&&tu[p][i]&&!vis[i])//不会重复挖=联通+挖没挖过 32 33 dfs(i,k+1,cntt+v[i]);//递归 34 vis[i]=0; 35 36 37 if(cntt>cnt) 38 39 cnt=cntt;//记录 40 for(int i=1;i<=n;++i) 41 42 ans[i]=now[i];//更新路径 43 44 45 now[k]=0;//这个也要额外处理 46 47 48 int main() 49 cin>>n; 50 for(int i=1;i<=n;++i) 51 52 cin>>v[i]; 53 54 for(int i=1;i<=n;++i) 55 56 for(int j=i+1;j<=n;++j) 57 cin>>x; 58 if(x) 59 tu[i][j]=1; 60 61 62 for(int i=1;i<=n;++i) 63 64 dfs(i,1,v[i]); 65 vis[i]=0; 66 67 for(int i=1;i<=n;++i) 68 69 if(!ans[i]) 70 break; 71 else 72 cout<<ans[i]<<" "; 73 74 cout<<endl<<cnt; 75 return 0; 76
----------------------------
Have a good day.
以上是关于P2196 挖地雷的主要内容,如果未能解决你的问题,请参考以下文章