[atAGC014E]Blue and Red Tree】的更多相关文章

不断删除重边,然后将两个点的边集启发式合并(要考虑到两棵树),合并时发现重边就加入队列,最后判断是否全部删完即可 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define N 100005 4 set<int>s[N]; 5 map<int,int>mat[N]; 6 queue<pair<int,int> >q; 7 int n,x,y,ans,f[N]; 8 int find(int…
AT2377 Blue and Red Tree 法一:正推 红色的边在蓝色的树上覆盖,一定每次选择的是覆盖次数为1的边的覆盖这条边的红色边连出来 覆盖次数可以树剖找到 这条红色边,可以开始的时候每个红色边的编号打标记到线段树节点的vector里 找一个覆盖次数为1的边的时候,沿途的vector不断弹出已经连出的红色边,一定会找到有且只有一个红色边 链的覆盖次数--,标记这个红色边已经连好. 法二:倒推在Ta的博客查看 最后连的一定是一个红色和蓝色的重(chong)边 不断找重边,然后缩点,(u…
题意 There is a tree with \(N\) vertices numbered \(1\) through \(N\). The \(i\)-th of the \(N−1\) edges connects vertices \(a_i\) and \(b_i\). Initially, each edge is painted blue. Takahashi will convert this blue tree into a red tree, by performing t…
题目描述 有一棵\(n\)个点的树,最开始所有边都是蓝边.每次你可以选择一条全是蓝边的路径,删掉其中一条,再把这两个端点之间连一条红边.再给你一棵树,这棵树的所有边都是红边,问你最终能不能把原来的树变成这棵新树. \(n\leq 100000\) 题解 考虑最后一条加的边,那么当前也有一条相同的蓝边.也就是说,如果把这两棵树合在一起,这两个点之间会有两条边.然后可以把这两个点缩成一个点. 所以我们每次选择之间有两条边的一对点,把这两个点合在一起.可以直接遍历度数较小的那个点\(x\)相邻的边,把…
传送门 思路 官方题解是倒推,这里提供一种正推的做法. 不知道你们是怎么想到倒推的--感觉正推更好想啊QwQ就是不好码 把每一条红边,将其转化为蓝树上的一条路径.为了连这条红边,需要保证这条路径仍然完整. 考虑连完之后要删掉的那条蓝边,显然它只能被当前连的红路径覆盖而没有被其他路径覆盖,否则就玩不下去了. 即:每次只能删掉一条被覆盖一次的蓝边. 有没有可能一条蓝边没有被覆盖过呢?显然是不可能的,因为每条蓝边最终都要删去,若没有覆盖过则无法删去. 那么做法就很显然了:树剖,线段树维护最小值和覆盖了…
题目链接 \(Description\) 给定两棵\(n\)个点的树,分别是由\(n-1\)条蓝边和\(n-1\)条红边组成的树.求\(n-1\)次操作后,能否把蓝树变成红树. 每次操作是,选择当前树上一条只由蓝边组成的简单路径\(u\to v\),删掉路径上的任意一条蓝边,然后在路径上任选两个点,在这两个点之间加一条红边. \(n\leq10^5\). \(Solution\) 模拟一下样例二,就比较容易想到: 考虑能否从红树变回到蓝树. 我们每次要找到当前树上一条蓝边组成的路径\(u\to…
Description 给定一棵\(n\)个节点的蓝边树,再给定一棵\(n\)个节点的红边树.请通过若干次操作将蓝树变成红树.操作要求和过程如下: 1.选定一条边全为蓝色的路径: 2.将路径上的一条蓝边断开,并将路径的两个端点之间连一条红边. 问能否实现目标. Solution 我们发现这个过程只会做恰好\(n-1\)次,因为每次都会减少一条蓝边.增加一条红边. 考虑红树上的一条边\((u,v)\),显然在蓝树上操作时,我们选择了一条以\(u\)和\(v\)为端点的路径,才造就了这条边.因此红树…
题目链接 AtCoder:https://agc014.contest.atcoder.jp/tasks/agc014_e 洛谷:https://www.luogu.org/problemnew/show/AT2377 Solution 秒了\(O(n^2)\)不会优化是什么鬼...最后膜了大佬的题解才会写... 注意到最后一条边一定在蓝图上存在,在红图上也存在,那么我们可以找到任意一条这样的边,把两端的点合并起来,蓝图和红图都合并,剩下的是一个子问题,做\(n-1\)遍就好了,复杂度\(O(n…
题目传送门:https://agc014.contest.atcoder.jp/tasks/agc014_e 题目翻译 有一棵有\(N\)个点的树,初始时每条边都是蓝色的,每次你可以选择一条由蓝色边构成的简单路径,让这条路径的两个端点间连上一条红边,然后断开这条路径上的某条蓝边.这样做\(N-1\)次,就可以把原本的蓝树变成红树.现在给你蓝树和红树的样子,问你可不可能把给出的蓝树变成给出的红树.\(N\leqslant 10^5\) 题解 先膜一发大佬的题解:https://blog.csdn.…
题目链接 https://atcoder.jp/contests/agc014/tasks/agc014_e 题解 完了考场上树剖做法都没想到是不是可以退役了... 首先有一个巨难写的据说是\(O(n\log^3n)\)的树剖+树套树做法: 对于每条红边\((u,v)\), 给蓝树上两点间路径\(+1\), 然后每次选出一个值为\(1\)的边,找到覆盖它的红边然后把这条\(1\)的边断掉加上红边,再去掉红边的影响. 下面来说正解. 依然是上面的思路,然后发现假设断掉前\((i-1)\)条蓝边之后…
#include<iostream> #include<cstring> using namespace std; int sum; ]; int n; int head; int ping(int w){ ; ;y<w;y++){ u=u*; } return u; } int main(){ freopen("ball.in","r",stdin); freopen("ball.out","w"…
题目大意 给出一个长度为 \(N\) 的01串,其中有 \(K\) 个 \(1\),其他都是 \(0\),需要求出当着 \(K\) 个 \(1\) 分成 \(1\) 到 \(K\) 段每一个的方案数. 分析 因为需要将这 \(K\) 个 \(1\) 分成 \(i\)(\(1 \leq i \leq K\))段,那自然就会想到隔板法,那么方案数就是 \(C_{K-1}^{i-1}\),要将这 \(i\) 段放入长度为 \(N-K\) 的 \(0\) 串中,在这样一个串中有 \(N-K+1\) 个位…
原题链接 简要翻译: 有一个连通图,A和B同时从点1出发,沿不同的路径前进.原本,图上的每一条边都是灰色的.A将经过的边涂成红色,B将经过的边涂成蓝色的.每个回合每个人只能走灰色的边.当某个回合中不存在两条不同的灰色路径来同时移动A和B时,游戏结束.试求结束时,图上边的涂色情况有多少种?只要有一条边颜色不同,就视为两种情况.特别的,对图中除点1外的点,每一个点都有且只有两条边与之相连. 数据范围: \(2\leq N\leq3e5\),\(2\leq M\leq 2\times N\) 题解:…
AGC014 链接 A - Cookie Exchanges 发现两个数之间的差会逐渐缩小,所以只要不是三个数都相同,那么log次左右一定会得到答案 #include <bits/stdc++.h> #define fi first #define se second #define pii pair<int,int> #define mp make_pair #define pb push_back #define space putchar(' ') #define enter…
A - Cookie Exchanges 题面 Takahashi, Aoki and Snuke love cookies. They have A, B and C cookies, respectively. Now, they will exchange those cookies by repeating the action below: Each person simultaneously divides his cookies in half and gives one half…
AtCoder Grand Contest 014 A - Cookie Exchanges 有三个人,分别有\(A,B,C\)块饼干,每次每个人都会把自己的饼干分成相等的两份然后给其他两个人.当其中有一个人的饼干数量是奇数的时候停止,求会进行几次这样子的操作,或者会永远进行下去. 首先无解的情况一定是三个数都是相等的偶数. 否则直接暴力模拟就行了.(盲猜答案不会很大) 证明一下答案的范围:不妨令\(A\le B\le C\),那么最大值和最小值之间的差就是\(C-A\),那么执行完一次操作之后…
A@GC*014 A Cookie Exchanges 卡时跑了1s就输出-1 每次操作会使三个数的极差缩小一半,所以最多\(\log\)次之后就会出现\(A=B=C\)的情况,可以直接判掉 B Unplanned Queries 每个点正好出现两次就有解,否则无解. 树的形态并不影响最后的边权,如果给一条路径\(+1\),因为是\(\mod 2\)意义下,可看做\(x,y\)分别到根\(+1\) 那么叶子节点的操作次数只能是偶数(考虑到父亲的边),一路向上推推出所有节点操作次数都得是偶数(树根…
Red/Blue Spanning Tree Time Limit: 2000ms Memory Limit: 131072KB This problem will be judged on HDU. Original ID: 426364-bit integer IO format: %I64d      Java class name: Main   Given an undirected, unweighted, connected graph, where each edge is co…
Erlang核心开发者Lukas Larsson在2014年3月份Erlang Factory上的一个演讲详细介绍了Erlang内存体系的原理以及调优案例: http://www.erlang-factory.com/conference/show/conference-6/home/#lukas-larsson 在这里可以下载slides和观看视频(为了方便不方便科学上网的同学,我把视频搬运到了 http://v.youku.com/v_show/id_XNzA1MjA0OTEy.html )…
HTML语言剖析 Html简介-目录 全写: HyperText Mark-up Language  译名: 超文本标识语言  简释:一种为普通文件中某些字句加上标示的语言,其目的在于运用标签(tag)使文件 达到预期的显示效果.由文字(字母,数字.标点符号)及标签组合而成.任何文字编辑器都可以,这里推荐用:Dreamweaver.   1. Html特点: ► 描述性语言,结构语言,用于决定网页内容以什么样的形式显示: ► 通过标签来控制网页的文档.字符和段落等的格式,以及对脚本语言等的调用:…
Page 387 of chapter 7 """ 6-23 page 343 play media files """ def odd(): funcs=[] for c in 'abcdwe': funcs.append((lambda:c)) return funcs def odd2(): funcs=[] for c in 'abcdwe': funcs.append((lambda c=c:c)) return funcs def o…
以下内容为原创,转载请注明: 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4242541.html 以前写过一篇“[Android]使用AdapterTypeRender对不同类型的item数据到UI的渲染(http://www.cnblogs.com/tiantianbyconan/p/3992843.html)”,用于在有很多不同类型不同布局的item的时候怎么去较好的进行view的绑定和数据的渲染,但是这个是针对ListView写的.这次…
Exam : 1Z0-851 Java Standard Edition 6 Programmer Certified Professional Exam 以下分析全都是我自己分析或者参考网上的,定有疏漏,还请大家对我的分析提出质疑.   QUESTION 134 Given:11. class Snoochy {12. Boochy booch;13. public Snoochy() { booch = new Boochy(this); }14. }15.16. class Boochy…
置顶文章:<纯CSS打造银色MacBook Air(完整版)> 上一篇:<鼠标滚动插件smoovejs和wowjs> 作者主页:myvin 博主QQ:851399101(点击QQ和博主发起临时会话) ::selection{ background:blue; color:red; } Tip: 为保证良好的体验,请使用chrome打开查看.(笔者使用的chrome版本为48.0.2564.97 (64-bit)). 1.input[type = "date"]…
Time Limit: 1000 mSec    Memory Limit : 32768 KB  Problem Description 一棵二叉树可以按照如下规则表示成一个由0.1.2组成的字符序列,我们称之为“二叉树序列S”: 例如,下图所表示的二叉树可以用二叉树序列S=21200110来表示. 你的任务是要对一棵二叉树的节点进行染色.每个节点可以被染成红色.绿色或蓝色.并且,一个节点与其子节点的颜色必须不同,如果该节点有两个子节点,那么这两个子节点的颜色也必须不相同.给定一棵二叉树的二叉…
     原文地址: http://www.onlamp.com/pub/a/onlamp/2007/08/23/advanced-javascript-ii.html?page=1 在前面的文章中,我们介绍了两类JavaScript小工具及其源代码:浮动文本和弹出菜单.本文中,我们将继续介绍另外几个实用的JavaScript小工具,并着重说明其工作原理,因此你能够简单改动后应用到自己的程序中.本文中的JavaScript代码应该不用做不论什么改动就能够在当前全部主流浏览器上执行.所以,不用再费…
第一章 在python中使用数字 1.用变量存储信息 1.1变量的类型 变量,用于存储很多不同的数据类型的信息. 基本数据类型 数据类型 存储内容 示例 integer 整   float 浮点   long 非常大的数   string 字母数字空格和符号   list[列表(有时候叫数组)] 方括号括住一组项,并且项与项之间用逗号分割.   tuple[元祖] 圆括号括住的一组项,这些项不能改变.   dictionary[字典] 配对的键值对,用花括号.   1.2变量中存储数字 type…
感觉又帮 Windows 10 IoT 开荒了,所以呢,正儿八经的写篇博客吧.其实大概半年前就想写的,那时候想做个基于 Windows 10 IoT 的小车,但树莓派原生不支持 PWM 啊.百度也搜不到,上 GitHub 转了一圈,在 @ms-iot 那发现了 Lightning ,再看最后的更新时间,还是2016中旬--Windows 10 IoT 在国内真惨,这么长时间都没人写个教程--不说废话了-- 本文示例地址:https://github.com/ZhangGaoxing/window…
http://blog.csdn.net/pipisorry/article/details/46947833 python额外的数据类型.collections模块和heapq模块的主要内容. 集合库collection collections模块介绍 Python拥有一些内置的数据类型,比如str, int, list, tuple, dict等, collections模块在这些内置数据类型的基础上,提供了几个额外的数据类型:1.namedtuple(): 生成可以使用名字来访问元素内容的…
A. New Year and the Christmas Ornament time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Alice and Bob are decorating a Christmas Tree. Alice wants only 33 types of ornaments to be used on th…