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

 

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/265699.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信(QQ)截图时,无法保留鼠标右键菜单选项内容

问题描述 按下右键后弹出菜单&#xff0c;再按下QQ截图热键"Ctrl&#xff0b;Alt&#xff0b;A"&#xff08;微信"Ctrl&#xff0b;A"&#xff09;时&#xff0c;却发现菜单不见了。 微信的解决方法 先按下"Alt"键不放&#xff0c;再按住&quo…

使用WebClient请求WCF REST服务

2019独角兽企业重金招聘Python工程师标准>>> 接上篇”WCF实现REST服务“&#xff0c;服务端有了&#xff0c;我们看看客户端怎么访问&#xff0c;由于JS跨域的限制&#xff0c;这里通过WebClient做在后台代理来访问&#xff0c;话不多说&#xff0c;直接上代码。 1…

Git的工作流程简介

目录Git的工作区域Git的基本流程1.将工作区的代码添加到暂存区2.将暂存区的文件提交到本地仓库3.将暂存区的文件提交到远程仓库Git的工作区域 Git的基本流程 图形化方式操作 命令行模式&#xff08;Linux系统常用&#xff09;操作 1.将工作区的代码添加到暂存区 查看文件状态使…

git常用配置(指令)

1、配置用户名和邮箱 (1) 指令设置 $ git config --global user.name "username" $ git config --global user.email johndoeexample.com (2) 修改配置文件.gitconfig 2、配置ssh key免密登录 (1) 生成密钥 $ ssh-keygen -t rsa -C 1046407517qq.com (2) 在github添加…

PG git pull

2019独角兽企业重金招聘Python工程师标准>>> remote: Counting objects: 347, done. remote: Compressing objects: 100% (159/159), done. remote: Total 159 (delta 136), reused 0 (delta 0) Receiving objects: 100% (159/159), 23.16 KiB, done. Resolving del…

c51单片机led奇数偶数亮_两STM32单片机串口通讯实验

一、实验思路连接两个STM32单片机的串口引脚&#xff0c;单片机A进行发送&#xff0c;单片机B进行接收。单片机B根据接收到单片机A的指令来点亮或熄灭板载LED灯&#xff0c;通过实验现象来验证是否通讯成功。二、实验器材两套STM32F103C8T6单片机开发板、ST-Link下载器、杜邦线…

Git本地仓库文件的创建、修改和删除

目录基本信息设置1.设置用户名2.设置用户名邮箱Git仓库操作介绍1.创建一个新的文件夹2.在文件内初始化git仓库&#xff08;创建git仓库&#xff09;3.向仓库中添加文件1.创建一个文件2.将文件添加到暂存区3.将暂存区添加到仓库4.修改仓库文件1.修改文件2.然后把文件添加到暂存区…

作业4

一.题目&#xff1a;求一个二维整数数组中最大子数组的和二.设计思想&#xff1a;假如有一个i行j列的二维数组&#xff0c;可以有正有负通过两个子函数实现(一.)通过上次的一位数组求最大值&#xff0c;可以先求出每一行最大连续子数组的和(二.)记下上下边界元素的下标(三.)每一…

C++的高效从何而来

2019独角兽企业重金招聘Python工程师标准>>> 前一段时间&#xff0c;实验室的一哥们突然跑过来跟我说&#xff0c;“我自己写了个C的快速排序&#xff0c;排了一个10000000个int的数组&#xff0c;貌似比C库中是qsort算法要快&#xff0c;咋回事&#xff1f;C的STL中…

Git本地仓库管理远程库(GitHub)——clone(下载)、commit(添加到本地仓库)、push(提交到远程仓库)、pull(拉取)操作

目录使用远程仓库的目的将本地仓库同步到git远程仓库1.克隆远程仓库(clone)2.新建一个文件3.将工作区的文件添加到暂存区4.将暂存区的文件添加到本地仓库(commit)5.提交(同步)到远程仓库(push)6.远程库拉取到本地库(pull)7.团队协作开发和跨团队协作开发(开源项目)使用远程仓库…

