CF1093D Beautiful Graph
思路:
题目倒是没啥好说的,就是注意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 ;
}
CF1093D Beautiful Graph的更多相关文章
- Codeforces 1093D Beautiful Graph(二分图染色+计数)
题目链接:Beautiful Graph 题意:给定一张无向无权图,每个顶点可以赋值1,2,3,现要求相邻节点一奇一偶,求符合要求的图的个数. 题解:由于一奇一偶,需二分图判定,染色.判定失败,直接输 ...
- Educational Codeforces Round 56 (Rated for Div. 2) D. Beautiful Graph 【规律 && DFS】
传送门:http://codeforces.com/contest/1093/problem/D D. Beautiful Graph time limit per test 2 seconds me ...
- D - Beautiful Graph CodeForces - 1093D (二分图染色+方案数)
D - Beautiful Graph CodeForces - 1093D You are given an undirected unweighted graph consisting of nn ...
- Codeforces 1093D. Beautiful Graph【二分图染色】+【组合数】
<题目链接> 题目大意: 给你一个无向图(该无向图无自环,且无重边),现在要你给这个无向图的点加权,所加权值可以是1,2,3.给这些点加权之后,要使得任意边的两个端点权值之和为奇数,问总共 ...
- CodeForces - 1093D:Beautiful Graph(二分图判定+方案数)
题意:给定无向图,让你给点加权(1,2,3),使得每条边是两端点点权和维奇数. 思路:一个连通块是个二分图,判定二分图可以dfs,并查集,2-sat染色. 这里用的并查集(还可以带权并查集优化一下,或 ...
- CF D - Beautiful Graph(dfs 染色问题吧)给你一个图,每个节点可以赋值1,2,3三种数字,相邻的节点的和必须是奇数,问有多少中方法。
题意: 给你一个图,每个节点可以赋值1,2,3三种数字,相邻的节点的和必须是奇数,问有多少中方法. 分析: 很容易就可以发现如果这个图中是有奇数的环的话,那这是肯定不行的 ,否则这个环的贡献是为2^s ...
- Educational Codeforces Round 56 D - Beautiful Graph
题目大意: 在给定的一个图中(可能不连通) 给每个点赋值1.2.3 使得一条边上的两个端点点权相加为奇数 求方案数 一条满足条件的路径上的点权必为一奇一偶交替 偶数只有2 奇数有1.3 若位于1.3 ...
- D - Beautiful Graph (深搜)
这个题深搜容易解决,结果用了广搜,动手之前还是要想清楚,然后自己的代码写错的情况下,没有重写,而是在原有的基础上,进行修改,结果有个判定的初始化条件放错位置,浪费了一个小时... 就是给一个无向图,任 ...
- Educational Codeforces Round 56 (Rated for Div. 2) D. Beautiful Graph (二分图染色)
题意:有\(n\)个点,\(m\)条边的无向图,可以给每个点赋点权\({1,2,3}\),使得每个点连的奇偶不同,问有多少种方案,答案对\(998244353\)取模. 题解:要使得每个点所连的奇偶不 ...
随机推荐
- 【USACO】Optimal Milking
题目链接 : [POJ]点击打开链接 [caioj]点击打开链接 算法 : 1:跑一遍弗洛伊德,求出点与点之间的最短路径 2:二分答案,二分”最大值最小“ 3.1:建边,将 ...
- java.lang.NoSuchMethodException: com.sun.proxy.$Proxy
删掉了@Transactional注解,结果成功了 是这个注解造成的. 是ssh2的整合强制我们使用分层架构.
- windows切换到谷歌浏览器黑屏问题
打开谷歌浏览器,找到右上角,点击设置,如下: 点击高级设置,如下: 关闭使用硬件加速模式,重新打开浏览器,即可.
- MongoDB复制集高可用选举机制(三)
复制集高可用选举机制 在上一章介绍了MongoDB的架构,复制集的架构直接影响着故障切换时的结果.为了能够有效的故障切换,请确保至少有一个节点能够顺利升职为主节点.保证在拥有核心业务系统的数据中心中拥 ...
- MTK LCM帧率设置公式
clk=(width + W total porch)x(height + H total porch)x (6<18bit>或者x8<24bit>)x fps/ lane n ...
- docker集群管理
docker集群管理 ps:docker machine docker swarm docker compose 在Docker Machine发布之前,你可能会遇到以下问题: ...
- 【221】◀▶ IDL GUI 函数说明
参考:GUI - Dialogs Routines参考:GUI - Widgets Routines参考:GUI - Compound Widgets Routines 01 DIALOG_MES ...
- Java的栈和堆
JVM的内存区域可以被分为:线程栈,堆,静态方法区(实际上还有更多功能的区域,并且这里说的是JVM的内存区域) 线程栈: 注意这个栈和数据结构中的stack有相似之处,但并不是用户态的.准确 ...
- Flutter实战视频-移动电商-30.列表页_商品列表UI界面布局
30.列表页_商品列表UI界面布局 小程序里面的布局方式 小程序的图片上这里使用的是warp布局,因为首页里面火爆专区,已经用过了warp来布局了. 所以这里我们没有必要再讲一遍,这里我们使用List ...
- supervisor简明教程
一.supervisor是什么 Linux的后台进程运行有好几种方法,例如nohup,screen等,但是,如果是一个服务程序,要可靠地在后台运行,我们就需要把它做成daemon,最好还能监控进程状态 ...