博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU4536 XCOM Enemy Unknown(dfs)
阅读量:5086 次
发布时间:2019-06-13

本文共 1124 字,大约阅读时间需要 3 分钟。

分析:

用dfs枚举每一波攻击的三个国家。

很暴力,但没想到0ms。

 

#include 
#include
#include
using namespace std;const int maxn = 20;int p[maxn], nervous[maxn], n, m, k, max_cnt;int att[110][3];void dfs(int cn) { //界限 if(max_cnt >= k) return ; if(cn >= k) { max_cnt = k; return ; } int a[3], bak[3]; for(int v=0; v<3; v++) { //枚举支援的国家 /* * 被支援的国家为 att[cn][v] * 其他两个国家为 att[cn][(v+1)%3] 和 att[cn][(v+2)%3] */ a[0] = att[cn][v]; //将国家序号存起来,方便调用 a[1] = att[cn][(v+1)%3]; a[2] = att[cn][(v+2)%3]; bak[0] = nervous[a[0]]; //备份 bak[1] = nervous[a[1]]; bak[2] = nervous[a[2]]; nervous[a[0]] -= 2; if(nervous[a[0]] < 1) nervous[a[0]] = 1; nervous[a[1]] += 2; nervous[a[2]] += 2; //数据已经保证受攻击的3个国家一定在不同的洲 for(int i=0; i
5) { max_cnt = max(max_cnt, cn); flag = false; } } if(flag) dfs(cn+1); //还原 for(int i=0; i

 

转载于:https://www.cnblogs.com/tanhehe/p/3232515.html

你可能感兴趣的文章
[codeforces 852 D] Exploration Plan 解题报告 (二分+最大匹配)
查看>>
Docker问题日志--工作中遇到的问题及解决
查看>>
最简单的html5语言
查看>>
VScode编辑器个性化配置
查看>>
css
查看>>
Python攻克之路-module
查看>>
oracle11g如何创建数据库
查看>>
MySQL round函数
查看>>
Vim使用技巧
查看>>
Python 3 学习笔记(三)----数据运算、集合操作和文件操作
查看>>
jQuery $.ajax方法
查看>>
PAT 1025. 反转链表 (25)
查看>>
基于Metronic的Bootstrap开发框架经验总结(6)--对话框及提示框的处理和优化
查看>>
Java的compare比较
查看>>
HTML5中createPattern()
查看>>
Git分支实战入门详细图解
查看>>
[转]Greenplum 执行计划之广播与重分布
查看>>
Js的执行
查看>>
【转】查看 Linux 发行版名称和版本号的 8 种方法
查看>>
websocket使用ssl 证书,开启加密服务
查看>>