暴力搜索加剪枝~

#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 ;
}

最新文章

  1. Codeforces558E A Simple Task(线段树)
  2. 洛谷P2731骑马修栅栏
  3. comparing-html5-mobile-ui-frameworks
  4. 2.1.6 用ProtectX实现扫描的反击与追踪
  5. ZigBee组网原理
  6. 【转】基于Android Fragment功能的例子
  7. 【美妙的Python之中的一个】Python简单介绍及环境搭建
  8. 移动前端制作篇之javascript篇
  9. django学习之Model(四)MakingQuery
  10. Windows Server 2016-WinSer2016 Active Directory新增功能
  11. PhotoShop制作简单的文字动画--多媒体技术与应用
  12. Myeclipse快速补充返回值快捷键
  13. python学习之路网络编程篇(第二篇)
  14. Javascript高级编程学习笔记(94)—— Canvas(11) 合成
  15. idea的一些设置
  16. 一个老程序员是如何手写Spring MVC的
  17. react简书笔记一 环境, git 和 项目 关联
  18. CSS选择器 + Xpath + 正则表达式整理(有空再整理)
  19. 工作-&gt;离职-&gt;考研
  20. mysql系列(3)之 DML语句

热门文章

  1. 【PAT甲级】1111 Online Map (30分)(dijkstra+路径记录)
  2. 【C语言】将两个字符串连接起来
  3. C 语言实例 - 判断闰年
  4. CSS学习(3)样式表
  5. 获取度量数据:创建服务账户获取访问token
  6. JSAJAX请求
  7. &lt;位运算&gt; 任意二进制数 异或两个相同的二进制数 还是原本的值
  8. 7 scrapy 初识
  9. scipy1.3.0开始被弃用的imread,imresize,如何代替
  10. redis场景分析的很到位