Solution

和后面两道题难度差距太大了吧!!

显然就只是个小模拟,注意判0就行了。

Code

#include<bits/stdc++.h>
using namespace std;char s[100005];int main() {freopen("expression.in", "r", stdin);freopen("expression.out", "w", stdout);scanf("%s", s);int flag = 0, len = strlen(s);for(int i = 0; i < len; i ++) {int t = s[i];if(t >= '0' && t <= '9') {if(flag) {printf("%c", t);flag = 0;if(s[i + 1] != '-' && s[i + 1] != '+' && i + 1 < len) {if(s[i + 1] != '0')    printf("+");else {while(s[i + 1] == '0') {printf("+0"); i ++;}if(s[i + 1] >= '0' && s[i + 1] <= '9')printf("+");}}} else {printf("%c", t);}} else {if(t == '-')    flag = 1;printf("%c", t);}}return 0;
} 

Solution

思维难度很大啊,需要把所有的情况理清楚,代码就不难写了。

性质1:如果有超过1条特殊边与树边形成奇环,则满足条件的边不可能是特殊边(肯定不可能被所有奇环包含)

性质2:如果一条特殊边与另一条特殊边形成环,这种环没有任何用处

情况1:两个与树边形成奇环的边 一定产生一个偶环(2,3,4,5) 但偶环上的边不可能被所有奇环

情况2:两个偶环 本来他们的边就全部不满足条件 不用考虑多生成的新偶环(2,4,7,5)

情况3:一个奇环+一个偶环 生成一个奇环(2,5,7,6,4) 这个奇环的树边本来就在原奇环上 无需考虑

建一棵DFS树,则特殊边就全部为返祖边 用odd [u]对结点u统计奇环,even[u]统计偶环 设一条返祖边为 u-> v 若它形成奇环,则odd[u]++,odd[v]--. 则u的子树所有结点的odd之和,即为u -> fa这条边被多少奇环包含 (差分前缀和的思想)(树上差分)

唯一非树边会有贡献的情况就是有且仅有一个奇环,此时一定只有一条非树边在奇环内 提供贡献

Code

#include<bits/stdc++.h>
#define RG register
using namespace std;int n, m;
struct Node {int u, v, nex;Node(int u = 0, int v = 0, int nex = 0) :u(u), v(v), nex(nex) { }
} Edge[400005];int h[100005], stot = 1;
void add(int u, int v) {Edge[++stot] = Node(u, v, h[u]);h[u] = stot;
}int fae[100005], vis[100005], vise[400005], odd[100005], even[100005], cnto, cnte, dep[100005];
void dfs(int u) {vis[u] = 1;for(int i = h[u]; i; i = Edge[i].nex) {int v = Edge[i].v;if(vise[i])    continue;vise[i] = vise[i ^ 1] = 1;if(vis[v]) {if((dep[v] & 1) == (dep[u] & 1)) {odd[u] ++;odd[v] --;cnto ++;} else {even[u] ++;even[v] --;cnte ++;}} else {fae[v] = i;dep[v] = dep[u] + 1;dfs(v);}}
}void dfs2(int u) {for(int i = h[u]; i; i = Edge[i].nex) {int v = Edge[i].v;if(fae[v] == i) {dfs2(v);odd[u] += odd[v];even[u] += even[v];}}
}int main() {freopen("voltage.in", "r", stdin);freopen("voltage.out", "w", stdout);scanf("%d%d", &n, &m);for(int i = 1; i <= m; i ++) {int u, v;scanf("%d%d", &u, &v);add(u, v);    add(v, u);}dfs(1); dfs2(1);int ans = 0;for(int i = 1; i <= n; i ++)if(fae[i] != 0 && odd[i] == cnto && !even[i])ans ++;if(cnto == 1)    ans ++;printf("%d\n", ans);return 0;
}

转载于:https://www.cnblogs.com/wans-caesar-02111007/p/9822136.html