ps里面怎么插入流程图_学会这3个方法,5分钟能绘制出好看又高级的流程图

工作中&#xff0c;很多时候我们需要绘制流程图&#xff0c;有些小伙伴觉得流程图很难画&#xff0c;费时又耗力。那么今天小编就来给大家分享3种绘制流程图的方法&#xff0c;希望大家学会后&#xff0c;都能快速画出好看的流程图。下面就一起来看看吧~一、Excel绘制1.打开Sma…

oracle学习一二

最近在从事一个行业的测评项目&#xff0c;作为测评师来讲应当是正确的分工&#xff0c;有人负责网络安全测评&#xff0c;有人负责主机测评&#xff0c;有人负责管理测评等等。在测评一个oracle数据库的时候学习到了一点内容&#xff0c;在专业人士看来可能不足为奇&#xff0…

Github Pages 搭建个人网站

目录个人站点访问搭建步骤1.创建个人站点1&#xff09;.新建仓库2&#xff09;.填写仓库资料3&#xff09;.访问成功2.新建index.html文件1.&#xff09;点击 creat new file2.&#xff09;填写文件3&#xff09;.再次访问个人主页项目站点访问搭建步骤1.进入项目主页&#xff…

pwd命令是什么的缩写_手机学编程(2)目录管理命令

终端有两种类型&#xff1a;字符终端(CLI&#xff0c;命令行界面&#xff0c;通过键盘下达命令来要求系统帮我们做事情)和图形终端(GUI&#xff0c;图形用户界面&#xff0c;可通过鼠标下达命令来要求系统帮我们做事情)。Termux是一个字符终端&#xff0c;我们在提示符$后输入命…

Netty实现原理浅析

为什么80%的码农都做不了架构师&#xff1f;>>> 1、总体结构 先放上一张漂亮的Netty总体结构图&#xff0c;下面的内容也主要围绕该图上的一些核心功能做分析&#xff0c;但对如Container Integration及Security Support等高级可选功能&#xff0c;本文不予分析。…

如何上传文件夹到GitHub上(配图详解)

更多干货推荐可以去牛客网看看&#xff0c;他们现在的IT题库内容很丰富&#xff0c;属于国内做的很好的了&#xff0c;而且是课程刷题面经求职讨论区分享&#xff0c;一站式求职学习网站&#xff0c;最最最重要的里面的资源全部免费&#xff01;&#xff01;&#xff01;点击进…

cfg桩设备型号_什么是CFG桩?带您看下CFG桩施工工艺及流程,检测项目

一、CFG桩简介CFG(Cement Fly—ash Grave)桩是由水泥、粉煤灰、碎石、石屑或砂和水按一定配合比均匀搅拌形成的高粘结强度桩&#xff0c;和桩间土、褥垫层一起形成复合地基&#xff0c;既能较充分的发挥桩体材料的潜力&#xff0c;又可充分利用天然地基承载力&#xff0c;并能因…

django 修改日期

为什么80%的码农都做不了架构师&#xff1f;>>> http://blog.chedushi.com/archives/1389 auto_now无论是你添加还是修改对象&#xff0c;时间为你添加或者修改的时间。 auto_now_add为添加时的时间&#xff0c;更新对象时不会有变动。 转载于:https://my.oschi…

如何删除GitHub仓库里的文件夹(配图详解)

更多干货推荐可以去牛客网看看&#xff0c;他们现在的IT题库内容很丰富&#xff0c;属于国内做的很好的了&#xff0c;而且是课程刷题面经求职讨论区分享&#xff0c;一站式求职学习网站&#xff0c;最最最重要的里面的资源全部免费&#xff01;&#xff01;&#xff01;点击进…

jquery实现截取pc图片_如何优雅的对网页截取长图

苏生不惑第115 篇原创文章&#xff0c;将本公众号设为星标&#xff0c;第一时间看最新文章。最近写文章想截个长图&#xff0c;才发现一直使用的QQ早有这个功能了&#xff0c;这里就整理几个pc上网页长截图的方案。qq滚动截图qq截图应该很多人用过&#xff0c;我平常挂qq也只是…