很久之前想写这题。结果还是把握不住CF的E,太神了啊。。。。。。。

首先考虑的是二分图的性质,这个so easy,图中不存在奇数环。

然后分三种情况考虑:

1.只有一个奇数环,随便删除哪条

2.多个奇数环,删除它们都覆盖的那条

3.没有奇数环,岂不是爽爆了。。?

然后还引入了“返祖边”的概念,这个具体可以看博客http://blog.csdn.net/DaD3zZ/article/details/50879626  太神了反正我一点都不会

其中详细叙述了删哪条,怎么删的问题,类似于一个前缀和的思想,给每一条返祖边都打上一个标记。

1.如果它是返祖边,并且在唯一的一个奇环上,那么可以删

2如果它是树上奇环边,并且被所有奇环覆盖,并且不被偶环覆盖,那么也可以删

个人感觉最重要的还是dp的过程:odd[i]表示i的父边奇环,even表示偶环

void work(int u)
{
  flag[u]=;int e=head[u];
  )
  {
    int v=vet[e];
    )/]&&flag[v]==)
    {
      work(v);
      odd[u]+=odd[v];even[u]+=even[v];
      road[(e+)/].o=odd[v];road[(e+)/].e=even[v];
    }
    e=next[e];
  }
}

work

[bzoj4424]Fairy的更多相关文章

  1. 【BZOJ4424】Cf19E Fairy DFS树

    [BZOJ4424]Cf19E Fairy Description 给定 n 个点,m 条边的无向图,可以从图中删除一条边,问删除哪些边可以使图变成一个二分图. Input 第 1 行包含两个整数 n ...

  2. BZOJ-4424 &&CodeForces-19E Fairy DP+dfs (Link-Cut-Tree可A)

    Va爷的胡策题T2 E. Fairy time limit per test1.5 seconds memory limit per test256 megabytes inputstandard i ...

  3. bzoj千题计划229:bzoj4424: Cf19E Fairy

    http://www.lydsy.com/JudgeOnline/problem.php?id=4424 图是二分图的条件:没有奇环 所以,如果图不存在奇环,删除任意一条边都可以 如果存在奇环, 对于 ...

  4. BZOJ4424/CF19E Fairy(dfs树+树上差分)

    即删除一条边使图中不存在奇环.如果本身就是个二分图当然任意一条边都可以,先check一下.否则肯定要删除在所有奇环的交上的边. 考虑怎么找这些边.跑一遍dfs造出dfs树,找出返祖边构成的奇环.可以通 ...

  5. BZOJ4424: Cf19E Fairy

    树上差分的代码很简洁,dfs+差分即可 这题很多坑点啊,比如重边自环好坑 #include<cstdio> #include<cstdlib> #include<algo ...

  6. ural 1343. Fairy Tale

    1343. Fairy Tale Time limit: 1.0 secondMemory limit: 64 MB 12 months to sing and dance in a ring the ...

  7. [jzoj]3506.【NOIP2013模拟11.4A组】善良的精灵(fairy)(深度优先生成树)

    Link https://jzoj.net/senior/#main/show/3506 Description 从前有一个善良的精灵. 一天,一个年轻人B找到她并请他预言他的未来.这个精灵透过他的水 ...

  8. Codeforces Round #404 (Div. 2) C. Anton and Fairy Tale 二分

    C. Anton and Fairy Tale 题目连接: http://codeforces.com/contest/785/problem/C Description Anton likes to ...

  9. Codeforces 19.E Fairy

    E. Fairy time limit per test 1.5 seconds memory limit per test 256 megabytes input standard input ou ...

随机推荐

  1. 【XLL API 函数】xlfUnregister (Form 1)

    此函数可以被 Excel 已经载入的 XLL 或 DLL 调用.它等效于宏表函数 UNREGISTER. xlfUnregister 有两种调用形式: 形式1:Unregister 单独的命令或函数 ...

  2. Split()的简单的用法

    1.Split分割一些简答的字符串事例: string str="aaa|bbb|ccc"; string[] list = str.Split('|'); 这是一个字符的切割,但 ...

  3. 解决svn迁移过程中出现:SVN Error: is not the same repository as的问题

    一.背景 由于公司业务的需要,新购买了一批机器,那么面临着的就是svn等一系列东西进行迁移的问题,在svn迁移以后,本地的svn代码在切换时出现了SVN Error: 旧服务器地址 is not th ...

  4. August 29th 2016 Week 36th Monday

    Every has the capital to dream. 每个人都有做梦的本钱. Your vision, our mission. That is an advertisment of UMo ...

  5. Google140道面试题

    FQ找来,可能历史比较悠久了,慢慢看. 原文连接:http://www.impactinterview.com/2009/10/140-google-interview-questions/ Goog ...

  6. python eval和literal_eval

    eval是python中一个相当智能的函数,把参数当成表达式,进行最大限度的解析, 比如: a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]" b ...

  7. js windows对象

    一.DOM操作 windows对象操作 document对象操作     二.属性.事件 1.window的属性: window.shuxing(属性) window.fangfa()(方法) 方法后 ...

  8. ReactNative环境配置

    参考链接 Windows系统安装React Native环境 windows下React Native Android 环境搭建 在Windows下搭建React Native Android开发环境 ...

  9. tar 只解压tar包中某个文件

    sh-4.1# ls test.tar sh-4.1# tar -tf test.tar ./ecs20161207.png ./ecs.png ./ecs.xml ./rds.png ./Scree ...

  10. jquery学习笔记-----ajax

    $(selector).load( url [,date] [,callback] ) url:请求页面的url地址 date:发送至服务器的key:value数据 callback:请求完成时的回调 ...