「日常训练」 Counting Cliques(HDU-5952)
题意与分析
题源:2016ACM/ICPC沈阳现场赛。
这题让我知道了什么是团,不过最恶心的还是这题的数据了,卡了无数次- -
解决方法是维护一个G数组,不能去遍历邻接矩阵。至少我改了这么一个地方就过了,实在找不到其他可以卡人的地方了。。。
代码
#include <bits/stdc++.h>
#define MP make_pair
#define PB push_back
#define fi first
#define se second
#define ZERO(x) memset((x), 0, sizeof(x))
#define ALL(x) (x).begin(),(x).end()
#define rep(i, a, b) for (repType i = (a); i <= (b); ++i)
#define per(i, a, b) for (repType i = (a); i >= (b); --i)
#define QUICKIO \
ios::sync_with_stdio(false); \
cin.tie(0); \
cout.tie(0);
using namespace std;
typedef long long ll;
typedef int repType;
const int MAXN=110;
vector<int> G[MAXN];
bool mp[MAXN][MAXN];
int n, m, s;
int ans;
void
dfs(int u, int* stk, int nowdep)
{
if(nowdep==s)
{
ans++; return;
}
rep(i, 0, int(G[u].size())-1) //可能加入团的点
{
int v=G[u][i];
bool ok=true;
rep(j, 1, nowdep) //遍历团中所有点,判断是否与将要加入的点相连
{
if(!mp[v][stk[j]])
{
ok=false;
break;
}
}
if(ok) //这个点可以加入团,加入并继续深搜
{
stk[++nowdep]=v;
dfs(v, stk, nowdep);
stk[nowdep--]=0;
}
}
}
int
main()
{
int T; scanf("%d", &T);
while(T--)
{
scanf("%d%d%d", &n, &m, &s);
rep(i, 1, n) { G[i].clear(); }
ZERO(mp);
ans=0;
while(m--)
{
int u, v;
scanf("%d%d", &u, &v);
if(u>v) { swap(u, v); }
G[u].push_back(v);
mp[u][v]=mp[v][u]=true;
}
rep(i, 1, n)
{
int nd=1; //团的规模
int stk[MAXN]; //tmp集合表示这个团中有哪些点
stk[1]=i;
dfs(i, stk, nd);
}
printf("%d\n", ans);
}
return 0;
}
「日常训练」 Counting Cliques(HDU-5952)的更多相关文章
- 「日常训练」ZgukistringZ(Codeforces Round #307 Div. 2 B)
题意与分析(CodeForces 551B) 这他妈哪里是日常训练,这是日常弟中弟. 题意是这样的,给出一个字符串A,再给出两个字符串B,C,求A中任意量字符交换后(不限制次数)能够得到的使B,C作为 ...
- 「日常训练」 神、上帝以及老天爷 (HDU 2048)
题意 数论中的错排问题.记错排为Dn" role="presentation">DnDn,求Dnn!" role="presentation&q ...
- 「日常训练」 不容易系列之(3)—— LELE的RPG难题 (HDU 2045)
题目简述 有排成一行的n" role="presentation">nn个方格,用红(Red).粉(Pink).绿(Green)三色涂每个格子,每格涂一色,要求任何 ...
- 「日常训练」 Fire!(UVA-11624)
与其说是训练不如说是重温.重新写了Java版本的代码. import java.util.*; import java.math.*; import java.io.BufferedInputStre ...
- 「日常训练」COMMON 约数研究(HYSBZ-1968)
题意与分析 感谢https://www.cnblogs.com/Leohh/p/7512960.html的题解.这题话说原来不在我的训练范围,正好有个同学问我,我就拿来做做.数学果然不是我擅长的啊,这 ...
- 「日常训练」Mike and Feet(Codeforces Round #305 Div. 2 D)
题意 (Codeforces 548D) 对一个有$n$个数的数列,我们要求其连续$x(1\le x\le n)$(对于每个$x$,这样的连续group有若干个)的最小数的最大值. 分析 这是一道用了 ...
- 「日常训练」 Mike and Fun (CFR305D2B)
题意(CodeForces 548B) 每次对01矩阵中的一位取反,问每次操作后,单列中最长连续1的长度. 分析 非常非常简单,但是我当时训练的时候WA了四次...无力吐槽了,人间 不值得.jpg 代 ...
- 「日常训练」Common Subexpression Elimination(UVa-12219)
今天做的题目就是抱佛脚2333 懂的都懂. 这条题目干了好几天,最后还是参考别人的代码敲出来了,但是自己独立思考了两天多,还是有收获的. 思路分析 做这条题我是先按照之前的那条题目(The SetSt ...
- Counting Cliques HDU - 5952 单向边dfs
题目:题目链接 思路:这道题vj上Time limit:4000 ms,HDU上Time Limit: 8000/4000 MS (Java/Others),且不考虑oj测评机比现场赛慢很多,但10月 ...
随机推荐
- php函数:call_user_func
前段时间浏览文档发现一个有意思的PHP函数:call_user_func [文档地址] 函数作用:该函数主要用于通过函数名去调用该函数 例如: function test(){ echo " ...
- supervisord常见问题
第一种: 你在没有修改配置文件之前就已经启动:~supervisord -c supervisord.conf 然后又去修改配置文件,想重新读取一下但是却出现了以下报错: Another progra ...
- css圆角和阴影兼容问题(ie7,ie8)
<!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Conten ...
- jquery获取所有选中的checkbox
获取所有name为spCodeId的checkbox var spCodesTemp = ""; $("input:checkbox[name=spCodeI ...
- ASP.Net Mvc 5 学习记录2015-9-9
我之前一直都是学习和开发都采用ASP.Net WebForm,对MVC的一直都是一知半解,最初以为ASP.Net WebForm的N层架构就是MVC.其实N层架构设计思想是"高内聚,低耦合& ...
- 自动化运维工具Ansible实战(四)常用模块
转载链接:http://blog.51cto.com/liqingbiao/1962609 Ansible模块按功能分为:云模块.集群模块. 命令模块.数据库模块.文件模块.资产模块.消息模块.监 ...
- 【Java】使用Atomic变量实现锁
Atomic原子操作 在 Java 5.0 提供了 java.util.concurrent(简称JUC)包,在此包中增加了在并发编程中很常用的工具类 Java从JDK1.5开始提供了java.uti ...
- 执行SQL查询导致磁盘耗尽故障演示
a fellow in IMG wechat group 2 met an error about running out of disk space when using MySQL ...
- [转]去掉IOS下的input 和textarea的内阴影
在IOS下,input 和textarea表单默认会有个内阴影,一定程度上影响视觉一致,可通过设置下面代码去掉: input{-webkit-appearance: none;}
- SVN错误记录
1.SVN错误:Attempted to lock an already-locked dir 发生这个错误多是中断提交导致了,执行clear后可修复 右键项目--->team--->清理 ...