设为首页 加入收藏

TOP

简单dfs hdu 4536 XCOM Enemy Unknown
2014-11-23 19:09:19 来源: 作者: 【 】 浏览:8
Tags:简单 dfs hdu 4536 XCOM Enemy Unknown

题目意思:

n个国家,每个国家都有一个恐惧值,每个国家属于一个洲。外星人攻击k次,每次攻击三个不同洲的一个国家,问你作为联盟指挥最多可以抵抗攻击的次数。

每次攻击你都可以支援一个国家,支援后这个国家的恐惧值-2,但其他两个国家的恐惧值+2,并且其他两个国家所在大洲的所有其他国家的恐惧值+1.

当有一个国家的恐惧值>5时,任务失败,不能继续抵抗攻击。每个国家的恐惧值最小减少到1。

解题思路:

dfs暴力搜索。

每次有三种选择,选择支援哪个国家。

代码:

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define eps 1e-6
#define INF 0x1f1f1f1f
#define PI acos(-1.0)
#define ll __int64
#define lson l,m,(rt<<1)
#define rson m+1,r,(rt<<1)|1
//#pragma comment(linker, "/STACK:1024000000,1024000000")
using namespace std;

/*
freopen("data.in","r",stdin);
freopen("data.out","w",stdout);
*/
int n,m,k;
int st[20],fear[20];
vectormyv[6];

struct Node
{
   int a[3];
}fi[110];

bool flag;
int ans;

void dfs(int cur,int *afr)
{
   if(flag)
      return ;
   for(int i=0;i5) //超过5,说明上一次已经不行了,所以为cur-2
      {
         ans=max(cur-2,ans);
         return ;
      }
   }
   if(cur>k) //能够抵抗所有的攻击
   {
      flag=true;
      ans=k;
      return ;
   }
   int tmp[20];

   for(int i=0;i<3;i++) //选择保护的国家
   {
      //memcpy(tmp,afr,sizeof(afr));
      for(int j=0;j 
 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇hdu 4562 Dice 求期望 推数学公式 下一篇poj3227

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·求navicat for mysql (2025-12-26 13:21:33)
·有哪位大哥推荐一下m (2025-12-26 13:21:30)
·MySQL下载与安装教程 (2025-12-26 13:21:26)
·Linux_百度百科 (2025-12-26 12:51:52)
·Shell 流程控制 | 菜 (2025-12-26 12:51:49)