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

时间:2024-01-10 01:07:02 标签:  深度优先  算法  c++  

 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;
}
来源:https://blоg.сsdn.nеt/qq_63739337/аrtiсlе/dеtаils/131815190

智能推荐

 Problem Statement There are 

标签:深度优先  算法  c++  

title: categories: 算法题解description: tags: - atcoder - DFS - 思维 - 贪心 - 差分 - 概率DP - 连分数cover: /img/chino/vec/chino56.jpgkatex: truedate: 2023-12-21 14:47:38A - Three Threes (abc333 A)题目大意给定一个

标签:Beginner  AtCoder  Contest  

A - Tomorrow (abc331 A)题目大意给定一年的月数和一月的天数,以及当天日期,问次日的日期。解题思路一个简单的进制加法运算,超出进制数则向前加一。 神奇的代码#include <bits/stdc++.h>using namespace std;using LL = long long;int main(void) { ios::sync_

标签:Beginner  AtCoder  Contest  

劳累一天不该写题,启发式合并都写错了A - Spread (abc329 A)题目大意给定一个字符串,将每个字符输出出来,中间留个空格。解题思路遍历输出即可。 神奇的代码#include <bits/stdc++.h>using namespace std;using LL = long long;i

标签:Beginner  AtCoder  Contest  

A - First ABC (abc311 A)题目大意给定一个字符串,问最短的一个前缀,包含A B C这三个字符。解题思路注意到这个前缀的末尾字母一定是这三个字母中的一个,因此答案就是这三个字母出现位置最早的最大值。 神奇的代码#include <bits/stdc++.h>using namespace std;using LL = lo

标签:Beginner  AtCoder  Contest  

A - First Player (abc304 a)题目大意依次给定每个人的姓名和年龄,排成一圈。从年龄最小的人依次输出姓名。解题思路找到年龄最小的,依次输出就好了。 神奇的代码#include <bits/stdc++.h>using namespace std;using LL = long long;int main(void) { ios:

标签:Beginner  AtCoder  Contest  

A - Overall Winner (abc301 a)题目大意给定一个字符串表示高桥和青木每局的获胜情况。如果高桥获胜局数多,或者两个胜局相等,但高桥率先取得那么多胜场,则高桥获胜,否则青木获胜。问谁获胜。解题思路按照题意,统计两者的获胜局数比较即可。如果两者局数相等,可以看最后一局谁胜,青木胜则意味着高桥率先取得那么多胜场,即高桥胜,反之青木胜。 神奇的代码

标签:Beginner  AtCoder  Contest  

A - Similar String (abc303 a)题目大意给定两个字符串,问这两个字符串是否相似。两个字符串相似,需要每个字母,要么完全相同,要么一个是1一个是l,要么一个是0一个是o解题思路按照题意模拟即可。可以将全部1换成l,全部0换成o,再判断相等。

标签:Beginner  AtCoder  Contest  

今天来讲解一下AtCoder Beginner Contest 276&nbsp;C和D传送地址:https://atcoder.jp/contests/abc276一.&nbsp;C - Previous Permutation题目大意:给你一个有数字 1~n 组成的序列,将数字1~n进行全排列并且从小到大排序后,这是第k个。问第k-1个是什么?这一题由于n<=100,明显不能使用暴力枚举,所以这里引入一个新函数:prev_permutation这个函数的功能刚好与 next_permutation 的作用相反prev_permu

标签:Beginner  AtCoder  Contest  

比赛名称&#xff1a;AtCoder Grand Contest 0

标签:每日刷题打卡  AtCoder  算法  动态规划  c++  AtCoder  

传送门&#xff1a;AtCoder Regular Contest 163 - AtCoder

标签:算法  c++  动态规划  

【背景】电脑安装了M365 Apps for enterprise的客户端&#xff0c;遇到不常见

标签:系统运维  M365运维  microsoft  缓存  运维  

题目传送门Problem StatementFind the sum of integers between&nbsp;1&nbsp;and&nbsp;N (inclusive) that are not multiples of&nbsp;

标签:定理  AtCoder  FizzBuzz  sum  Hard  

目录A - CAPS LOCKB - Yellow and Red CardC - Four VariablesD - Unicyclic ComponentsE - Transitivity(补)A - CAPS LOCK题意:将输入字母转成大写代码:#include <bits/stdc++.h>#define int long longusing namespace std;signed main

标签:题解  AtCoder  

1.概述:这本书的第二部分主要是 Google 的团队文化的介绍,主要是团队合作以及知识分享方面的方法和观点。下面介绍我作为初学者的一些比较有感触的点。在目前的学习生活以及网上冲浪中,经常会问问题,以及有一些文档方面的做法,不是很符合规范。2. 团队合作2.1 Hiding considered Harmful

