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..) 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描 ...
随机推荐
- 【SSH】Spring 整合 Struts
添加 spring-struts-3.2.9.RELEASE.jar struts-config.xml 添加 <controller> <set-property property ...
- P&R 3
Floorplan: 要做好floorplan需要掌握哪些知识跟技能? 通常,遇到floorplan问题,大致的debug步骤跟方法有哪些? 如何衡量floorplan的QA? Floorplan是后 ...
- dbGet net trace instant pin
proc rn { net_name } {puts " "puts "Net name : $net_name : "set name_rule [dbget ...
- WEB前后端约定接口
- 原生js浏览器兼容性问题
1.HTML对象获取问题 FireFox:document.getElementById(“idName”); ie:document.idname或者document.getElementById( ...
- Git储藏工作现场
假设你现在在dev分支工作,此时你接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支issue-101来修复它,但是,等等,你当前工作只进行到一半,还没法提交,预计完成还需1天时间 ...
- C语言与汇编的嵌入式编程:main中模拟函数的调用(两数交换)
编写一个两数交换函数swap,具体代码如下: #include<stdio.h> void swap(int *p1,int *p2) { int temp; temp = *p1; *p ...
- Spring的简单介绍
struts2:web层hibernate:dao层spring:service层 1 spring框架概述 1.1 什么是springSpring是一个开源框架,Spring是于2003 年兴起的一 ...
- 5 asyncio 梨视频
# 如何提升requests模块爬取数据的效率?- 多进程或多线程(不建议) 太耗费资源- 线程池或进程池(适当使用) - 单线程 + 异步协程(推荐) # 线程池使用案例 # 梨视频 下载作业 im ...
- SQL Server 2014数据库开启远程连接(Windows Server 2016)
1.打开SQL SERVER 配置管理器 2. 设置防火墙的入站规则 3.使用Navicat Premium连接SQL Server