【10.20校内测试】【小模拟】【无向图建树判奇偶环】【树上差分】相关推荐

  1. 为什么有些应用程序愿意采用不可靠的UDP,而不愿意采用可靠的TCP?试解释为什么ARP高速缓存每存入一个项目就要设置10~20分钟的超时计时器。这个时间设置的太大或太小会出现什么问题?

    1.为什么有些应用程序愿意采用不可靠的UDP,而不愿意采用可靠的TCP?当接收方收到有差错的UDP用户数据报时,会如何处理? VOIP(Voice over Internet Protocol)即网络 ...

  2. 【10.28 校内普及组】 小B浇花 题解

    [10.28 校内普及组] 小B浇花 题解 题目 解题思路 排个序 如果当前的高度小于等于上一个 答案累加上一高度-当前高度+1 代码 #include<algorithm> #inclu ...

  3. 小学生除法检验,10道题,每小题10分,被除数和除数随机产生。被除数是20~200之间的数,除数是2~9之间的一位数。用户输入答案,计算机判卷,做对了加10分,做错了不允许重做,最后输出成绩;

    欢迎加qq群:453398542 学习讨论,会定期分享资料课程,解答问题. 1.         小学生除法检验,10道题,每小题10分,被除数和除数随机产生.被除数是20~200之间的数,除数是2~ ...

  4. 免费分享20套微信小程序源码 源码免费下载【强烈推荐】

    淘源码:国内知名的源码免费下载平台 微信小程序源码包括:商城系统源码.点餐外卖源码.垃圾分类识别源码.预约洗车源码.物业管理源码.校园跑腿源码.驾考学习源码.会议预约源码.图书管理源码.智能停车源码. ...

  5. python测试开发自学教程-Web开发哪家强?看我用 Python 写一个颜值测试小工具

    我们知道现在有一些利用照片来测试颜值的网站或软件,其实使用 Python 就可以实现这一功能,本文我们使用 Python 来写一个颜值测试小工具. 简介 要实现颜值测试功能,大致有两种方式:一种是自己 ...

  6. (转自http://www.blogjava.net/moxie/archive/2006/10/20/76375.html)WebWork深入浅出

    (转自http://www.blogjava.net/moxie/archive/2006/10/20/76375.html) WebWork深入浅出 本文发表于<开源大本营> 作者:钱安 ...

  7. 利用 Python 写一个颜值测试小工具

    我们知道现在有一些利用照片来测试颜值的网站或软件,其实使用 Python 就可以实现这一功能,本文我们使用 Python 来写一个颜值测试小工具. 很多人学习python,不知道从何学起. 很多人学习 ...

  8. 初学者c语言心里测试小项目

    心里测试小项目 注:程序使用easyx函数库进行图形化编程,需下载并安装easyx库 心里测试 心里测试小项目 一.前言 介绍 参考资源 编译环境 运行效果图 二.头文件 三.主要函数 四.具体代码 ...

  9. 北洋雷达UST-10LX基于ROS都安装使用测试小问题

    北洋雷达UST-10LX基于ROS都安装使用测试小问题 我使用的是UST-10LX型号 的激光雷达进行建图导航.下面的内容是在csdn上的一些回答的综合. 首先下载相关节点包,UST-10LX采用的接 ...

最新文章

  1. JAVA中循环删除list中元素的方法总结
  2. iospython开发工具_使用Python开发iOS程序
  3. 从传统运维到云运维演进历程之软件定义存储(五)下
  4. PL/SQL: Stop Making the Same Performance Mistakes
  5. 莱芜长运公共交通有限公司简介
  6. kafka分区及副本在broker的分配
  7. python在银行的应用案例_银行风控案例(python)
  8. java 性能调优_Java性能调优调查结果(第一部分)
  9. 真香警告!2021Android高级面试题,挥泪整理面经
  10. IDEA 2020.3 连接mysql数据库报错解决
  11. 为什么jsp的form表单不能跳转_手把手教你实现SEM投放监控转化--表单类
  12. 蓝桥杯 ADV-135 算法提高 三角形面积
  13. 【数据结构】线性表之链式线性表
  14. 公用计算机打不开扫雷,win7系统“扫雷”游戏无法打开问题的处理方法
  15. 堆积图--MatplotLib
  16. RK3399外设驱动之PWM驱动:红外驱动
  17. Vmware 和宿主机之间的网络互通
  18. 【历史上的今天】7 月 15 日:Mozilla 基金会正式成立;Enigma 密码机的首次工作;任天堂推出 FC 游戏机
  19. load函数matlab,『matlab load函数的用法』如何把matlab中的数据导到excel表格中
  20. Win10系统繁体字输入切换为简体字快捷键

热门文章

  1. 鼠标放上超链接显示背景效果
  2. css --- [读书笔记] 盒模型(边框、内外边距)
  3. jquery--- 属性和样式的操作 设置和获取HTML、文本和值、焦点事件
  4. ES5-12 【utils】继承深入、call、apply、圣杯模式、模块化
  5. 一张图学习常见this的指向
  6. 思维导图分析http之前端组成
  7. HDU4506 小明系列故事——师兄帮帮忙
  8. Android面试,BroadCastReceiver的两种注册方式的异同
  9. 【独家】衣服上的铁锈去除简易方法
  10. H264 视频文件 帧格式 传输封装等 杂碎