AtCoder Beginner Contest 310-D - Peaceful Teams(DFS)

news2024/11/23 3:26:28

 Problem Statement

There are N sports players.

Among them, there are M incompatible pairs. The i-th incompatible pair (1≤i≤M) is the Ai​-th and Bi​-th players.

You will divide the players into T teams. Every player must belong to exactly one team, and every team must have one or more players. Additionally, for each i=1,2,…,M, the Ai​-th and Bi​-th players must not belong to the same team.

Find the number of ways to satisfy these conditions. Here, two divisions are considered different when there are two players who belong to the same team in one division and different teams in the other.

Constraints

  • 1≤T≤N≤10
  • 0≤M≤N*(N−1)/2​
  • 1≤Ai​<Bi​≤N (1≤i≤M)
  • (Ai​,Bi​)!=(Aj​,Bj​) (1≤i<j≤M)
  • All input values are integers.

Input

The input is given from Standard Input in the following format:

N T M
A1 B1
A2 B2
A3 B3
...
Am Bm

Output

Print the answer in a single line.

 Sample Input 1

5 2 2
1 3
3 4

Sample Output 1

4

No other division satisfies them, so print 4. 

题意:N个人分到T个队伍,M个互斥关系,问有多少种分配方案。

#include <bits/stdc++.h>
using namespace std;
const int N=55;
int n,t,m,a[N],b[N],team[N],ans;
void dfs(int x,int cnt)
{
    if(x==n+1)
    {
        if(cnt!=t) return;
        for(int i=1;i<=m;i++)
        {
            if(team[a[i]]==team[b[i]]) return;
        }
        ans++;
        return;
    }
    for(int i=1;i<=cnt;i++)//安排进1-cnt队伍中
    {
        team[x]=i;
        dfs(x+1,cnt);
        team[x]=0;
    }
    if(cnt+1>t) return;
    team[x]=cnt+1;//新开辟一个队伍
    dfs(x+1,cnt+1);
    team[x]=0;
}
void solve()
{
    scanf("%d%d%d",&n,&t,&m);
    for(int i=1;i<=m;i++) scanf("%d%d",&a[i],&b[i]);
    dfs(1,0);
    printf("%d\n",ans);
}
int main()
{
    int t=1;
    while(t--) solve();
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/772963.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot整合SpringCloudStream3.1+版本的Kafka死信队列

SpringBoot整合SpringCloudStream3.1版本的Kafka死信队列 上一篇直通车 SpringBoot整合SpringCloudStream3.1版本Kafka 实现死信队列步骤 添加死信队列配置文件&#xff0c;添加对应channel通道绑定配置对应的channel位置添加重试配置 结果 配置文件 Kafka基本配置&#…

Python机器学习、数据统计分析在医疗中的应用

Python机器学习在医疗诊断领域的应用 随着人工智能技术的不断发展&#xff0c;机器学习已经在医疗领域的诊断治疗、预防等方面展现出强大的潜力。Python 作为一种广泛应用于机器学习的语言&#xff0c;在医疗领域也已经被广泛使用。本文将探讨 Python 机器学习在医疗领域的应用…

mysql 第五章

目录 1.order by 排序 2.区间判断 3.group by 分组 4.limit 5.别名 6.通配符 like 7.总结 1.order by 排序 2.区间判断 3.group by 分组 4.limit 5.别名 6.通配符 like 7.总结 对 mysql 数据库的查询&#xff0c;除了基本的查询外&#xff0c;有时候需要对查…

nginx官网与下载

官网 nginx: download 下载 解压 conf配置文件

[高通平台][WLAN] IEEE802.11mc 介绍

IEEE802.11mcWi-Fi协议(即Wi-FiRound-Trip-Time,RTT),利用此项技术及可以进行室内定位,因此为了使用此项技术,只有在硬件支持的设备上,应用才可以使用最新的RTT API以测量附近具有RTT功能的Wi-FiAP。 单面RTT :  距离是通过发送的分组和接收到的ACK之间的时间差来计算的…

SPSS中级统计--S05-5多个样本率的卡方检验及两两比较

小伙伴们&#xff0c;今天我们学习SPSS中级统计--多个样本率的卡方检验及两两比较。 例1、2 C列联表资料 上期我们学习了双向无序RC表资料&#xff08;c2&#xff09;的检验&#xff0c;案例如下&#xff0c;比较不同污染地区的动物畸形率是否有差异&#xff1f; H0&#xff…

哈医大一院电力监控系统 安科瑞 许敏

摘要&#xff1a;本文介绍基于Acrel-3000电力监控软件和电力监控仪表&#xff0c;设计并实现了一套分散式采集和集中控制管理的自动化报警系统。系统实现远程精细化及时性报警&#xff0c;避免因停电造成医疗事故&#xff0c;提高了供电质量和管理水平&#xff0c;具有简明实用…

怎么把高版本CAD转换成低版本?CAD版本转换方法分享

某些情况下&#xff0c;较新的CAD软件版本可能不被较旧的CAD软件版本所支持。如果你需要与使用较旧版本CAD的人进行交流、共享或协作&#xff0c;将高版本CAD转换为低版本可以确保文件能够顺利打开和编辑。那么问题来了&#xff0c;怎么将高版本CAD转换成低版本呢&#xff1f;教…

29,stack容器

29.1stack基本概念 概念&#xff1a;stack是一种先进后出(First In Last Out,FILO)的数据结构&#xff0c;它只有一个出口 栈容器 符合先进后出 栈中只有顶端的元素才可以被外界使用&#xff0c;因此栈不允许有遍历行为 栈可以判断容器为空与否(empty) 栈可以返回元素个数(…

【SQL】计算每个人的完成率

目录 前提任务的完成率前三名拓展&#xff1a;达梦如何去实现除法有余数拓展&#xff1a;MySQL 任务的完成率前三名 前提 达梦数据库&#xff1a; select 1/3; # 0不要求四舍五入 任务的完成率前三名 # nick_name 人名 # finishNum 当前这个人的任务完成数 # total 当前这…

Go语言之并发编程练习,GO协程初识,互斥锁,管道:channel的读写操作,生产者消费者

GO协程初识 package mainimport ("fmt""sync""time" )func read() {defer wg.Done()fmt.Println("read start")time.Sleep(time.Second * 3)fmt.Println("read end") }func listenMusci() {defer wg.Done()fmt.Println(&qu…

【lesson2】Linux基本指令1

文章目录 touch创建文件更新文件最新修改时间 lslsls -lls -als -i pwd...cdcd 路径法一&#xff1a;cd 绝对路径法二&#xff1a;cd 相对路径 cd - stattreemkdirmkdir创建一个目录mkdir -p创建一串路径目录 ~/rmdirrmrmrm -frm -rrm -i mancpcpcp -r mvnaocatcatcat -n ta…

错过后悔!!!Java岗秋招最全面试攻略!!

这里给大家整理了完整的Java完整的架构面试核心知识体系。按照这样的一个脉络&#xff0c;只要大家能够掌握这里面的绝大部分内容&#xff0c;并且有过相应的一些实践&#xff0c;那么就可以去面试自己心仪的工作了。 这份笔记总结都是作者近几年结合众多牛客的面经分享&#…

【完整版】zabbix企业级监控(概念、简单操作、页面优化、监控主机自己、监控linux、监控Win10)

第三阶段基础 时 间&#xff1a;2023年7月19日 参加人&#xff1a;全班人员 内 容&#xff1a; zabbix企业级监控 目录 一、Zabbix概述 &#xff08;一&#xff09;Zabbix简介 &#xff08;二&#xff09;Zabbix运行条件&#xff1a; &#xff08;三&#xff09;Zab…

【面试笔试避坑指南】一

从这篇文章开始 进行笔试的训练环节&#xff0c;我会在 本专栏详细介绍笔试的易错点&#xff0c;帮助大家精准避坑。 1.有如下一段代码&#xff08;unit16_t为2字节无符号整数&#xff0c;unit8_t位1字节无符号整数&#xff09;&#xff1b; 请问x.z.n在大字节序和小字节序机器…

MySQL第五章、索引事务

目录 一、索引 1.1 概念 1.2 作用 1.3 使用场景 1.4 使用 1.5 案例 二、索引背后的数据结构 2.1 B-树&#xff08;B树&#xff09; 2.2 B树&#xff08;MySQL背后数据结构&#xff09; 三、事务 3.1 为什么使用事务 3.2 事务的概念 3.3 使用 3.4并发执行事务产生…

《Java黑皮书基础篇第10版》 第12章【习题】

Java语言程序设计 习题第十二章 12.2章节习题 12.1 使用异常处理的优势是什么? 如果没有异常处理&#xff0c;方法执行(called method)出错时&#xff0c;调用者(caller)没有办法进行处理&#xff08;比如方法所在的类被封装&#xff0c;调用者无法访问&#xff09;&#xf…

ubuntu版本Linux操作系统上安装键盘中文输入法

要在ubuntu版本Linux操作系统上安装键盘中文输入法 可以按照以下步骤进行操作&#xff1a; 1、Linux终端输入&#xff1a;sudo apt-get install ibus-pinyin 这将安装一个常用的中文输入法 “ibus-pinyin”。 2、重新启动系统&#xff1a;为了使输入法生效&#xff0c;需要…

喜报!沃通CA中标河南城建学院SSL证书服务项目

沃通CA再添中标喜报&#xff01;沃通CA中标河南城建学院SSL证书服务项目&#xff0c;为河南城建学院官网及各类信息系统提供HTTPS加密及网站可信身份认证&#xff0c;保护数据传输安全、保障通信主体身份可信。 为加快教育现代化、推进新时代教育信息化发展&#xff0c;我国发布…

springboot 内嵌H2

pom 文件配置 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.0.5</version><relativePath/></parent><dependencies><dependency>&…