方法:

作为一个刚刚接触OI的蒟蒻,看到题目想都没想就写了一个搜索,枚举每一个地窖作为起点再比较答案然后记录下最优的,虽然此方法十分地暴力,但由于n<=20所以仍然能AC的


代码:

#include <iostream>
#include <vector>
#include <cstring>
using namespace std;const int MAXN = 20;int n, max1, ans, depth, final;
//数量,最大的地雷数,每一个作为起点的最大价值,每一次地窖数,最优的地窖数
int a[MAXN], f[MAXN], vis[MAXN], path[MAXN];
//每一个地窖的地雷数,最终的答案,是否访问过,每一次的路径

vector <int> G[MAXN];
//标记相连bool dfs(int x)
{if(x == n) //到达终点
    {path[depth] = x;return true;}if(vis[x]) //已访问过
    {return false;}vis[x] = true; //标记path[depth] = x;++depth;for(int i=0; i<G[x].size(); i++) //访问和当前相邻的每个节点
    {int u = G[x][i];if(dfs(u) == true){return true;}}--depth;return false;
}int main()
{cin >> n;for(int i=1; i<=n; i++)cin >> a[i];for(int i=1; i<=n; i++){for(int j=1; j<=n-i; j++){int x;cin >> x;if(x == 1)G[i].push_back(i + j); //标记相连
        }}for(int i=1; i<=n; i++){ans = depth = 0;//初始化memset(path, 0, sizeof(path));memset(vis, 0, sizeof(vis));dfs(i); //访问for(int i=0; i<=depth; i++)ans += a[path[i]];if(ans > max1) //当前更优
        {max1 = ans;final = depth;for(int i=0; i<=depth; i++)f[i] = path[i];}}for(int i=0; i<=final; i++){cout << f[i] << " ";}cout << endl << max1;return 0;
} 


请各位大佬指出本蒟蒻代码中的(太多的)不足,以便改正,谢谢!!!


刚学完搜索的蒟蒻的第一道独立完成的搜索题,以此纪念!

转载于:https://www.cnblogs.com/Ghostyht/p/9886134.html

题解 P2196 【挖地雷】相关推荐

  1. 洛谷P2196 挖地雷 题解 超详细(DPDFS)

    题目传送门 这道题我读时想到两种方法,分别是dp和搜索,于是将两种方法奉上 一.dp 这道题的被放在题单""dp的引入",所以我们就先用dp思考 dp需要考虑数组,转移方 ...

  2. 【洛谷】P2196 挖地雷

    题目地址: https://www.luogu.com.cn/problem/P2196 题目描述: 在一个地图上有NNN个地窖(N≤20)(N \le 20)(N≤20),每个地窖中埋有一定数量的地 ...

  3. 洛谷P2196 挖地雷

    题目描述 在一个地图上有N个地窖(N≤20),每个地窖中埋有一定数量的地雷.同时,给出地窖之间的连接路径.当地窖及其连接的数据给出之后,某人可以从任一处开始挖地雷,然后可以沿着指出的连接往下挖(仅能选 ...

  4. 【动态规划】洛谷P2196 挖地雷

    大意 给定一些点和它们间的通道,问最大总点值 思路 一道比较简单的dpdpdp 设f[i]f[i]f[i]表示终点为iii的最大值,显然 f[i]=max{f[能到达i的点]}+a[i]f[i]=ma ...

  5. P2196 [NOIP1996 提高组] 挖地雷

    P2196 挖地雷 题目大概意思是给你所有地窖的连接路径,让你选择一条路径使挖到的地雷最多,需要注意的点是这题题目没怎么说清楚,它实际是一个有向图(我一开始当无向图写了半天,死活过不了,最后改成有向图 ...

  6. 图论复习(各类习题)

    可以结合这篇博客进行复习:http://www.cnblogs.com/z360/p/7363034.html 一.强连通分量.缩点 习题: 洛谷--P2746 [USACO5.3]校园网Networ ...

  7. 重走长征路---OI每周刷题记录---11月4日 2013

    总目录详见https://blog.csdn.net/mrcrack/article/details/84471041 做题原则,找不到测评地址的题不做.2018-11-28 重走长征路---OI每周 ...

  8. 马尔可夫过程和马尔可夫链_Google页面排名和马尔可夫链

    马尔可夫过程和马尔可夫链 Whenever you give a query on Google, you will get the web pages in an order based on th ...

  9. P2196 [NOIP1996 提高组] 挖地雷 线性动态规划DP 题解

    原题链接:[P2196 NOIP1996 提高组] 挖地雷 - 洛谷) 题目分析 看到这道题,首先感觉是个搜索,如果数据范围不大应该没问题.但是,,,我没找到数据范围啊喂~ 那就动态规划一下,先用二维 ...

最新文章

  1. zip压缩多个文件,解压时不包含目录层级
  2. 数据挖掘与机器学习介绍
  3. 挖矿的大佬们长点心吧
  4. Logistic and Softmax Regression (逻辑回归和Softmax回归)
  5. 报告预测:到2027年,全球数据中心基础设施市场规模将达1423.1亿美元
  6. mysql 读写分离 ,mysql_proxy实现
  7. 《信息检索》第8讲 毕业论文学习指导(资源及预习材料)
  8. ssl1759-求连通分量【图论,深搜,广搜】
  9. 使用ifconfig取出网卡eth0的ip地址
  10. mysql ddl分类_MySQL语言分类——DDL
  11. php curl post text,php – POST适用于Postman,但不适用于CURL
  12. RPG游戏开发基础教程
  13. java hsqldb数据库_【DataBase】Hsqldb的简单使用
  14. 可以提升效率的待办清单APP
  15. 蓝桥杯最终冲刺(冲刺Day2)
  16. 打包 压缩 解压缩命令
  17. 升级win11后,觉得不好用想重装win10系统?教你重装win10“精简版”
  18. 【python】输入一个值,输出以这个值为公比,1为首项的等比数列前10项
  19. 2020春季学期哈工大软件构造学习心得三
  20. BZOJ P1856 字符串

热门文章

  1. 微信文件夹的dat文件怎么打开_如何打开微信dat文件基本方法
  2. win8.1 cygwin编译java轻量虚拟机avian
  3. Debian 9 安装 NVIDIA显卡驱动
  4. 【34】理解虚拟机:你在云上拿到的计算机是什么样的?
  5. 用css实现三横的代码
  6. 1-计算机系统概述(OS)
  7. 联邦学习FATE框架安装搭建 - CentOS8
  8. (K8s入门到精通) 10 k8s service(SVC),管理多个pod信息
  9. [230528] 托福阅读真题|TPO66|整卷得分22/30|9:45~10:45|15:40~16:40|6月1日14:30~15:20
  10. 解决Mac执行Mono的EXE的问题