Po姐的说法

任选一棵生成树,考虑选择树边或者非树边 
定义一条非树边为好边当且仅当两个端点在树上的距离为奇数,否则为坏边 
如果坏边只有一条那么这条坏边是可选的 
如果一条树边被所有的坏边覆盖而且不被好边覆盖那么这条边是可选的

按照自己的理解 就是在所有奇环上 不在任何偶环上的边

#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<vector>
using namespace std;
typedef long long ll;
typedef pair<int,int> abcd;inline char nc()
{static char buf[100000],*p1=buf,*p2=buf;if (p1==p2) { p2=(p1=buf)+fread(buf,1,100000,stdin); if (p1==p2) return EOF; }return *p1++;
}inline void read(int &x)
{char c=nc(),b=1;for (;!(c>='0' && c<='9');c=nc()) if (c=='-') b=-1;for (x=0;c>='0' && c<='9';x=x*10+c-'0',c=nc()); x*=b;
}const int N=200005;struct edge{int u,v,next;
};edge G[N<<1];
int head[N],inum=1;inline void add(int u,int v,int p){G[p].u=u; G[p].v=v; G[p].next=head[u]; head[u]=p;
}int n,m,ans;
int depth[N],fat[N],vst[N];
int ecnt,ocnt,even[N],odd[N];#define V G[p].vvoid dfs(int u,int fa,int lastp)
{vst[u]=1; fat[u]=fa; depth[u]=depth[fa]+1;for (int p=head[u];p;p=G[p].next)if (p!=(lastp^1))if(!vst[V])dfs(V,u,p),even[u]+=even[V],odd[u]+=odd[V];else{if(depth[V]>depth[u])continue;if((depth[u]-depth[V])&1)even[u]++,even[V]--,ecnt++;elseodd[u]++,odd[V]--,ocnt++;}
}int main()
{freopen("t.in","r",stdin);
//  freopen("t.out","w",stdout);int u,v;read(n); read(m);for(int i=1;i<=m;i++)read(u),read(v),add(u,v,++inum),add(v,u,++inum);for(int i=1;i<=n;i++)if(!vst[i])dfs(i,0,0);for(int i=1;i<=n;i++)if(fat[i] && odd[i]==ocnt && !even[i])ans++;if(ocnt==1) ans++;printf("%d\n",ans);return 0;
}