标签:amp  Knowledge  Culture  teams  Engineering  

代码请参考guyueju的代码 本文用的代号: min_cost:

标签:robot  ai  算法  图论  

Microsoft Teams无法正常登录&#xff0c;一登录就提示CAA20002错误或caa7

标签:microsoft  windows  

题意n个节点,n<=200,你需要构造这n个几点成为一棵树,并且这棵树的中序遍历为1-n;你构造树的节点之间的最短路构成一个n×n的最短距离矩阵d;同时给你n×n的权重矩阵c;最最小的Σdij*cij思路1. 显然,中序遍历,对于根节点来说,左边的序号小于根,右边的需要大于根2. cij同化成对于i,j之间的最短路上,每条边增加cij,这样相当于对每条边考虑了

标签:Northern  Eurasia  Onsite  NERC  icpc  

猜你喜欢

Problem - A - Codeforces

标签:AK-CF-ABC  蓝桥杯  拓扑学  c++  

MIPI&#xff1a;即移动产业处理器接口&#xff08;Mobile Industry Proc

标签:硬件工程  

题意给你n个节点的树,让你给每个节点进行赋值,并且赋的值需要为正整数;同时当一个节点的值等于所有邻居节点的值的和时,这个点为好点;求出一组赋值情况,满足树的好点个数最大化的同时,所有节点赋值的总和最小;思路1. 显然无法存在两个好点相邻存在的情况(除非只有两个节点);2. 对于坏点直接赋值为1即可;3. 可以树形dp解

标签:codeforces  Tree  weight  

题意1-n排列,构成一个圆;1-n每个点有个值0或者1,0代表点的度为偶数,1代表点的度为计数;询问能否构成一棵树,树的连边在圆内不会相交,在圆边上可以相交,可以则输出方案。提示1. 首先考虑什么时候无解,显然,奇数点个数是偶数,并且>=2

标签:codeforces  Circular  Tree  Spanning  

      这几天在写洛谷算法题的时候被暴力枚举的题目给困住了,一个个的需要列出所有可能,挺麻烦的,这几天的题目写的很慢,其中遇到了一个题需要用dfs(深度优先搜索算法 ),个用来标记该点是否被访问过,一个用来把该点放入数组,所以这两个标记是相辅相成的,一定同时出现;dfs就是随机选定一个起点将其标记为已经访问过的点,然后就是递归调用进行与其相邻的点的搜索,直到所有的点都被访问完。简单点说就是从顶点V开始,访问这个顶点,然后依次从V的未被访问的邻接点出发深度优先遍历图,直至图中所有和V有路径的相通的顶点都被访问了,如果此时还有顶点未被访问,则选择图中未被访问的那个顶点作为起点,重复上述动作。但应用起来好难,所以现在的了解仅仅只是在理论层面。      说起dfs就

标签:dfsdfs  

&#x1f386;音乐分享&#xff08;点击链接可以听哦&#xff0

标签:模板  深度优先  算法  

知识概览 DFS、BFS都可以对整个问题

标签:经典算法总结  DFS  BFS  算法  DFS  BFS  队列  暴搜  深度优先搜索  宽度优先搜索  

标签:dlang  d  d  

原标题:【精品博文】MIPI扫盲——D-PHY介绍(一) D-PHY种的PHY是物理层(Physical)的意思,那么D是什么意思呢?在MIPI D-PHY的文档中有提到过,D-PHY的最初版本的设计目标是500Mbits/s,而D是罗马数字(拉丁文数字)中500 。同理C和M分别是罗马数字中的100和1000,也就是C-PHY和M-PHY中C和M的意思了。 D-PHY是一种高速、低功耗的源同步物理层,由于采用了高功效设计,

标签:MIPI  PHY  

// 如果之后OpenBMC架构有改&#xff0c;这边不会更新

标签:BMC  Redfish  BMC  restful  

写在最前&#xff1a;        粉丝快要破百了&#xff0c;非常感谢大家的

标签:Captainfly的算法笔记  算法  c++  深度优先  数据结构  c语言  

参考文章&#xff0c;原文链接&#xff1a;(5条消息) DFS(深度搜

标签:java基础  深度优先  算法  数据结构  java  蓝桥杯  

Everyday English Your optimal career is

标签:c++  开发语言  深度优先  

1、hdfs dfs -ls

标签:bigdata  hdfs  

相关问题

相关文章

热门文章

推荐文章

相关标签