dfs优化剪枝
题目链接:D - Peaceful Teams (atcoder.jp)
先看数据范围,肯定是搜索相关
首先想到从第1个人, 第0个队开始的搜索顺序 ,因为这属于内部顺序,所以每次搜索要回溯状态,注意要进行大量剪枝
#include<bits/stdc++.h> using namespace std;
using ull = unsigned long long;
using ll = long long;
using PII = pair<int,int>;
#define endl "\n"
#define pb push_back
const int N=1e3+10;
const int INF=0x3f3f3f3f;
int a[N], b[N];
int team[N];
int res;
int n, t, m;
void dfs(int u, int tn)
{
if(u > n)
{
if(tn != t) return ; for(int i = 1; i <= m; i ++)
{
if(team[a[i]] == team[b[i]]) return ;//判断是否人所在的队不合法,可行性剪枝
}
res ++;
return ;
}
if(n - (u - 1) < t - tn) return ;//因为搜索的是u+1 个人,所以u-1,判断最低剩下的队有人在是否 for(int i = 1; i <= tn; i ++)
{
team[u] = i;//先把当前人员装到上个人的队中
dfs(u + 1, tn);//递归搜索下个人
team[u] = 0;//回溯状态
}
if(tn + 1 <= t)
{
team[u] = tn + 1;//新开一队
dfs(u + 1, tn + 1);//搜索下个人
team[u] = 0;
}
}
int main()
{
cin >> n >> t >> m;
for(int i = 1; i <= m; i ++) cin >> a[i] >> b[i];
dfs(1, 0);//从第一个人开始,当前队有0个对
cout << res << endl; return 0;
}
相似题目:1118. 分成互质组 - AcWing题库 165. 小猫爬山 - AcWing题库
dfs优化剪枝的更多相关文章
- hdoj--1010<dfs+奇偶剪枝>
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1010 题目描述:在n*m的矩阵中,有一起点和终点,中间有墙,给出起点终点和墙,并给出步数,在该步数情况 ...
- hdu1010 Tempter of the Bone —— dfs+奇偶性剪枝
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1010 Tempter of the Bone Time Limit: 2000/1000 MS (Ja ...
- dfs的剪枝优化
两个剪枝问题 1. 当两点的距离(需要走的步数)大于剩下的时间时 剪去 2.奇偶剪枝问题 如果起点到终点所需走的步数的奇偶性与时间奇偶性不同的时候 剪去 起点到终点步数的奇偶性的判断 首先 明确点的奇 ...
- 洛谷 P1433 吃奶酪【DFS】+剪枝
题目链接:https://www.luogu.org/problemnew/show/P1433 题目描述 房间里放着n块奶酪.一只小老鼠要把它们都吃掉,问至少要跑多少距离?老鼠一开始在(0,0)点处 ...
- HDU 1010 Tempter of the Bone(DFS+奇偶剪枝)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1010 题目大意: 输入 n m t,生成 n*m 矩阵,矩阵元素由 ‘.’ 'S' 'D' 'X' 四 ...
- hdu.1010.Tempter of the Bone(dfs+奇偶剪枝)
Tempter of the Bone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Othe ...
- hdu 1728:逃离迷宫(DFS,剪枝)
逃离迷宫 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- hdu 1010:Tempter of the Bone(DFS + 奇偶剪枝)
Tempter of the Bone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Othe ...
- [HDOJ5952]Counting Cliques(DFS,剪枝)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5952 题意:求图中规模为s的团的个数. DFS+剪枝,姿势不好很容易TLE啊. #include &l ...
- hdu - 1010 Tempter of the Bone (dfs+奇偶性剪枝) && hdu-1015 Safecracker(简单搜索)
http://acm.hdu.edu.cn/showproblem.php?pid=1010 这题就是问能不能在t时刻走到门口,不能用bfs的原因大概是可能不一定是最短路路径吧. 但是这题要过除了细心 ...
随机推荐
- C#(面向对象的托管语言)类库(区别于应用程序)的异常处理思路
1.不要做出任何应用程序才需要考虑抉择策略,不能想当然的决定一些错误情形.具体的一个体现形式是什么异常都捕获.这不是类库的职责,因为无法掌握所有的调用者的使用情形,这些不确定性是委托.虚方法.接口等特 ...
- 分布式锁—3.Redisson的公平锁
大纲 1.Redisson公平锁RedissonFairLock概述 2.公平锁源码之加锁和排队 3.公平锁源码之可重入加锁 4.公平锁源码之新旧版本对比 5.公平锁源码之队列重排 6.公平锁源码之释 ...
- Windows编程----进程:环境变量
什么是系统环境变量 每台计算机针对当前用户和系统中所有用户分别提供了两个环境变量设置,通过计算机属性>环境变量的界面,我们可以查看当前这台计算机上的所有环境变量,这些环境变量都是key-valu ...
- Win系统重装备忘
蒙德,致态的盘坏块激增,似乎损坏到了系统文件:屏幕截屏会卡,关机后直接该块硬盘内的文件内容回滚,出现驱动报错要求重启... 然后尝试了DiskGenuis迁移系统,PE模式不能用,热迁移后似乎正常分区 ...
- react使用插件配置px转换为rem
react使用插件postcss-pxtorem配置px自动转换rem 1.下载postcss-pxtorem插件 npm install postcss postcss-pxtorem --save ...
- DeepSeek+Claude强强联手,使用AI驱动DjangoStarter 3.1框架升级
前言 上个月底培训了一周就没时间更新博客 上周有一些空闲时间,就继续体验最近很火的AI辅助编程 之前的文章中有说到我配置好了 VSCode + Cline 插件搭配本地部署的 DeepSeek 来实现 ...
- linux centos8 mirrorlist: No URLs in mirrorlist,更新yum源
前言 由于官方已经在2021/12/31停止了对CentOS 8的支持,所以需要更新 yum 源,才能使用 更新镜像源 这里用的是阿里的 yum 镜像源 将源文件备份 cd /etc/yum.repo ...
- sourcetree 重新设置git账号密码
设置提交git账号邮箱 到项目根目录,执行 vi ~/.gitconfig ,直接编辑修改即可 重新设置git登陆账号密码 打开 sourcetree 的偏好设置,选择高级,然后移除即可
- 配置win + ubuntu双系统需要注意的一些点
配置win + ubuntu双系统需要注意的一些点 基本上是按照B站机器人工匠阿杰的视频来的,但是有一些需要注意的点值得关注. 关闭RST 首先是比较新的电脑bios里会有一个叫做英特尔 快速存储技术 ...
- map标签是什么
<map>标签用于在HTML中定义一个 图像映射(image map),它允许你将图像划分为多个可点击的区域(称为"热点"),每个区域可以链接到不同的URL或执行不同的 ...