PAT T1022 Werewolf
暴力搜索加剪枝~
#include<bits/stdc++.h>
using namespace std;
const int maxn=;
int a[maxn];
bool visit[maxn];
vector<int> path,tmp;
int N,M,L,cnt=;
void dfs (int v) {
if (tmp.size()==M) {
int liecnt=,liewolf=;
for (int i=;i<=N;i++) {
if (a[i]<&&visit[abs(a[i])]==false) {
liecnt++;
if (visit[i]==true) liewolf++;
}
else if (a[i]>&&visit[abs(a[i])]==true) {
liecnt++;
if (visit[i]==true) liewolf++;
}
}
if (liecnt==L&&liewolf>=&&liewolf<M&&cnt==) path=tmp,cnt++;
return;
}
if (tmp.size()+v<L) return;
v--;
while (v>=) {
visit[v]=true;
tmp.push_back(v);
dfs (v);
visit[v]=false;
tmp.pop_back();
v--;
}
}
int main () {
scanf ("%d %d %d",&N,&M,&L);
for (int i=;i<=N;i++) {
scanf ("%d",&a[i]);
}
dfs (N+);
if (path.size()==) {
printf ("No Solution");
return ;
}
for (int i=;i<path.size();i++) {
if (i!=) printf (" ");
printf ("%d",path[i]);
}
return ;
}
PAT T1022 Werewolf的更多相关文章
- PAT 1148 Werewolf - Simple Version
		
1148 Werewolf - Simple Version (20 分) Werewolf(狼人杀) is a game in which the players are partitioned ...
 - PAT A1148 Werewolf - Simple Version (20 分)——暴力遍历,负负得正
		
Werewolf(狼人杀) is a game in which the players are partitioned into two parties: the werewolves and th ...
 - PAT 1148 Werewolf - Simple Version [难理解]
		
1148 Werewolf - Simple Version (20 分) Werewolf(狼人杀) is a game in which the players are partitioned i ...
 - PAT (Advanced Level) Practice(更新中)
		
Source: PAT (Advanced Level) Practice Reference: [1]胡凡,曾磊.算法笔记[M].机械工业出版社.2016.7 Outline: 基础数据结构: 线性 ...
 - PAT_A1148#Werewolf - Simple Version
		
Source: PAT 1148 Werewolf - Simple Version (20 分) Description: Werewolf(狼人杀) is a game in which the ...
 - PAT(A) 1148 Werewolf - Simple Version(Java)逻辑推理
		
题目链接:1148 Werewolf - Simple Version (20 point(s)) Description Werewolf(狼人杀) is a game in which the p ...
 - PAT甲级题解分类byZlc
		
专题一 字符串处理 A1001 Format(20) #include<cstdio> int main () { ]; int a,b,sum; scanf ("%d %d& ...
 - 《转载》PAT 习题
		
博客出处:http://blog.csdn.net/zhoufenqin/article/details/50497791 题目出处:https://www.patest.cn/contests/pa ...
 - WereWolf项目 Postmortem
		
WereWolf项目 Postmortem (博客园的MarkDown编辑器好像有些问题,编号都显示1..) 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描 ...
 
随机推荐
- js实现Set
			
class MySet { constructor(params) { if (typeof params[Symbol.iterator] !== 'function') { throw new T ...
 - 【PAT甲级】1102 Invert a Binary Tree (25 分)(层次遍历和中序遍历)
			
题意: 输入一个正整数N(<=10),接着输入0~N-1每个结点的左右儿子结点,输出这颗二叉树的反转的层次遍历和中序遍历. AAAAAccepted code: #define HAVE_STR ...
 - Go流程结构(for)
			
一.程序的流程结构 程序的流程控制结构一共有三种:顺序结构,选择结构,循环结构. 顺序结构:代码从上向下逐行的执行 选择结构:条件满足,某些代码才会被执行.0-1次 if语句,switch语句 循环结 ...
 - .net core 框架调用顺序
			
API -> AppSrv -> IRepository -> Repository ->
 - ajax请求无法下载文件的原因
			
原因: Ajax下载文件的这种方式本来就是禁止的.出于安全因素的考虑,javascript是不能够保存文件到本地的, 所以ajax考虑到了这点,只是接受json,text,html,xml格式的返回值 ...
 - 粪发涂墙-java1
			
相信很多人和笔者一样,经常会做一些数组的初始化工作,也肯定会经常用到集合类.假如我现在要初始化一个String类型的数组,可以很方便的使用如下代码: String [] strs = {"T ...
 - Linux双网卡bond、起子接口
			
适用场景 服务器两张网卡需要做bond,并且bond后网卡需配置不同网段的地址,用于走不同流量,这个时候就可以采用起子接口的方式. 实验场景 设备 服务器:Server_A 核心交换机:Switch_ ...
 - 红帽RHCE培训-课程2笔记内容
			
1 kickstart自动安装 已安装系统中,在root下述目录会自动生成kickstart配置文件 ll ~/anaconda-ks.cfg 关键配置元素注释,详见未精简版 创建Kickstart配 ...
 - 201771010135 杨蓉庆《面对对象程序设计(java)》第十二周学习总结
			
1.实验目的与要求 (1) 掌握Java GUI中框架创建及属性设置中常用类的API: (2) 掌握Java GUI中2D图形绘制常用类的API: (3) 了解Java GUI中2D图形中字体与颜色的 ...
 - spring框架相关概念
			
软件行业的二八法则?技术中只有20%是最常用和最关键的,决定你的基础,后面的80%决定你的潜能! 概念: 1,轻量级框架,用户需要什么功能就自己添加相应的功能模块,不像重量级框架,一旦用,所有功能都添 ...