CF1093D Beautiful Graph
2024-09-30 04:08:04
思路:
题目倒是没啥好说的,就是注意memset的效率问题。如果循环多次调用memset去初始化一个比较大的数组,那就会很费时间。就是因为这个被hack了。:(
实现:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll; const int MOD = ;
const int MAXN = ; vector<int> G[MAXN];
int col[MAXN];
int n, m;
ll c1 = , c2 = , bin[MAXN]; bool dfs(int v, int c)
{
col[v] = c;
if (c == ) c1++;
else c2++;
for (int i = ; i < G[v].size(); i++)
{
if (col[G[v][i]] == c) return false;
if (col[G[v][i]] == && !dfs(G[v][i], - c)) return false;
}
return true;
} int main()
{
bin[] = ;
for (int i = ; i <= ; i++) bin[i] = bin[i - ] * % MOD;
int t, v, u;
scanf("%d", &t);
while (t--)
{
scanf("%d%d", &n, &m);
for (int i = ; i <= n; i++) { G[i].clear(); col[i] = ; }
for (int i = ; i < m; i++)
{
scanf("%d%d", &u, &v);
G[u].push_back(v);
G[v].push_back(u);
}
bool flg = true;
ll ans = ;
for (int i = ; i <= n; i++)
{
if (col[i]) continue;
ll tmp = ; c1 = c2 = ;
if (!dfs(i, )) { flg = false; break; }
tmp = (bin[c1] + bin[c2]) % MOD;
ans = ans * tmp % MOD;
}
if (!flg) puts("");
else printf("%lld\n", ans);
}
return ;
}
最新文章
- Redis安装及实现session共享
- How do I see all foreign keys to a table or column?
- BZOJ 2882 &; 后缀数组的傻逼实现
- SQL语句创建表和数据库
- PC/UVa 题号: 110105/10267 Graphical Editor (图形化编辑器)题解
- .PIG File
- LibLinear(SVM包)的MATLAB安装
- STM32启动文件的选择
- JavaScript功能规划的基本语法总结
- nodejs 代码设计模式1:同步函数变异步
- SQLAlchemy基础操作一
- JVM GC杂谈之理论入门
- Linux_查找文件
- PHP+MySql+Bootstrap实现用户界面数据的删除、修改与批量选择删除——实例操作
- js——事件冒泡与捕获小例子
- adb 常用命名
- win7 系统中的加密文件打不开了
- 手工sql注入简单入门
- APP强制退出
- ruby楼层排序问题