解析

比较巧妙的一道题
首先做一棵dfs生成树出来
尝试把它的欧拉序列作为答案
但是这样可能会有的地方不符合条件
如果x点的奇偶性不符合,就在序列中加入一个(x,fa)
同时改变x和fa的奇偶性
显然不会超过4*n
如果根需要改奇偶性怎么办?
最后一次回溯删掉就行了

代码

#include<bits/stdc++.h>
using namespace std;
const int N=4e5+100;
const int mod=1e9+7;
double eps=1e-10;
#define ll long long
ll read(){ll x=0,f=1;char c=getchar();while(!isdigit(c)){if(c=='-')f=-1;c=getchar();};while(isdigit(c)){x=x*10+c-'0';c=getchar();};return x*f;
}int n,m;
struct node{int to,nxt;
}p[N<<1];
int fi[N],cnt;
inline void addline(int x,int y){p[++cnt]=(node){y,fi[x]};fi[x]=cnt;return;
}
bool a[N],vis[N];
int q[N],tot;
void dfs(int x,int f){vis[x]=1;q[++tot]=x;a[x]^=1;for(int i=fi[x];~i;i=p[i].nxt){int to=p[i].to;if(vis[to]) continue;dfs(to,x);a[x]^=1;q[++tot]=x;}if(a[x]){q[++tot]=f;q[++tot]=x;a[f]^=1;a[x]^=1;}return;
}
int main(){#ifndef ONLINE_JUDGE//freopen("a.in","r",stdin);//freopen("a.out","w",stdout);#endifmemset(fi,-1,sizeof(fi));cnt=-1;n=read();m=read();for(int i=1;i<=m;i++){int x=read(),y=read();addline(x,y);addline(y,x);}int rt(0);for(int i=1;i<=n;i++){a[i]=read();if(a[i]) rt=i;}if(rt){dfs(rt,0);for(int i=1;i<=n;i++) if(a[i]){printf("-1\n");return 0;}}if(tot>1&&q[tot-1]==0) tot-=3;printf("%d\n",tot);for(int i=1;i<=tot;i++) printf("%d ",q[i]);return 0;
}
/*
2 3
7 4 9 9
1 2 8
3 1
4 2 4
*/

CF453C:Little Pony and Summer Sun Celebration(dfs、构造)相关推荐

  1. CF453C-Little Pony and Summer Sun Celebration【构造】

    正题 题目链接:https://www.luogu.com.cn/problem/CF453C 题目大意 nnn个点mmm条边的一张无向图,每个节点有一个wiw_iwi​表示该点需要经过奇数/偶数次. ...

  2. codeforces 453C Little Pony and Summer Sun Celebration

    codeforces 453C Little Pony and Summer Sun Celebration 这道题很有意思,虽然网上题解很多了,但是我还是想存档一下我的理解. 题意可以这样转换:初始 ...

  3. CodeForces - 1341F Nastya and Time Machine(dfs+构造)

    题目链接:点击查看 题目大意:给出一棵树,现在要求从点1出发遍历所有的结点一遍后再回到点1,额外给出一个时光机,可以到某个节点的任意时刻,需要满足的条件如下: 初始时在节点 1 ,时间为 0 每次操作 ...

  4. 信仰之题——Codeforces Round 259(附题面完整翻译)

    终于下定决心要把整套题做完了. 最早认识这套题不是因为什么板刷,也不是因为什么模拟赛,而是这套题目标题里清一色的"pony",我想这也是为什么我会管这套题叫信仰之题吧(笑). 不过 ...

  5. 第九届河南省赛 宣传墙 //状压dp+矩阵快速幂+dfs

    http://nyoj.top/problem/1273 状压dp+矩阵快速幂+dfs 1273-宣传墙 内存限制:64MB 时间限制:1000ms 特判: No 通过数:19 提交数:64 难度:4 ...

  6. ARC115D-Odd Degree【dp,欧拉回路】

    正题 题目链接:https://atcoder.jp/contests/arc115/tasks/arc115_d 题目大意 给出nnn个点mmm条边的一张无向图,对于每个k∈[1,n]k\in[1, ...

  7. 一文直击Graph Embedding图表示学习的原理及应用

    导读:我们都知道在数据结构中,图是一种基础且常用的结构.现实世界中许多场景可以抽象为一种图结构,如社交网络,交通网络,电商网站中用户与物品的关系等. 目前提到图算法一般指: 经典数据结构与算法层面的: ...

  8. 深度学习推荐系统中各类流行的Embedding方法

    Embedding技术概览: 对其它Embedding技术不熟悉,可以看我的上一篇文章:深度学习推荐系统中各类流行的Embedding方法(上) Graph Embedding简介 Word2Vec和 ...

  9. 图论 —— 二分图 —— 匈牙利算法

    [基本概念] 1.交替路 从一个未匹配点出发,依次经过 非匹配边.匹配边.非匹配边- 形成的路径 2.增广路 定义:设 M 为二分图 G 已匹配边的集合,若 P 是图 G 中一条连通两个未匹配点的路径 ...

最新文章

  1. 【科普】大脑是如何编码复杂信息的?
  2. linux安装anaconda3提前so,Linux安装anaconda3
  3. html jquery ajax乱码问题,jquery使用ajax提交中文乱码问题的解决
  4. java中coverage怎么取消_别人家的ABM都是怎么成功的?
  5. 修复windows脸部识别_如何在Windows 10中改善面部识别
  6. Spring获取前台参数的几种方式
  7. java中文乱码decode_JAVA中文字符乱码解决详解
  8. 基于JAVA+Servlet+JSP+MYSQL的学生选课管理系统
  9. ROS入门 通信架构
  10. MySQL回滚日志(undo log)总结
  11. Pandas高级教程之:时间处理
  12. 计算机与信息技术基础上机指导答案,信息技术基础学习指导——实验和习题解答(第3版)...
  13. java常量池在哪里_Java常量池详细说明
  14. 5.5mysql_MySQL5.5-MySQL5.5下载 v5.5.60.1官方版 64位/32位-第五资源
  15. (WSI分类)WSI分类文献小综述
  16. mysql 锁级别说明 一
  17. K8s 污点(Taints)与容忍(Tolerations)
  18. Perl操作excel2007的模块
  19. Flask(python)恶补笔记
  20. Mybatis+spring知识点

热门文章

  1. 史上首次!世界杯使用视频裁判
  2. mysql查找最高分最低分_sql查询最高分、最低分和平均分语句
  3. jmeter xml 请求_Jmeter学习笔记(十六)——HTTP请求之content-type
  4. linux内核线程socket,从Linux源码看Socket(TCP)的accept
  5. 未发现android设备,Brother iPrintScan 应用程序上出现错误信息“未发现支持设备”(Android™ 智能手机)。...
  6. 数据科学与python语言实验——NumPy数值计算基础
  7. [PAT乙级]1002 写出这个数
  8. [Java基础]LinkedHashSet集合概述和特点
  9. [Java基础]int和String的相互转换
  10. C++实现具有[数组]相似特征的类DoubleSubscriptArray