[树 乱搞] BZOJ 4238 电压相关推荐

  1. BZOJ 4238 电压 解题报告

    BZOJ 4238 电压 考虑一条边成为答案以后,删去Ta后剩下的图是一个或很多个二分图,即没有奇环 则一条边可以成为答案,当且仅当自己在所有奇环的交上且不在偶环上. 考虑建出dfs树,那么返祖边一定 ...

  2. 【 bzoj 4355 】 Play with sequence - 线段树乱搞

    先讲个故事... 据说某一天,claris扔了一道题到某群里面然后引起了不大的讨论~然后好学向上的whx同学发现了这题...聪明的whx想了很久...然后!whx发现看不懂claris给的暴力的证明. ...

  3. [乱搞] BZOJ 1484 [HNOI2009]通往城堡之路

    什么仙人掌DP啊,我好怕怕啊 题解:http://blog.csdn.net/zeyu_king/article/details/44924517 #include <cstdio> #i ...

  4. Bzoj 1926: [Sdoi2010]粟粟的书架(二分答案+乱搞+主席树)

    1926: [Sdoi2010]粟粟的书架 Time Limit: 30 Sec Memory Limit: 552 MB Description 幸福幼儿园 B29 班的粟粟是一个聪明机灵.乖巧可爱 ...

  5. AcWing 397. 逃不掉的路(边双连通分量缩点成树 + 树链剖分乱搞)

    整理的算法模板合集: ACM模板 我们知道在同一个边双连通分量中的点没有必经边(因为至少有两条分离的路径). 所以我们直接tarjan求出桥后缩点,然后求一下树上两点间的距离即可. 那么如何求树上两点 ...

  6. bzoj 1050: [HAOI2006]旅行comf(codevs.cn 1001 舒适的路线) 快排+并查集乱搞

    没用的话:好像很久没发博客了,主要是懒太蒟找不到水题.我绝对没弃坑...^_^ 还用些话:本文为博主原创文章,若转载请注明原网址和作者. 进入正题: 先pa网址: bzoj :http://www.l ...

  7. Luogu3732 [HAOI2017] 供给侧改革 【后缀数组】【线段树】【乱搞】

    题目分析: 这道题我是乱搞的,因为他说$01$串是随机的. 那么我们可以猜测能够让LCP变大的地方很少.求出后缀数组之后可能让LCP变大的地方就等价于从大到小往height里动态加点同时维护这个点左右 ...

  8. 【NOI2018】你的名字【后缀自动机】【可持久化线段树合并】【乱搞】

    题意:给一个串 SSS,qqq 次询问,每次给定串 TTT 和 l,rl,rl,r ,求有多少个本质不同的串是 TTT 的子串而不是 Sl-rS_{l\dots r}Sl-r​ 的子串. ∣S∣≤5× ...

  9. BZOJ 1124 [POI2008]枪战Maf 贪心+乱搞

    题意:略. 方法:贪心+乱搞. 解析: 今天做的题里面最难的了- 分连通块进行考虑. 一个连通块最多死多少呢? 一个点 -> 死一个 一个环 -> 死环上点个数-1个 一个环加上内向树 - ...

  10. 【BZOJ】 2049 SDOI洞穴探险 【乱搞】

    不知怎么回事我的电脑上BZOJ挂了,鞠大神的oj也挂了..... 本来要用LCT,但书上说乱搞就不T,我之前却T了,于是我感叹BZOJ数据质量真好...然后就没有然后了 直到今天我又看到一个神犇说,乱 ...

最新文章

  1. vivaldi浏览器_上网高阶用户怎么能少了这3个无广告、安全免费的浏览器呢
  2. ue4缓存位置怎么改_怎么从蓝图节点跳转到C++源码?
  3. 你,的寒假作业写多少了?
  4. Linux 环境变量设置及查看
  5. c语言如何把c程序编译成可执行的exe文件
  6. rust盖错了怎么拆除_细说Rust错误处理
  7. 用 X 光检测新冠肺炎?也许孪生网络+迁移学习是更好的选择!
  8. linux mysql搭建禅道详细教程_linux安装禅道的步骤
  9. 顺序表 (数组) 详解
  10. C++类型转换运算符 static_cast,dynamic_cast,reinterpret_cast,const_cast
  11. Android虚拟键盘上下左右键按下和弹起的响应事件
  12. 【iOS】下的读写锁的简单实现
  13. UI 移动端设计尺寸
  14. ELI'S CURIOUS MIND
  15. 华为5G手机回归,再次打破国外技术垄断,将价格推至新高度
  16. 华为p30怎么删掉云相册的照片_华为手机云空间满了,教你如何清理
  17. ENET库(可靠UDP)
  18. Elastic-job系列(一)-------- 搭建Esjob控制台
  19. python连接mysql的几种方式_Python连接MySQL数据库的多种方式
  20. 高德地图搜索结果点击事件

热门文章

  1. [鸿篇巨制]蚂蚁金融级分布式架构SOFAStack编年史
  2. 前端程序员兼职副业平台推荐
  3. dns被劫持怎么办?网页总是跳转到别的、你的DNS可能被劫持了!
  4. 直观解释Gamma分布和Poisson分布
  5. 微信为什么不禁拼多多?诱导分享到底怎么判
  6. 树莓派4B系统烧录——Raspberry Pi Imager
  7. 提交健康信息服务器拥挤,python hpilo 监控 hp ilo 服务器健康信息
  8. Keepalived HAProxy应用
  9. Qt深入浅出(一) 从零开始写Qt应用
  10. limits.conf详解