hdu 5348 MZL's endless loop
发布日期:2021-11-16 12:56:50
浏览次数:1
分类:技术文章
本文共 1347 字,大约阅读时间需要 4 分钟。
给一个无向图(其实是有向的,但是没有指定边的方向),你需要指定边的方向,使得每个点入度和出度相差不超过1。
其实就是找许多条路径,合起来能走完这个图。。先统计各个顶点的度,度为奇数必是起点或终点,否则是中间点或者同为起点和终点。邻接表建图(建双向),先从每个奇数度顶点出发找路径,再从偶数度顶点出发找路径,经过的边要删去不然超时。
#include#include #include #include #include #include #include #include using namespace std;const int MAXM=300010;const int MAXN=200010;struct edge{ int u,v;}edges[MAXM*2];int head[MAXN];int pre[MAXM*2];int Next[MAXM*2];int deg[MAXN];int ans[MAXM];int ecnt;int n,m;int init(){ memset(head,-1,sizeof(head)); memset(Next,-1,sizeof(Next)); memset(deg,0,sizeof(deg)); ecnt=0;}void addedge(int u,int v){ edges[ecnt].u=u; edges[ecnt].v=v; pre[ecnt]=head[u]; head[u]=ecnt; ecnt++; // edges[ecnt].u=v; edges[ecnt].v=u; pre[ecnt]=head[v]; head[v]=ecnt; ecnt++;}void dfs(int u){ while(head[u]!=-1){ deg[u]--; int i=head[u]; int v=edges[i].v; if(i&1){ ans[(i>>1)+1]=0; }else{ ans[(i>>1)+1]=1; } //remove edges. int pp,nn; if(head[u]==i){ head[u]=pre[i]; } pp=pre[i]; nn=Next[i]; if(pp!=-1)Next[pp]=nn; if(nn!=-1)pre[nn]=pp; int _i=i^1; if(head[v]==_i){ head[v]=pre[_i]; } pp=pre[_i]; nn=Next[_i]; if(pp!=-1)Next[pp]=nn; if(nn!=-1)pre[nn]=pp; u=v; if(deg[v])deg[v]--; }}int main(){ int t; cin>>t; while(t--){ init(); cin>>n>>m; for(int i=1;i<=m;i++){ int u,v; scanf("%d%d",&u,&v); addedge(u,v); deg[u]++; deg[v]++; } for(int i=0;i
转载地址:https://blog.csdn.net/squee_spoon/article/details/47282299 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关注你微信了!
[***.104.42.241]2024年04月15日 00时12分21秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【python数据可视化】穷逼买二手房历险记
2019-04-30
同构图、异构图、属性图、非显式图
2019-04-30
【GNN】task3-基于图神经网络的节点表征学习
2019-04-30
Python将字符串转为变量名的3种方法
2019-04-30
【GNN】task4-数据完整存储与内存的数据集类+节点预测与边预测任务实践
2019-04-30
powershell 解压RAR文件(简易版)
2019-04-30
记一次Tiny Tiny RSS魔改过程
2019-04-30
CMD批量转换GIF图片为PNG图片
2019-04-30
通过快捷方式快速更换桌面壁纸(必应每日壁纸)
2019-04-30
C#操作MySQL查询超时问题
2019-04-30
JavaScript——CodeMirror获取已存在的实例
2019-04-30
Java 发送HTTP或HTTPS请求获取网页码源(1)
2019-04-30
iText的使用(1)-- 组合图片生成PDF
2019-04-30
powershell 调用API显示或隐藏指定程序的主窗口
2019-04-30
powershell 结束进程的四种写法
2019-04-30
powershehll删除并重装打印机
2019-04-30
爬虫-初次接触
2019-04-30
python 类与对象
2019-04-30
Pycharm(社区版) 创建Flask项目
2019-04-30
2018年最聪明的科技创意
2019-04-30