题意与分析

题源: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)的更多相关文章

  1. 「日常训练」ZgukistringZ(Codeforces Round #307 Div. 2 B)

    题意与分析(CodeForces 551B) 这他妈哪里是日常训练,这是日常弟中弟. 题意是这样的,给出一个字符串A,再给出两个字符串B,C,求A中任意量字符交换后(不限制次数)能够得到的使B,C作为 ...

  2. 「日常训练」 神、上帝以及老天爷 (HDU 2048)

    题意 数论中的错排问题.记错排为Dn" role="presentation">DnDn,求Dnn!" role="presentation&q ...

  3. 「日常训练」 不容易系列之(3)—— LELE的RPG难题 (HDU 2045)

    题目简述 有排成一行的n" role="presentation">nn个方格,用红(Red).粉(Pink).绿(Green)三色涂每个格子,每格涂一色,要求任何 ...

  4. 「日常训练」 Fire!(UVA-11624)

    与其说是训练不如说是重温.重新写了Java版本的代码. import java.util.*; import java.math.*; import java.io.BufferedInputStre ...

  5. 「日常训练」COMMON 约数研究(HYSBZ-1968)

    题意与分析 感谢https://www.cnblogs.com/Leohh/p/7512960.html的题解.这题话说原来不在我的训练范围,正好有个同学问我,我就拿来做做.数学果然不是我擅长的啊,这 ...

  6. 「日常训练」Mike and Feet(Codeforces Round #305 Div. 2 D)

    题意 (Codeforces 548D) 对一个有$n$个数的数列,我们要求其连续$x(1\le x\le n)$(对于每个$x$,这样的连续group有若干个)的最小数的最大值. 分析 这是一道用了 ...

  7. 「日常训练」 Mike and Fun (CFR305D2B)

    题意(CodeForces 548B) 每次对01矩阵中的一位取反,问每次操作后,单列中最长连续1的长度. 分析 非常非常简单,但是我当时训练的时候WA了四次...无力吐槽了,人间 不值得.jpg 代 ...

  8. 「日常训练」Common Subexpression Elimination(UVa-12219)

    今天做的题目就是抱佛脚2333 懂的都懂. 这条题目干了好几天,最后还是参考别人的代码敲出来了,但是自己独立思考了两天多,还是有收获的. 思路分析 做这条题我是先按照之前的那条题目(The SetSt ...

  9. Counting Cliques HDU - 5952 单向边dfs

    题目:题目链接 思路:这道题vj上Time limit:4000 ms,HDU上Time Limit: 8000/4000 MS (Java/Others),且不考虑oj测评机比现场赛慢很多,但10月 ...

随机推荐

  1. 日期时间JS插件

    首先要引入基本文件:bootstrap的基本js和css文件,因为用到了jquery所以要引入jquery文件 <script src="jquery-1.11.2.min.js&qu ...

  2. js 模拟百度关键字搜索与跳转

    测试效果: css样式: ul{ display:none; } html代码: <input type="text" id="text" /> & ...

  3. matlab中boxplot字体大小设置

    网上找到的:set(findobj(gca,'Type','text'),'FontSize',18) boxplot() uses the default axes labeling for the ...

  4. C#处理List<object>重复数据的问题

    private class ListDistinct : IEqualityComparer<object> { public bool Equals(object x, object y ...

  5. 挖矿病毒——test用户的ld-linux-x86-64任务

    表现:24核48线程的机器,极度占用系统CPU资源(约60%) 通过top查看之后可以看到排在首位的是test用户的ld-linux-x86-64任务. solution: 首先,/etc/passw ...

  6. C# 泛型的协变和逆变 (转载)

    1. 可变性的类型:协变性和逆变性 可变性是以一种类型安全的方式,将一个对象当做另一个对象来使用.如果不能将一个类型替换为另一个类型,那么这个类型就称之为:不变量. 协变和逆变是两个相互对立的概念: ...

  7. unittest单元测试框架之测试结果输出到外部文件(四)

    1.test_suit执行测试用例及输出结果前 添加如下代码(打开会新建d:/result.txt文件): with open("d:\\result.txt","a&q ...

  8. 团体队列 UVA540 Team Queue

    题目描述 有t个团队的人正在排一个长队.每次新来一个人时,如果他有队友在排队,那么新人会插队到最后一个队友的身后.如果没有任何一个队友排队,则他会被排到长队的队尾. 输入每个团队中所有队员的编号,要求 ...

  9. QT 防止FTP 上传软件在断连处 Crash

    前段时间发现项目中的上传FTP软件有可能会在从服务器申请断连时Crash, 所以加了一个Timer. 由于项目代码行数过大, 此处上传部分代码片段. timeoutTimer = new QTimer ...

  10. Vue——关于css过渡和动画那些事

    1. 单元素/组件的过渡transition Vue 提供了 transition 的封装组件,在下列情形中,可以给任何元素和组件添加进入/离开过渡 条件渲染 (使用 v-if) 条件展示 (使用 v ...