JZOJsenior3541.【清华集训2014】破冰派对
来源:互联网 发布:上海淘宝运营助理招聘 编辑:程序博客网 时间:2024/05/16 17:41
problem
Description
由于计算机系的同学们都很宅,很多同学虽然身在一个系,但是入学很久还是相互不认识。学生会主席小Y希望举办一次破冰派对,要让同学们多从寝室里走出来参加娱乐活动,也要让尽量多不认识的同学们通过活动相互认识。自然的,如果参加活动的同学互相都不认识,那便是极好的。:)
要办一次成功的派对是很不容易的,不光需要有同学参加,优秀的工作人员也是必不可少的。他们需要为派对的筹办付出很多的努力,因此一个和谐的团队是非常重要的。小Y希望所有工作人员都是相互认识的。
计算机系一共有N个同学,所有同学从1到N编号。有M对同学相互认识,而其余的同学相互不认识。
小Y希望从中选出一些工作人员组成工作团队,让这个工作团队负责活动的组织,而其余的所有非工作人员,就自然都成为了活动的参与者。小Y要求:
1、工作团队的成员必须相互认识;
2、参与活动的同学必须相互不认识;
3、至少有一个同学参与活动,也至少有一个同学是工作人员。
小Y想知道,一共有多少种工作团队的选择方案呢?
Input
第一行读入一个整数T,表示测试数据的组数。接下来T组数据,每组数据格式如下:
第一行包含两个整数N和M。
接下来M行,第i行包含两个不同的,在1到N之间的整数xi,yi,表示编号为xi和yi的同学相互认识。
输入数据保证,在每一组测试数据中,任意两个同学之间的朋友关系都不会被列出两次。
Output
对于每一组测试数据输出一行一个整数,表示可行的方案总数,模1000003的余数。
Sample Input
2
1 0
4 4
1 2
1 3
2 3
3 4
Sample Output
0
3
Data Constraint
对于20%的数据满足N ≤ 10;
对于40%的数据满足N ≤ 30;
对于100%的数据满足1 ≤ N ≤ 1000,0 ≤ M ≤ N^2,1 ≤ T ≤ 6。
Hint
如果程序没有输出T行整数,直接得0分;
如果程序对于每一组测试数据均输出正确答案,则得10分;
如果程序输出并不完全正确,但是对于超过一半的测试数据输出正确答案,则得5分;
其余情况得0分。
注意:样例输出可以得到10分。
analysis
20%的数据
直接跑一个毫无优化的哦对了不要告诉我你连这都不会
40%的数据
给dfs加个剪枝:若当前同学与已选同学有不认识就不继续dfs,40分
100%的数据
再加一个剪枝:若当前同学与未选同学认识也不继续dfs,100分
愚蠢的OJ会卡成TLE90,强行开O2跑得飞快
code
#pragma GCC optimize(2)#include<cstdio>#include<cstring>using namespace std;int a[1001][1001];int p[1001];int n,m,t,ans;void dfs(int x,int y){ if(x>n) { if(y!=0 && y!=n)ans++; return; } bool bz=1,bz1=1; for(int j=1;j<x;j++) { if(p[j]) { if(a[x][j]==0)bz=0; } else { if(a[x][j])bz1=0; } } if(bz) { p[x]=1; dfs(x+1,y+1); } if(bz1) { p[x]=0; dfs(x+1,y); }}int main(){ //freopen("readin.txt","r",stdin); scanf("%d",&t); while(t--) { memset(a,0,sizeof(a)); memset(p,0,sizeof(p)); scanf("%d%d",&n,&m); for(int i=1;i<=m;i++) { int x,y; scanf("%d%d",&x,&y); a[x][y]=a[y][x]=1; } ans=0; dfs(1,0); printf("%d\n",ans); }}
- JZOJsenior3541.【清华集训2014】破冰派对
- [jzoj]3541. 【清华集训2014】破冰派对(组合数+思维)
- 【清华集训2014】mex
- 【清华集训2014】mex
- 【清华集训2014】mex
- 【清华集训2014】mex
- 【清华集训2014】mex
- 【清华集训2014】【BZOJ3817】Sum
- 【清华集训2014】【BZOJ3811】玛里苟斯
- 【清华集训2014】【BZOJ3812】主旋律
- #46. 【清华集训2014】玄学
- JZOJ 3547【清华集训2014】mex
- uoj#46. 【清华集训2014】玄学
- [BZOJ3585][清华集训2014]mex 主席树
- [清华集训2015]V
- 2016清华集训滚粗记
- 清华集训2017滚粗记
- 清华集训酱油记
- Maven-clean-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME
- 双色球案例
- linux下的软链接类似于windows下的快捷方式
- Lintcode主元素问题
- CentOS命令—客户端安装
- JZOJsenior3541.【清华集训2014】破冰派对
- 等比矩阵求和超简法及其python代码10行实现
- spring-boot+Java8
- extern
- python selenium+PIL+免验证码登陆
- Leetcode解题笔记 5.Longest Palindromic Substring [Medium] 动态规划解法
- 学习分布式缓存技术Redis系列(总序)
- openvr_survivor第二期开发活动:VR畸变
- Sqoop导入与导出底层