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的原因大概是可能不一定是最短路路径吧. 但是这题要过除了细心 ...
随机推荐
- Hadoop - [04] 分布式部署
Zookeeper的分布式部署 >> Hadoop的分布式部署 一.集群规划 主机名 node01 node02 node03 JDK ○ ○ ○ Zookeeper ○ ○ ○ Name ...
- SQL Server 2025 AI相关能力初探
SQL Server 在2024年11月开始进行社区私有预览(链接),由于涉及AI能力,我也是第一时间申请了内侧资格,悲剧的是,直到2025年2月,才拿到预览版的测试资格-.-,此时已经是CTP1.3 ...
- 大模型基础补全计划(二)---词嵌入(word embedding)
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 环境说明 无 前言 本文是这个系列第二篇,它们是: &l ...
- yolov5 train报错:TypeError: expected np.ndarray (got numpy.ndarray)
前言 mac intel 机器上,使用 yolov5 物体检测训练时报错:TypeError: expected np.ndarray (got numpy.ndarray) 这个错误信息 TypeE ...
- centos7下扩展根分区(图文详解)
df -h 查看当前系统磁盘使用状况 fdisk -l 可以看见,我新添加了一块硬盘,大小为10G,新磁盘/dev/sdb fdisk /dev/sdb 对新的磁盘进行分区 在交互模 ...
- AITCA联盟:渠道商的革命号角,产业变革的领航者!
AITCA联盟:渠道商的革命号角,产业变革的领航者! 在AI技术风起云涌的今天,一场无声的革命正在悄然酝酿.在这场革命中,渠道商们不再是被动接受的附庸,而是即将成为改写产业规则.掌握自己命运的主宰者! ...
- 【服务器】npm配置国内镜像源
[服务器]npm配置国内镜像源 零.问题 配置Node.js的HTTPS的时候,下载不了 一.解决 这里使用的是淘宝的镜像: npm config set registry https://regis ...
- 请确保在应用程序配置文件的“entityFramework”节中注册了该提供程序
Exception information: Exception type: MetadataException Exception message: 指定的架构无效. 错误: Model.LW.OT ...
- This APT has Super Cow Powers.
在Debian/Ubuntu上,apt包管理器内嵌着一个彩蛋. 如果你在命令行界面输入 apt help 在最后一行能找到This APT has Super Cow Powers. 说明该apt具有 ...
- 白话kotlin协程
文章同步发布于公众号:移动开发那些事白话kotlin协程 1 什么是协程 Kotlin协程(Coroutine)是一种轻量级的线程管理框架,允许开发者以更简洁,更高效的方式处理异步操作,避免回调地狱和 ...