TOJ 4099 组队要和谐
来源:互联网 发布:淘宝美工怎么优化店铺 编辑:程序博客网 时间:2024/04/29 03:49
组队要和谐
总提交: 0 测试通过: 0
描述
为了备战明年的省赛。我们煞费苦心的crq教练打算从众多大一的ACMER中组织一个主力队伍。
众所周知,大一新生中人才济济,有N个人都有可以参加省赛的实力,为了安排合适的组合。crq教练开始研究这 N 个人中的所有三人组 ( 在crq眼中,这些ACMER的实力都平分秋色,所以只考虑三人的组合) ,但是这样的三人组合实在太多了,所以crq教练只打算研究其中的一部分。
因为在这N个人中有些人在一起做过题,而有些则没有。凭借多年的执教经验,crq发现如果这3名ACMER A, B, C(仅考虑3个人的组合所以顺序无关)中存在 A 和 B一起做过题, 而A和C没一起做过题,那么A就很喜欢跟B交流,而不喜欢跟C交流,这时我们就说 (A, B, C)是一个 " 不和谐 "的队伍。否则,如果三个人互相都一起做过题或者互相都没有做过题,则说(A, B, C)组成了一个"和谐"的队伍,在安排阵容时 crq打算只考虑那些 "和谐" 的队伍组合。
现在,crq知道有N名优秀的大一ACMER ,也知道这其中哪些人在一起做过题,现在他想知道从这 N 个人中可以安排出多少个 " 和谐" 的队伍。但是,crq的数学很差(这个有点瞎扯了,与实际情况不符),于是想借这次ACM比赛的机会向大家求助所以你的任务就是算出有多少个 " 和谐的"队伍。
输入
第1行T表示有T组测试数据,T <= 30
第2行N和M,其中N表示有N名ACMER,编号从1到N,( 1 <= N<=2000 ) ,M 表示 有M 对人他们一起做过题,( 0 <= M <= N * (N - 1) / 2 )
接下来M行每行两个数A B表示A和B一起做过题( 1 <= A, B <= N and A !=B )
输入保证M对人里不会有相同的二人组合出现
输出
对于每组测试数据,输出一个整数,表示可以安排出多少个“和谐”的队伍。
样例输入
33 03 21 22 36 61 21 32 34 55 64 6
样例输出
102
重点在于理解
对于每个人来说,朋友里面选一个,非朋友里面选一个
非和谐队伍的情况有两种
一:1和2一起做过题,2和3一起做过题
那么这样的情况在算1的时候会算一遍,算3的时候也会算一遍
二:1和2一起做过题,3和1,2都没做过题
那么这样的情况下算1,2的时候都会算一遍
所以在减去的时候要除以2,因为没种情况会被计算两遍
#include<stdio.h>#include<string.h>int map[2010];int main(){int t,i,j,k,n,m,a,b;scanf("%d",&t);while(t--){memset(map,0,sizeof(map));scanf("%d %d",&n,&m);while(m--){scanf("%d %d",&a,&b);map[a]++;map[b]++;}__int64 x=1,y=0;x=x*n*(n-1)*(n-2)/6;for(i=1;i<=n;i++){y+=map[i]*(n-1-map[i]); }x-=y/2;printf("%I64d\n",x);}}
- TOJ 4099 组队要和谐
- 和谐家园要经营
- 和谐
- 和谐
- 和谐
- 和谐
- 组队
- Android 你好, 初次见面,以后要和谐一点
- cadence和谐,和谐
- 和谐生活
- 宁静和谐
- 再次和谐
- 和谐系统
- 为了和谐
- 河南理工的ACMer要开始组队了
- 组队成功
- 组队系统
- 组队总结
- JS操作DOM元素属性和方法
- rabbitMQ学习笔记(四) 发布/订阅消息
- NYOJ 354题 Stripies
- poj_1978 Triangular Pastures
- 第 9 章 顺序容器
- TOJ 4099 组队要和谐
- 安装指定版本的Rails
- 删除Win7通知区域内无效图标的方法
- Delphi FastReport动态加载图片
- 树莓派肿么玩儿?
- Category、Extension、Protocol
- win7下jdk安装环境变量配置
- UVA 11149 Power of Matrix 倍增法
- hdu 1172 猜数字