首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
【BZOJ】2237: [NCPC2009]Flight Planning
】的更多相关文章
【BZOJ】2237: [NCPC2009]Flight Planning
题意 \(n(1 \le n \le 2500)\)个点的树,求删掉一条边再加上一条边使得还是一棵树,且任意两点最大距离最小. 分析 考虑枚举删掉每一条边,我们只需要考虑如何加边容易求得新树的最大距离. 当然是直径的一半咯. 题解 枚举每一条边,然后求两个连通块的直径,然后最大距离\(=max(len1, len2, (len1+1)/2+(len2+1)/2+1)\) #include <bits/stdc++.h> using namespace std; const int N=2505…
bzoj2237[NCPC2009]Flight Planning 结论题?
2237: [NCPC2009]Flight Planning Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 55 Solved: 27[Submit][Status][Discuss] Description S航空公司在N座城市之间有N-1条航线,航线是双向的.任意两座城市都是可以互相到达的,但是可能需要在一些城市换乘不同的航线. 目前有人抱怨要到达有些城市需要换乘太多次,S航空公司为了缓解这一现状,决定取消目前的一条航线,添加另一条航线,…
【BZOJ】3052: [wc2013]糖果公园
http://www.lydsy.com/JudgeOnline/problem.php?id=3052 题意:n个带颜色的点(m种),q次询问,每次询问x到y的路径上sum{w[次数]*v[颜色]},可以单点修改颜色.(n, m, q<=100000) #include <bits/stdc++.h> using namespace std; const int N=100005, M=100005; typedef long long ll; inline int getint()…
【BZOJ】3319: 黑白树
http://www.lydsy.com/JudgeOnline/problem.php?id=3319 题意:给一棵n节点的树(n<=1e6),m个操作(m<=1e6),每次操作有两种:1.查询u到根的第一条黑边的编号.2.将u到v的路径全部染成黑色 #include <cstdio> #include <cstring> #include <cmath> #include <string> #include <iostream>…
【BZOJ】3319: 黑白树(并查集+特殊的技巧/-树链剖分+线段树)
http://www.lydsy.com/JudgeOnline/problem.php?id=3319 以为是模板题就复习了下hld............................. 然后nlg^2n被tle成翔了.............................. 然后看题解QAQ,,,这... 神题做法...待会再写...(upd:[BZOJ]3319: 黑白树) tle的hld: #include <cstdio> #include <cstring> #i…
【BZOJ】1013: [JSOI2008]球形空间产生器sphere
[BZOJ]1013: [JSOI2008]球形空间产生器sphere 题意:给n+1个n维的点的坐标,要你求出一个到这n+1个点距离相等的点的坐标: 思路:高斯消元即第i个点和第i+1个点处理出一个式子,这样n+1个点正好有n个系数的n元变量,即可求解. 式子:Σ( (a[i][j] - x[j])^2 ) = Σ( a[i+1][j] - x[j])^2 ) => Σ( x[j]*[2*(a[i+1][j]-a[i][j])] ) = Σ(a[i+1][j]*a[i+1][j] - a…
【BZOJ】1002:轮状病毒(基尔霍夫矩阵【附公式推导】或打表)
Description 轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的.一个N轮状基由圆环上N个不同的基原子和圆心处一个核原子构成的,2个原子之间的边表示这2个原子之间的信息通道.如下图所示: N轮状病毒的产生规律是在一个N轮状基中删去若干条边,使得各原子之间有唯一的信息通道,例如共有16个不同的3轮状病毒,如下图所示: 现给定n(N<=100),编程计算有多少个不同的n轮状病毒. Input 第一行有1个正整数n. Output 计算出的不同的n轮状病毒数输出. Sample I…
【BZOJ】【3083】遥远的国度
树链剖分/dfs序 其实过了[BZOJ][4034][HAOI2015]T2以后就好搞了…… 链修改+子树查询+换根 其实静态树的换根直接树链剖分就可以搞了…… 因为其实只有一样变了:子树 如果root在x的子树中(以1为根dfs的时候),那么现在x的子树就变成了整个dfs序中,除去含有root的那个子树的剩下的部分,画个图大概就是这样:(红色部分为现在的子树)…
【BZOJ】【2434】【NOI2011】阿狸的打字机
AC自动机+DFS序+BIT 好题啊……orz PoPoQQQ 大爷 一道相似的题目:[BZOJ][3172][TJOI2013]单词 那道题也是在fail树上数有多少个点,只不过这题是在x的fail树上数有多少个y的点. 感觉好难搞啊……那么我们不妨反过来……离线做? 既然是fail树!那么就看可以有dfs序,那么我们可以先找到整棵树上所有y的点,再看有哪些是在x的fail树上的,怎么做?x的fail树,对应的是整个dfs序上的一个区间!其实就是令dfs序上字符串y的点为1,其他为0,求一个区…
【BZOJ】【2738】&【Tsinsen】【A1333】矩阵乘法
整体二分+树状数组 过了[BZOJ][2527][POI2011]Meteors以后这题就没那么难啦~ 关键是[从小到大]依次插入数字,然后整体二分每个查询的第k大是在第几次插入中被插入的……嗯大概就是这样 /************************************************************** Problem: 2738 User: Tunix Language: C++ Result: Accepted Time:11852 ms Memory:7216…
【BZOJ】【3170】【TJOI2103】松鼠聚会
切比雪夫距离+曼哈顿距离 题解:http://www.cnblogs.com/zyfzyf/p/4105456.html 其实应该先做这题再做[BZOJ][3210]花神的浇花集会的吧…… 我们发现dist(i,j)是 i 和 j 的切比雪夫距离,那么同样的,我们可以将它们转成曼哈顿来做.(x[i]=x+y; y[i]=x-y;) 然后就是求n个点到某一个点的曼哈顿距离和的最小值了. 由于是曼哈顿距离,所以x和y是无关的,我们可以分开计算! 对x排序,我们可以发现,所有点到x[1]的距离就是$\…
【BZOJ】2956:模积和
Time Limit: 10 Sec Memory Limit: 128 MB Description 求∑∑((n mod i)*(m mod j))其中1<=i<=n,1<=j<=m,i≠j. Input 第一行两个数n,m. Output 一个整数表示答案mod 19940417的值 Sample Input 3 4 Sample Output 1 样例说明 答案为(3 mod 1)*(4 mod 2)+(3 mod 1) * (4 mod 3)+(3 mod 1) * (…
【BZOJ】1297: [SCOI2009]迷路
[题意]给定n个点的有向带边权图,求0到n-1长度恰好为T的路径数.n<=10,T<=10^9,边权1<=wi<=9. [算法]矩阵快速幂 [题解]这道题的边权全部为1时,有简化版:[BZOJ]1706: [usaco2007 Nov]relays 奶牛接力跑 这道题边权很小,将点x拆成9个点x1~x9,xi向xi+1连边.如果x到y的边权为k,则连边xk-y1. 然后就和奶牛题一样了.…
【BZOJ】1707: [Usaco2007 Nov]tanning分配防晒霜
[算法]贪心扫描线(+堆) [题意]给定n头牛有区间[a,b],m个防晒霜值为ai,每个可以使用bi次,每次可以使包含它的区间涂到防晒霜,问最多被涂牛数. [题解] 参考:[bzoj1707]: [Usaco2007 Nov]tanning分配防晒霜 by czllgzmzl 本题同样是区间和点的贪心,可以参考另一道题[BZOJ]1828: [Usaco2010 Mar]balloc 农场分配(经典贪心) 区间和点的贪心有两种经典做法,本题一样. 一.从区间角度出发,按区间右端点排序 区间第二关…
【BZOJ】4129: Haruna’s Breakfast 树分块+带修改莫队算法
[题意]给定n个节点的树,每个节点有一个数字ai,m次操作:修改一个节点的数字,或询问一条树链的数字集合的mex值.n,m<=5*10^4,0<=ai<=10^9. [算法]树分块+带修改莫队算法 [题解]和[BZOJ]3052: [wc2013]糖果公园 树分块+待修改莫队算法差不多. 区别在于如何处理树链信息.考虑对值域分块,由于>n的数字没用,所以对[0,n]分块,维护每一块所含数字个数. 这样就可以O(1)单点修改,O(√n)查询.(扫描到第一块所含数字不满的块,再块内扫描…
【BZOJ】2631: tree LCT
[题意]给定n个点的树,每个点初始权值为1,m次操作:1.x到y的点加值,2.断一条边并连一条边,保证仍是树,3.x到y的点乘值,4.x到y的点权值和取模.n,m<=10^5. [算法]Link-Cut Tree [题解]区间加和区间乘标记的处理:[BZOJ]1798: [Ahoi2009]Seq 维护序列seq 线段树 splay上维护要注意: 1.上传时加本身. 2.改值的时候不能影响到0点. 3.所有改变点的儿子的地方都要上传,所有改变点的父亲的地方都要下传. 除了rotate,还有acc…
【BZOJ】4316: 小C的独立集 静态仙人掌
[题意]给定仙人掌图,求最大独立集(选择最大的点集使得点间无连边).n<=50000,m<=60000. [算法]DFS处理仙人掌图 [题解]参考:[BZOJ]1023: [SHOI2008]cactus仙人掌图 对仙人掌进行无向图的点双连通分量Tarjan算法,树边正常DP,环边(low[y]<=dfn[x])无视. 每个环在其深度最小的点整体处理(找到(u,v)只须fa[v]≠u&&dfn[y]>dfn[x]). DP的做法参考:[BZOJ]1040: [ZJO…
【BZOJ】2301: [HAOI2011]Problem b(莫比乌斯+分块)
http://www.lydsy.com/JudgeOnline/problem.php?id=2301 和这题不是差不多的嘛--[BZOJ]1101: [POI2007]Zap(莫比乌斯+分块) 唯一不同的地方是这题有下界.. 下界除以k的时候取上界,然后分块的时候因为有4个数,所以要分成4块来搞.. 然后就行了.. #include <cstdio> #include <cstring> #include <cmath> #include <string>…
【BZOJ】1096: [ZJOI2007]仓库建设(dp+斜率优化)
http://www.lydsy.com/JudgeOnline/problem.php?id=1096 首先得到dp方程(我竟然自己都每推出了QAQ)$$d[i]=min\{d[j]+cost(j+1,i)\}+c[i]$$其中$d[i]$是前i个且在i建仓库的最小费用,$cost(j+1,i)$是将j+1-i的东西全都运到i的费用 而我们先考虑cost怎么求,orz,好神的前缀和,首先维护sum[i]表示1-i的物品,则j-i的东西从j全都运到i需要$$(sum[i]-sum[j]) \ti…
【BZOJ】4721: [Noip2016]蚯蚓 / 【洛谷】P2827 蚯蚓(单调队列)
Description 本题中,我们将用符号[c]表示对c向下取整,例如:[3.0」= [3.1」=[3.9」=3.蛐蛐国最近蚯蚓成灾了!隔壁跳 蚤国的跳蚤也拿蚯蚓们没办法,蛐蛐国王只好去请神刀手来帮他们消灭蚯蚓.蛐蛐国里现在共有n只蚯蚓(n为正整 数).每只蚯蚓拥有长度,我们设第i只蚯蚓的长度为a_i(i=1,2,...,n),并保证所有的长度都是非负整数(即:可 能存在长度为0的蚯蚓).每一秒,神刀手会在所有的蚯蚓中,准确地找到最长的那一只(如有多个则任选一个) 将其切成两半.神刀手切开蚯蚓…
缩点+spfa最长路【bzoj】 1179: [Apio2009]Atm
[bzoj] 1179: [Apio2009]Atm Description Siruseri 城中的道路都是单向的.不同的道路由路口连接.按照法律的规定, 在每个路口都设立了一个 Siruseri 银行的 ATM 取款机.令人奇怪的是,Siruseri 的酒吧也都设在路口,虽然并不是每个路口都设有酒吧.Banditji 计划实施 Siruseri 有史以来最惊天动地的 ATM 抢劫.他将从市中心 出发,沿着单向道路行驶,抢劫所有他 途径的 ATM 机,最终他将在一个酒吧庆 祝他的胜利.使用高超…
【BZOJ】【1059】【ZJOI2007】矩阵游戏
二分图完美匹配/匈牙利算法 如果a[i][j]为黑点,我们就连边 i->j ,然后跑二分图最大匹配,看是否有完美匹配. <_<我们先考虑行变换:对于第 i 行,如果它第 j 位是黑点,那么我们一定可以通过交换行来将这一行放到新矩阵的第 j 行,使a[j][j]这一位满足题目要求:同时,第 j 行也必须有一个原矩阵的行放过来,这样,就满足一一对应的关系,所以就是[匹配]了…… 然而列变换:我们交换两列a和b,只是相当于将原来从左部连到右部的 a 点的边,与从左部连到右部的 b 点的边交换了…
【BZOJ】【1041】【HAOI2008】圆周上的点
数学 orz hzwer 完全不会做…… 很纠结啊,如果将来再遇到这种题,还是很难下手啊…… 引用题解: [分析]: 样例图示: 首先,最暴力的算法显而易见:枚举x轴上的每个点,带入圆的方程,检查是否算出的值是否为整点,这样的枚举量为2*N,显然过不了全点. 然后想数学方法. 有了上面的推理,那么实现的方法为: 枚举d∈[1,sqrt(2R)],然后根据上述推理可知:必先判d是否为2R的一约数. 此时d为2R的约数有两种情况:d=d或d=2R/d. 第一种情况:d=2R/d.枚举a∈[1,sqr…
【BZOJ】【1023】【SHOI2008】cactus仙人掌图
DP+单调队列/仙人掌 题解:http://hzwer.com/4645.html->http://z55250825.blog.163.com/blog/static/150230809201412793151890/ QAQ了 呃……第一次做仙人掌的题目……感觉性质还是蛮神奇的(我是不是应该先做一点环套树的题目呢?>_>) 每个点都只会在一个简单环上,所以在dfs的时候,对于一个环,它上面的点是深度连续的一段(沿着father可以遍历这个环!),然后最后一个点再指回起始点,所以只要l…
【BZOJ】【3442】学习小组
网络流/费用流 orz zyf 裸的费用流,根据题目描述即可建出如下的图: S->i 费用表示每有一个加入第 i 个小组的学生,需要花的钱,由于是跟流量(人数)的二次方相关,所以要拆边……然后每个人的报名费直接用支出减去即可(也就是每条边的费用都减去一个常量) i->j+m 根据矩阵连边……如果第 j 个学生能报名第 i 个小组即连一条边,费用为0. j+m->T 容量为k,费用为0,表示每个人最多报k个小组. 但是这题很坑啊!限制条件是参与学生尽量多,也就是说在一定会亏的时候每人最多只…
【BZOJ】【2631】Tree
LCT 又一道名字叫做Tree的题目…… 看到删边加边什么的……又是动态树问题……果断再次搬出LCT. 这题比起上道[3282]tree的难点在于需要像线段树维护区间那样,进行树上路径的权值修改&查询.那么类似的,我们就可以在splay的每个节点上记录一坨信息了…… 个人感觉跟线段树标记不一样的地方: 1.标记只是给儿子们用的,打标记的节点本身在打标记的同时就修改了信息了,然后在Push_down的时候直接放下去……(没法在push_down的时候更新自己,要不mul标记怎么改?) 2.虽然sp…
【BZOJ】【1036】树的统计
嗯这题是一道对树进行动态修改&查询的经典题目,可以拿来练习树链剖分~ 啊对于这种动态修改&查询的题目,我们最喜闻乐见的就是在一个序列上去做了,毕竟可以直接套各种数据结构模版啊,比如线段树.平衡树之类的.那么对于这种树上的动态修改&查询,我们可以把它通过一定的手段,“转化”成序列上的问题,再套用xx树之类的数据结构进行快速维护.而这个手段呢,就有很多种了(应该是吧?),这里用到的树链剖分,就是一种将树转化成序列的划分方式. 好的,我们现在拿到一棵树,首先我们会看到,这个树跟序列几乎没…
【BZOJ】【2038】小Z的袜子
填个坑吧,学习了莫队算法.我也忘记是看的哪位大牛的博客&代码学习的了T_T,如果您发现了的话请私信我,我会注明学自您的代码. 另外感谢@PoPoQQQ大神 好,进入正文,莫队算法,也算是一种暴力吧,从某种意义上来说……是一种对暴力的强大优化= = 对于区间的莫队是基于[分块]的思想,这一点有些类似求离散对数的[大步小步算法]. 首先我们来考虑一个赤果果的暴力算法:对于每个询问,从L到R枚举一遍,统计每种袜子出现的次数,然后用组合数学的方法算出抽到两只相同袜子的方案数,和所有抽取袜子的总方案数.(…
【BZOJ】【1022】【SHOI2008】小约翰的游戏John
博弈论 一看题,哇这不是Nim游戏么= =直接异或起来……啊咧怎么不对? 这道题是[Anti-Nim],普通的Nim是取走最后一个就赢,这题是取走最后一个输…… 做法参见 2009年贾志豪论文<组合游戏略述——浅谈SG游戏的若干拓展及变形> /************************************************************** Problem: 1022 User: Tunix Language: C++ Result: Accepted Time:16…
【BZOJ】1095: [ZJOI2007]Hide 捉迷藏 括号序列+线段树
[题目]BZOJ 1095 [题意]给定n个黑白点的树,初始全为黑点,Q次操作翻转一个点的颜色,或询问最远的两个黑点的距离,\(n \leq 10^5,Q \leq 5*10^5\). [算法]括号序列+线段树 [题解]参考:konjac 括号序列其实就是入栈出栈序,每个点在进入时加左括号和点编号,退出时加右括号. 这样做的好处:两个点间的括号数(除去匹配的括号)就是两点间路径的长度. 除去匹配的括号后,容易发现两个点间的括号时")))((("的形式,右括号就是向上一条边,左括号就是向…