HDU6736 F.Forest Program(dfs找环)
F.Forest Program
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
using ll=long long;
using pii=pair<int,int>;
constexpr int N=3000010;
constexpr ll mod=998244353;
ll pow2[N];
int h[N],e[2*N],ne[2*N],idx;
void add(int a,int b){e[idx]=b,ne[idx]=h[a],h[a]=idx++;}
int vis[N];
ll ans;
int n,m;
int cnt;
int pre[N];
void dfs(int u,int fr)
{vis[u]=1;for(int i=h[u];i!=-1;i=ne[i]){int v=e[i];if(i==(fr^1)||vis[v]==2) continue;if(vis[v]==1){int now=u;int k=1;while(now!=v) now=pre[now],k++;cnt+=k;ans=(ans*(pow2[k]-1)%mod+mod)%mod;}else pre[v]=u,dfs(v,i);}vis[u]=2;
}
int main()
{IO;pow2[0]=1;for(int i=1;i<=300000;i++) pow2[i]=pow2[i-1]*2%mod;while(cin>>n>>m){memset(h,-1,(n+1)*sizeof(int));idx=0;memset(vis,0,(n+1)*sizeof(int));memset(pre,0,(n+1)*sizeof(int));cnt=0;for(int i=1;i<=m;i++){int a,b;cin>>a>>b;add(a,b),add(b,a);}ans=1;for(int i=1;i<=n;i++)if(!vis[i]) dfs(i,-1);ans=ans*pow2[m-cnt]%mod;cout<<ans<<'\n';}
}
HDU6736 F.Forest Program(dfs找环)相关推荐
- 2019 China Collegiate Programming Contest Qinhuangdao Onsite F. Forest Program
2019 China Collegiate Programming Contest Qinhuangdao Onsite F. Forest Program 题目链接 The kingdom of Z ...
- Mr. Kitayuta‘s Technology CodeForces - 505D(并查集+拓扑排序或dfs找环) 题解
题目 Shuseki Kingdom is the world's leading nation for innovation and technology. There are n cities ...
- 2019 CCPC 秦皇岛F Forest Program(dfs)
传送门 题意:给定一张无向简单图,同时规定一条边只属于一个环.可以删除任意条边使得这张图变成森林,也就是使得每一个连通块都是树.求一共有多少种方案. 分析:由于原题规定一条边只属于一个环,不需要考虑环 ...
- Forest Program dfs+tanjar仙人掌
题目链接 CCPC2019 F题. 题意:给一颗仙人掌树,让你求每一个小环的边的个数,用快速幂即可求解. 思路:第一反应是tanjar乱搞,把每个环上的点取出来,类似于缩点的方法.但是忽然感觉dfs能 ...
- CodeForces - 1335F Robots on a Grid(拓扑找环+反向dfs/倍增)
题目链接:点击查看 题目大意:给出一个 n * m 的矩阵,矩阵的每一个格子都有一个颜色,颜色非黑即白,除此之外每个格子还有一个指令,分别为: ' U ':向上一个单位 ' D ':向下一个单位 ' ...
- 【2019.7.16 NOIP模拟赛 T1】洗牌(shuffle)(找环)
找环 考虑每次洗牌其实是一次置换的过程,而这样必然就会有循环出现. 因此我们直接通过枚举找出每一个循环,询问时只要找到环上对应的位置就可以了. 貌似比我比赛时被卡成\(30\)分的倍增简单多了? 代码 ...
- codefores741A Arpa's loud Owf and Mehrdad's evil plan(图找环)
题意: 对于给定的一个数列a[n],如果现在点i,那么下一个点就在a[i],现在问给定n个点,找到一个最小的t,使得对于从任意一个点x出发,经过t次之后,到达的点y, 使得点y经过t次之后会回到点x. ...
- [Noi2008]假面舞会(dfs判环)
[Noi2008]假面舞会 Description 一年一度的假面舞会又开始了,栋栋也兴致勃勃的参加了今年的舞会.今年的面具都是主办方特别定制的.每个参加舞会的人都可以在入场时选择一 个自己喜欢的面具 ...
- P2444 [POI2000]病毒(ACAM上找环)
LINK 给出一些010101串,问是否存在无限长的某个010101串 使得给定的任何一个010101串都不是它的子串 普通考虑好像不太好弄,我们建出ACAMACAMACAM看看 预处理ed[i]ed ...
最新文章
- sysdba登录不需要密码验证?
- Json返回时间中出现乱码问题的两种解决方法
- 容器私有云和持续发布都要解决哪些基础问题 第一集
- 当执行进程ctrl+c关闭不了的时候的解决方法
- 树形结构与关系数据库之闭包表
- c语言中怎么 写子程序,哪位师傅知道51单片机怎样编写子程序?C语言的。在主程序里调...
- resize属性,使textarea在ff(火狐)中禁止拉伸
- 计算机注册表管理,如何打开计算机注册表编辑器
- Sqlite优化记录:使用全文索引加快检索速度-转
- 计算机微课论文参考文献,关于信息技术论文范文资料 与初中信息技术课堂中微课应用策略有关论文参考文献...
- 视频时序与BT1120的关系 FPGA实现BT.1120编码
- Promise then的嵌套
- linux系统软路由软件,Linux软路由配置
- python建筑案例_有哪些关于 Python 在建筑中的应用和教程?
- 打造一流软文营销推广平台,看看媒体批发网是如何做的
- jspdf添加宋体_JSPDF支持中文(思源黑体)采坑之旅,JSPDF中文字体乱码解决方案...
- 一个假冒的序列号被用来注册Internet Download Manager。IDM正在退出...解决办法
- Tomcat优化思路
- panada python_Python Pandas
- 什么样的女生城府深?
热门文章
- mybatis plus 批量保存_mybatis源码分析
- Springboot后台管理(CRUD)
- android交叉编译libxml2,Openwrt 交叉编译libxml2(示例代码)
- LeetCode 82 删除排序链表中的重复元素||-中等
- 算法-二分搜索-找出最大值和最小值
- matlab gui 密码登录 论文,MATLAB GUI 密码输入
- 数据结构与索引-- mysql InnoDB存储引擎索引
- 计算机网络----wireshark抓包
- 梯度下降:求线性回归
- 【NOI2019】回家路线【无后效性dp状态设计】【斜率优化】