E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
HNOI2009
启发式合并(dsu),树上启发式合并(dsu on tree)总结
启发式合并(dsu),树上启发式合并(dsuontree)总结算法内容前置知识:启发式合并(dsu)例题:[
HNOI2009
]梦幻布丁重点:树上启发式合并(dsuontree)例题#1TreeRequests
best_brain
·
2024-01-03 04:12
个人总结
内容总结
算法
数据结构
c++
P4727 [
HNOI2009
] 图的同构计数
Burnside:∣X/G∣=1∣G∣∑g∈G∣X(g)∣Burnside:|X/G|=\frac{1}{|G|}\sum\limits_{g\inG}|X^{(g)}|Burnside:∣X/G∣=∣G∣1g∈G∑∣X(g)∣该题:∣X/G∣=1∣G∣∑b2kΠ(bi)Π(ci!)|X/G|=\frac{1}{|G|}\sum\limits_{b}\frac{2^k}{\Pi(b_i)\Pi(c
Tonvia
·
2023-10-03 23:44
学习
算法&数论
题解
算法
机器学习
人工智能
c++
c语言
HNOI2009
有趣的数列
#
HNOI2009
有趣的数列题目传送门:有趣的数列##前言我翻了好多题解,每一篇题解都只是一部分比较详细,于是想综合一下,所以就有了这篇题解第一次用markdown##进入正题首先,一个数列,有2n个数
yi_fan0305
·
2022-07-24 19:00
BZOJ-1486: [
HNOI2009
]最小圈(二分判定+DFS查负权圈)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1486二分判定最小平均值,如果我们枚举一个端点mid,我们对所有边权减去mid,如果存在负权圈,那么就说明存在比枚举值更小的平均值,反之不存在,然后二分即可。代码:#include#include#includeusingnamespacestd;#defineesp0.0000000001#d
AmadeusChan
·
2021-06-06 20:22
HNOI[2009]题解
继续上
HNOI2009
的题解。梦幻布丁由于数据范围为100000,暴力肯定是不行的。(好像是废话…)我们目前存在两个问题:1.合并两个不同的颜色;2.输出块数。
Owaski
·
2020-09-14 07:15
HNOI
洛谷P3199 [
HNOI2009
]最小圈(01分数规划)
题意题目链接Sol暴力01分数规划可过标算应该是这个#include#definePairpair#defineMP(x,y)make_pair(x,y)#definefifirst#definesesecond//#defineintlonglong#defineLLlonglong#defineFin(x){freopen(#x".in","r",stdin);}#defineFout(x){
weixin_30876945
·
2020-09-12 07:21
bzoj 1485 //1485: [
HNOI2009
]有趣的数列 模拟/打表/卡特兰数
bzoj1485//1485:[
HNOI2009
]有趣的数列//在线测评地址https://www.lydsy.com/JudgeOnline/problem.php?
mrcrack
·
2020-08-18 00:06
跟着大佬学算法
[
HNOI2009
]有趣的数列
题目:洛谷P3200、BZOJ1485、codevs2337。题目大意:我们称一个长度为$2n$的数列是有趣的,当且仅当该数列满足以下三个条件:1.它是从$1$到$2n$共$2n$个整数的一个排列$\{a_i\}$;2.所有的奇数项满足$a_1#defineLoveLivelonglongintprm[1000005];boolisnprm[2000005];intn,md,cnt=0;inlin
ddpx3313
·
2020-08-17 22:42
BZOJ 1488 [
HNOI2009
]图的同构 BZOJ 1815 [Shoi2006]color 有色图
题目链接https://lydsy.com/JudgeOnline/problem.php?id=1488https://lydsy.com/JudgeOnline/problem.php?id=1815题解考虑polya,对于一个点的置换A1,⋯ ,AnA_1,\cdots,A_nA1,⋯,An,假设循环节的长度分别为L1,⋯ ,LmL_1,\cdots,
wang3312362136
·
2020-08-17 15:24
polya
[
HNOI2009
]梦幻布丁 D1 T1
DescriptionN个布丁摆成一行,进行M次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色.例如颜色分别为1,2,2,1的四个布丁一共有3段颜色.Input第一行给出N,M表示布丁的个数和好友的操作次数.第二行N个数A1,A2...An表示第i个布丁的颜色从第三行起有M行,对于每个操作,若第一个数字是1表示要对颜色进行改变,其后的两个整数X,Y表示将所有颜色为X
jmh20021118
·
2020-08-13 15:40
数据结构
链表
有趣的数列 [Codevs 2337,Bzoj 1485,
HNOI2009
]
题目地址请点击——有趣的数列【题目描述】我们称一个长度为2n的数列是有趣的,当且仅当该数列满足以下三个条件:(1)它是从1到2n共2n个整数的一个排列{ai};(2)所有的奇数项满足a1=y,所以相当于走到(n,n)且不可以穿过直线y=x的路径总数!根据我之前写的网格这篇博文,ans=[Cn2n−Cn−12n]modp=[(2n)!n!⋅n!−(2n)!(n+1)!⋅(n−1)!]modp=[(2
XY20130630
·
2020-08-13 12:23
题解
数学
BZOJ
CodeVS
卡特兰数 - HNOI 2009 有趣的数列 - 洛谷 P3200
卡特兰数-
HNOI2009
有趣的数列-洛谷P3200我们称一个长度为2n的数列是有趣的,当且仅当该数列满足以下三个条件:我们称一个长度为2n的数列是有趣的,当且仅当该数列满足以下三个条件:我们称一个长度为
njuptACMcxk
·
2020-08-09 22:52
数学
[
HNOI2009
]有趣的数列,洛谷P3200,Catalan+简化公式
正题题目传送门因为所有奇数项是升序的,所以又因为奇数项小于偶数项所以每个偶数位都能插在所对应奇数项的后面,换一种说法,就是把2*n个数从小到大排好序,把奇数项和偶数项丢进去,使得每一个前缀,奇数项的个数都比偶数项多。求Catalan数有4个公式。(点链接查看)其中有两个组合数公式是在一起的。那么前面两种很明显不行,第一种会超时,第二种因为p不是质数,求不了逆元,而且p也没有什么很好的性质。那么组合
Deep_Kevin
·
2020-08-09 18:56
BZOJ系列1485《[
HNOI2009
]有趣的数列》题解
Description我们称一个长度为2n的数列是有趣的,当且仅当该数列满足以下三个条件:(1)它是从1到2n共2n个整数的一个排列{ai};(2)所有的奇数项满足a12*i。问题转变:长度为N的序列,填入1~2*N中的数,使序列递增,且a[i]>2*i。f[i][j]表示第i位以前的数都填了,第i位填j的方法数(j>=2*i)。代码如下:#include#include#include#incl
Dante__Alighieri
·
2020-08-09 18:24
BZOJ
BZOJ 1483 [
HNOI2009
]梦幻布丁(启发式合并)
题意中文。做法:由于是同种颜色的改变颜色,所以只会有合并,不会有拆分,我们可以利用启发式合并,要合并2堆,就把小的那堆暴力合并给大的那堆,可以发觉,一个布丁最多只会被合并logn次,因为每次暴力合并后大小都会至少乘2。我写法比较暴力,用了vector保存不同颜色的布丁,用map保存某种颜色对应哪个vector。AC代码:#pragmacomment(linker,"/STACK:102400000
glq007
·
2020-08-03 05:02
数据结构
1486: [
HNOI2009
]最小圈
TimeLimit:10SecMemoryLimit:64MBSubmit:3129Solved:1543[Submit][Status][Discuss]DescriptionInputOutputSampleInput45125235315243413SampleOutput3.66666667二分法+spfa_dfs最小圈可以经过计算在T=60次循环后,答案精度会在小数点后8位1#inclu
anjiang8171
·
2020-07-14 07:12
[luogu4728
HNOI2009
] 双递增序列 (dp)
[luogu4728HNOI2009]双递增序列(dp)传送门Solution前几天刚做了类似题,这种将一个序列拆分为两个单调序列的题一般都是设\(dp[i]\)表示i为一个单调序列的末尾时,另一个序列的末尾是多少然后应用贪心的思想,在这道题中就是让另一个序列末尾最小。另外这道题还有长度的限制,不过由于总长知道,只需记其中一个的序列长度即可Code//ByMenteur_Hxy#include#i
Menteur_Hxy
·
2020-07-09 03:16
【bzoj1483】【
hnoi2009
】【梦幻布丁】【链表+启发式合并】
DescriptionN个布丁摆成一行,进行M次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色.例如颜色分别为1,2,2,1的四个布丁一共有3段颜色.Input第一行给出N,M表示布丁的个数和好友的操作次数.第二行N个数A1,A2...An表示第i个布丁的颜色从第三行起有M行,对于每个操作,若第一个数字是1表示要对颜色进行改变,其后的两个整数X,Y表示将所有颜色为X
sunshinezff
·
2020-06-26 16:04
链表
【
HNOI2009
】最小圈 题解(SPFA判负环+二分答案)
前言:模拟赛考试题,不会做,写了个爆搜滚蛋仍然保龄。---------------------题目链接题目大意:给定一张有向图,求一个环,使得这个环的长度与这个环的大小(所含结点个数)的比值最小。输出这个比值,保留8位小数。保证数据有解。---------------------转化一下题意。要求是使得$C=\frac{\sum\limits_{i=1}^kw[i]}{\sum\limits_{i
我亦如此向往
·
2020-06-21 16:00
【总结】线段树合并杂题
bzoj1483:[
HNOI2009
]梦幻布丁每个颜色建一颗线段树,改色就是暴力合并两个颜色的线段树,维护连续区间个数即可。
ccosi
·
2019-04-01 20:44
线段树
题解 luoguP3200 【[
HNOI2009
]有趣的数列】
很好的一道思维题。警告:文字较多,没有耐心者勿入。首先我们命名a1,a3,...,a2n−1a_1,a_3,...,a_{2n-1}a1,a3,...,a2n−1为奇数位,其余为偶数位。观察题目条件:奇数位与偶数位上的数字都满足从左到右递增,相邻的a2i−1,a2ia_{2i-1},a_{2i}a2i−1,a2i满足a2i−1<a2ia_{2i-1}<a_{2i}a2i−1
lxy超超超级大蒟蒻
·
2019-04-01 00:00
题解
【
HNOI2009
】BZOJ1485 有趣的数列题解(Catalan数)
题目:BZOJ1485.题目大意:给定nnn和ppp,求有多少个长度为2n2n2n的排列满足:1.∀i∈[1,n−1],a2i<a2i+2,a2i−1<a2i+1\foralli\in[1,n-1],a_{2i}<a_{2i+2},a_{2i-1}<a_{2i+1}∀i∈[1,n−1],a2i usingnamespacestd; #defineAbigailinlin
hezlik
·
2019-02-10 00:00
[
HNOI2009
]最小圈,洛谷P3199,分数规划+判负环
正题要你求一个环,使得边权除以点数最小。就是求。分数规划,二分k,令这个东西小于k得到判定问题成为一个判断图中是否有负环,新边的边权是原来的边权减去k。判负环无高效算法,dfs即可。#include#include#include#includeusingnamespacestd;intn,m;structedge{intx,y;doublec;}p[10010];structnew_edge{i
Deep_Kevin
·
2018-11-04 17:50
HNOI2009
梦幻布丁 启发式合并+队列
传送门题意:N个布丁摆成一行,进行M次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色。题解:启发式合并的神奇做法把同种颜色的布丁排成一列,变色时接在那个颜色的队列后面;同时要把短的队列接在长的队列后面。复杂度证明:由于每个操作中,合并短的队列和长的队列,合并后的队列至少有短的队列的2倍长最多扩大lognlogn次,复杂度O(nlogn)O(nlogn)。那么问题来了
DyingShu
·
2018-08-25 18:31
模拟
队列
HNOI2009
有趣的数列 卡特兰数
传送门题意:题目已经说的很清楚了吧题解:打了个表发现是卡特兰数。。太有趣了把奇数项看成进栈,偶数项看成出栈,则题目转化为从左到右进栈出栈,且进栈数大于出栈数。=卡特兰数由于p不是质数,用分解质因数的方法求#include#include#includeusingnamespacestd;constintMAX=2000001;constintMAXP=150001;intp[MAXP],notp[
DyingShu
·
2018-08-23 16:14
数论
【bzoj1485:】【 [
HNOI2009
]有趣的数列】模任意数的卡特兰数
(上不了p站我要死了,侵权度娘背锅)Description我们称一个长度为2n的数列是有趣的,当且仅当该数列满足以下三个条件:(1)它是从1到2n共2n个整数的一个排列{ai};(2)所有的奇数项满足a1=2;i--){cnt[i]++;if(!notp[i])continue;cnt[i/minp[i]]+=cnt[i];cnt[minp[i]]+=cnt[i];cnt[i]=0;}这样就将除法
LinnBlanc
·
2017-10-24 08:38
题目总结
数论
bzoj1485 [
HNOI2009
]有趣的数列 ( 组合数 + 卡特兰数)
bzoj1485[
HNOI2009
]有趣的数列原题地址:http://www.lydsy.com/JudgeOnline/problem.php?
Bfk_
·
2017-10-22 22:35
题解
bzoj
组合数学
卡特兰数
【bzoj1486】【[
HNOI2009
]梦幻布丁】启发式链表合并(详解)
(画师当然是武内崇啦)DescriptionN个布丁摆成一行,进行M次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色.例如颜色分别为1,2,2,1的四个布丁一共有3段颜色.Input第一行给出N,M表示布丁的个数和好友的操作次数.第二行N个数A1,A2…An表示第i个布丁的颜色从第三行起有M行,对于每个操作,若第一个数字是1表示要对颜色进行改变,其后的两个整数X,Y
LinnBlanc
·
2017-09-29 14:56
题目总结
数据结构
BZOJ 1485: [
HNOI2009
]有趣的数列
DP就不说了黄学长说的很清楚考虑从小到大放数字肯定先放奇数位再放偶数位所以在任意时刻奇数位已填数量都应该>=偶数位这就跟入栈出栈差不多了。。。于是就是卡特兰数。。跟着别人打消质数因子。线性筛的时候顺便记录最小质因子这样就可以一个个除了#include usingnamespacestd; constintN=2000005,M=N/4*3; typedeflonglongLL; inlineint
cgh_Andy
·
2017-04-25 21:00
[BZOJ1486][
HNOI2009
]最小圈(01分数规划+深搜spfa)
题目描述传送门题解01分数规划如果存在负权环的话说明有更优的答案写深搜spfa就不会tle了代码#include#include#include#include#includeusingnamespacestd;#defineN20005constdoubleeps=1e-9;constdoubleinf=1e9;intn,m;inttot,point[N],nxt[N],v[N];doublec
Clove_unique
·
2017-03-10 14:13
题解
图论算法
省选
01分数规划
[BZOJ1486][
HNOI2009
]最小圈(01分数规划+深搜spfa)
题目描述传送门题解01分数规划如果存在负权环的话说明有更优的答案写深搜spfa就不会tle了代码#include#include#include#include#includeusingnamespacestd;#defineN20005constdoubleeps=1e-9;constdoubleinf=1e9;intn,m;inttot,point[N],nxt[N],v[N];doublec
Clove_unique
·
2017-03-10 14:13
题解
图论算法
省选
01分数规划
[BZOJ1485][
HNOI2009
]有趣的数列(卡特兰数+组合数学)
题目描述传送门题解答案是卡特兰数,因为…打表可知?但是实际上这道题可以抽象成一个卡特兰数的经典问题——出栈序列问题。也就是说,问题等价为1-n依次入栈有多少可能的出栈序列题目要求满足两个条件:奇数项和偶数项分别单增,并且每两个相邻的奇数项和偶数项满足奇数项小于偶数项可以把这个问题看做:将1-n填到2n个空格中,填到奇数项时必须满足上一个奇数项已经有数,这时相当于是一个元素入栈;填到偶数项时必须满足
Clove_unique
·
2017-01-18 19:24
题解
省选
组合数学
bzoj 1486: [
HNOI2009
]最小圈 (01分数规划+深搜版spfa)
1486:[
HNOI2009
]最小圈TimeLimit:10SecMemoryLimit:64MBSubmit:2224Solved:1046[Submit][Status][Discuss]DescriptionInputOutputSampleInput45125235315243413SampleOutput3.66666667HINTSource
clover_hxy
·
2017-01-16 16:45
图论
01分数规划
【BZOJ1485】[
HNOI2009
]有趣的数列【Catelan数】【线性筛】
【题目链接】这个质因数分解劲啊【xkui的题解】/*TelekineticForestGuard*/#include#include#includeusingnamespacestd;typedeflonglongLL;constintmaxn=2000005;intn,m,p,prime[maxn],mn[maxn],cnt,num[maxn];boolisnotprime[maxn];inli
BraketBN
·
2016-05-26 16:18
数论
数学
BZOJ1483——[
HNOI2009
]梦幻布丁
1、题目大意:这题就是给你一个序列,有两个操作,一个是询问序列中的连续段数,比如序列1221就是三段。。1是一段,22又是一段,1又是一段,就是相同的在一起,第二个操作就是将其中的一种数全都改成另一种数2、分析:这道题看起来做需要o(n^2),这是过不了的,我们需要nlogn的算法,怎么实现修改是均摊logn的呢。。我们把两个链表合并是O(1)这个是一定的,但是修改答案是o(n)的对吧,那怎么办呢
qzh_1430586275
·
2016-05-18 11:00
乱搞
bzoj
HNOI2009
1483
梦幻布丁
bzoj1483[
HNOI2009
]梦幻布丁 链表启发式合并
题意:有两个操作1、将所有的x改成y2、求序列的颜色段如1221ans=2(m #include #defineN1001001 usingnamespacestd; intnum=0,n,m,ans=0; inta[N],head[N],next[N],sz[N],f[N]; voidinsert(intk){ num++; intt=head[k]; head[k]=num; next[num
yxr0105
·
2016-05-05 17:00
链表
bzoj
启发式合并
[平衡树 启发式合并] BZOJ 1483 [
HNOI2009
]梦幻布丁
用set水过的搬运下黄学长的复杂度分析吧,很有道理啊每次我们把短的合并到长的上面去,O(短的长度)咋看之下没有多大区别,下面让我们看看均摊的情况:1:每次O(N)2:每次合并后,队列长度一定大于等于原来短的长度的两倍。这样相当于每次合并都会让短的长度扩大一倍以上,最多扩大logN次,所以总复杂度O(NlogN),每次O(logN)。#include #include #include #inclu
u014609452
·
2016-05-02 13:00
BZOJ 1488: [
HNOI2009
]图的同构
同SHOI2006图的染色只是这题只有两种颜色,即边选或不选然后套用08年论文里的方法,循环节的长度进行划分大概划分方案有10^6左右对要用到的一些东西进行预处理,比如说逆和幂。然后再算上循环节的计算,大概是O(N*10^6)左右的复杂度,就可以过了。(话说这个在OEIS上是不是有啊,首页上0MS的大爷们都是怎么写的啊)#include #include #include usingnamespa
nlj1999
·
2016-03-31 14:00
BZOJ 1487: [
HNOI2009
]无归岛
仙人掌DP每次在环上DP的时候强制一下环上的根(即环上第一个被发现的节点)左边的节点取或不取#include #include #include #include usingnamespacestd; constintN=100000+5; constintinf=1e9; structEdge{intto,next;}e[Ndfn[u]&&pre[v]!=u) dp(u,v); } } intm
nlj1999
·
2016-03-31 13:00
BZOJ 1486: [
HNOI2009
]最小圈
平均值最小回路二分答案后把每条边的权值都减去答案然后spfa判负圈果断TLE参照09年论文改成DFS版的SPFA,AC#include #include #include #include #include usingnamespacestd; constintN=3000+5; constintM=10000+5; constdoubleeps=1e-9; structEdge{intto,ne
nlj1999
·
2016-03-31 11:00
BZOJ 1485: [
HNOI2009
]有趣的数列
有趣的卡特兰数列先搞个50分的递推打个表,发现是卡特兰数列。然后用C(2n,n)/(n+1)这个公式分解质因数计算至于为毛是这个数列我也不造#include #include #include usingnamespacestd; constintN=100000+5; constintM=2000000+5; boolis[M]; intp[M],tot,cnt[M],mi[M],n; void
nlj1999
·
2016-03-31 11:00
BZOJ 1483: [
HNOI2009
]梦幻布丁
链表的启发式合并O(nlogn)直接拿seter(233333)水多好#include #include #include usingnamespacestd; constintN=100000+5; constintM=1000000+5; inthead[M],next[N],ans,c[N],fa[M],sz[M]; voidmerge(intu,intv){ for(inti=head[u
nlj1999
·
2016-03-30 19:00
bzoj 1485 卡特兰数
链接:戳这里1485:[
HNOI2009
]有趣的数列TimeLimit:10Sec MemoryLimit:64MB[Submit][Status][Discuss]Description 我们称一个长度为
libin66
·
2016-03-27 21:00
bzoj1485: [
HNOI2009
]有趣的数列
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1485题意:中文题。。。分析:题目需要我们将1~2*n这些数填入长度为2*n的数组并且要求(1)奇数位是递增,(2)偶数为也是递增,(3)相邻的a[2*i-1] #include #include #include #include #include #include #include #inc
Fsss_7
·
2016-03-01 18:00
bzoj 1483 [
HNOI2009
]梦幻布丁(链表+启发式合并)
1483:[
HNOI2009
]梦幻布丁TimeLimit:10Sec MemoryLimit:64MBSubmit:1818 Solved:761[Submit][Status][Discuss]
hahalidaxin
·
2016-02-16 16:00
bzoj 1483 [
HNOI2009
]梦幻布丁(链表+启发式合并)
1483:[
HNOI2009
]梦幻布丁TimeLimit:10Sec MemoryLimit:64MBSubmit:1818 Solved:761[Submit][Status][Discuss]
hahalidaxin
·
2016-02-16 16:00
[bzoj1485] [
HNOI2009
]有趣的数列
找规律题。。。首先观察样例解释可得。我们只要确定奇数位的情况就行了,并且只要i 2#include 3#include 4#definelllonglong 5usingnamespacestd; 6constintmaxn=2000023; 7boolcant[maxn]; 8intpri[maxn],num,mn[maxn],sum[maxn]; 9llans; 10inti
czllgzmzl
·
2016-02-12 21:00
bzoj1486【
HNOI2009
】最小圈
1486:[
HNOI2009
]最小圈TimeLimit: 10Sec MemoryLimit: 64MBSubmit: 1778 Solved: 827[Submit][Status][Discuss
AaronGZK
·
2016-02-09 21:00
SPFA
二分
01分数规划
bzoj
[BZOJ 1486][
HNOI2009
]最小圈
AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=1486最小圈Description考虑带权的有向图G=(V,E)以及w:E–>R。每条边e=(i,j)(i≠j,i∈V,j∈V)的权值定义为w[i][j],令n=|V|。c=(c[1],c[2],…,c[k])(c[i]∈V)是G中的一个圈当且仅当(c[i],c[i+1])(1≤i≤k)和(
XY20130630
·
2016-01-29 15:00
二分
BZOJ 1486: [
HNOI2009
]最小圈|分数规划
分数规划spfa判负环dis数组直接清0(好神奇啊而且速度好快啊)#include #include #include #include #include #include #include #include #include #include #defineT22222 usingnamespacestd; doublev[T],e[T],dis[T]; inthead[T],nxt[T],ls
ws_yzy
·
2016-01-11 11:00
分数规划
上一页
1
2
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他