首页 > TAG信息列表 > Hnoi2010
[HNOI2010]合唱队
原题链接 题解 首先本题只从左边和右边取,所以剩下的必然是区间,妥妥的区间DP,直接设状态: \(f[i][j][0]\) 表示第 \(i\) 人从左边插入区间 \(i+1,j\) \(f[i][j][1]\) 表示第 \(j\) 人从右边插入区间 \(i,j-1\) 因为第 \(i\) 个人从左边插入,根据题意,他就会小于前面的人,而前面的人要么动态规划:P3205[HNOI2010]合唱队 区间DP
P3205[HNOI2010]合唱队 题目大意: 题目的意思其实就是给你一个最终的序列,问有几种方法可以排成最终的序列。(我一开始给理解成了是给你一个序列,问能派出多少种序列.......),所以显然是用区间DP:这题目给你了最终的序列,就相当于区间确定了,最终答案肯定就是DP[1][N],只是这[HNOI2010]合唱队 luogu3205
区间dp,主要问题还是不知道怎么去存状态,感觉dp应该只要探求一个情况如何变到另一个情况就行了…… 0右1左 dp[i][j][1]=dp[i+1][j][0]+dp[i+1][j][1] dp[i][j][0]=dp[i][j-1][0]+dp[i][j-1][1] #include<bits/stdc++.h> using namespace std; long long dp[1010][1010][2]={0}; l搜索学习笔记
突然就咕了。 xzyxzy P4929 【模板】舞蹈链(DLX) P3208 [HNOI2010]矩阵 P2217 [HAOI2007]分割矩阵 P2476 [SCOI2008]着色方案 UVA1603 破坏正方形 Square Destroyer P5758 [NOI2000] 算符破译 P2567 [SCOI2010]幸运数字 P4397 [JLOI2014]聪明的燕姿 P2329 [SCOI2005]栅栏 P3322 [SDO洛谷 P3209 [HNOI2010] 平面图判定
链接: P3209 题意: 给出 \(T\) 张无向图 \((T\leq100)\),并给出它对应的哈密顿回路,判断每张图是否是平面图。 分析: 平面图判定问题貌似是有线性做法的,这里给出链接,不是本题解重点。 在想不到上述算法的情况下,我们发现题目给出了该图的哈密顿回路,所以我们把无向图按哈密顿回路排成一P3205 [HNOI2010]合唱队
题目: https://www.luogu.com.cn/problem/P3205 dp[i][j][0]表示第i个数从左边进 dp[i][j][1]表示第j个数从右边进 注意处理边界属于等价的情况,只用算一遍 #include<stdio.h> #include<algorithm> #include<string.h> #include<queue> using namespace std; typedef pair[HNOI2010]弹飞绵羊
考虑这是一个\(LCT\)模板题。 感觉得多做一些题来熟悉\(LCT\)的操作。 这个题考虑对每个点向他往后跳的终点,如果会出界就不连边。 然后考虑\(LCT\)维护,也就是查询该点到原树根的距离。 那就\(access\),\(splay\),然后查询\(x\)的子树大小就行了。 断边的话,因为保证了树结构而且断的luogu P3206 [HNOI2010]城市建设
题面传送门 思维不够就拿数据结构来凑啊qwq 因为cdq的方法太神奇了,所以蒟蒻只能写LCT了。 因为LCT可以维护加边的最小生成树,所以考虑用LCT来维护。 但是有一个问题这道题还有删边。 但是我们惊奇地发现LCT是可以撤销的。 所以可以上线段树分治转删边为加边,然后复杂度要上去一个logP3205 [HNOI2010]合唱队
P3205 [HNOI2010]合唱队 题目描述 为了在即将到来的晚会上有更好的演出效果,作为 \(AAA\) 合唱队负责人的小 \(A\) 需要将合唱队的人根据他们的身高排出一个队形。假定合唱队一共 \(n\) 个人,第 \(i\) 个人的身高为 \(h_i\) 米 \((1000 \le h_i \le 2000)\),并已知任何两个人的身高洛谷 P3205 [HNOI2010]合唱队 题解
原题地址 谔谔,这什么题啊,我第一眼看蒙了 然后打了个全排的暴力,发现连部分都骗不了… 后来发现,这tm怎么有点像区间dp?! 看完题解区,?!还真是! 分享一下做法吧 设三维数组dp[i][j][k](k∈[0,1])dp[i][j][k](k \in [0,1])dp[i][j][k](k∈[0,1]),dp[i][j][0]dp[i][j][0]dp[i][j][0]表示BZOJ 2001: [Hnoi2010]City 城市建设
好鬼的CDQ分治,感觉复杂度好迷的说感觉就是个剪枝的暴力 首先看到题目,动态MST,妈妈我会线段树分治+LCT,然后这题就做完了 大体上很套路,我们把修改看作一条边的删除以及一条新边的加入,就可以求出每条边出现的时间区间 然后按时间为下标建线段树,我们只要能实现插入一条边/撤销即可,然后题解 P3209 【[HNOI2010]平面图判定】
边不一定在环内! 题目链接 Solution [HNOI2010]平面图判定 题目大意:给定一个存在哈密顿回路的图,判定它是不是平面图 2-SAT 分析: 首先有一个性质:对于极大平面图,有\(m = 3n - 6\) 萌新yy的证明:考虑归纳法 对于\(n=3\)时,\(m=3\),成立 因为是极大平面图,所以我们每新加入一个点希望增【bzoj1997】[Hnoi2010]Planar(平面图+2-sat)
传送门 几乎和这个题一样,就不说题意了,比较特殊的点就是,这里有个结论: 平面图的边数\(m<3n-6\),\(n\)为点数。 所以我们可以通过这个减枝,\(m\)较大时直接输出\(no\)。小范围直接上\(2-sat\)判断是否可行就行。 代码如下: /* * Author: heyuhhh * Created Time: 2019/11/29 18:38[洛谷P3205] HNOI2010 合唱队
问题描述 为了在即将到来的晚会上有更好的演出效果,作为AAA合唱队负责人的小A需要将合唱队的人根据他们的身高排出一个队形。假定合唱队一共N个人,第i个人的身高为Hi米(1000<=Hi<=2000),并已知任何两个人的身高都不同。假定最终排出的队形是A 个人站成一排,为了简化问题,小A想出了如下HNOI2010 平面图判定(planar)
题目链接:戳我 我怎么知道平面图有这个性质?? 对于一个平面图,它的边数不超过点数的\(3n-6\) 所以可以直接把边数多的特判掉,剩下的图中边数和点数就是一个数量级的了。 因为这个图存在欧拉回路,所以我们先把那些构成欧拉回路的边拉出来,将边上的两个端点的标号替换成在这个序列上的位置。[HNOI2010] 弾飞绵羊
题目链接: 传送门 题目分析: 题外话: 我即使是死了,钉在棺材里了,也要在墓里,用这腐朽的声带喊出: 根号算法牛逼!!! 显然,这是一道LCT裸题,然而在下并不会LCT于是采用了分块瞎搞 对于每个点维护两个信息:跳出块的步数\(step[i]\)和跳出块的落点\(lo[i]\) 预处理时使用类似模拟的方法。每次只处理P3203 [HNOI2010]弹飞绵羊
传送门 LCT裸题,设 $k[i]$ 为位置 $i$ 弹簧的弹力系数,那么从 $i$ 往 $i+k[i]$ 连一条边,显然所有边构成了一个森林 直接 LCT 维护森林,询问 $x$ 就把 $x$ 到根的路径连起来 ($access(x)$) ,然后输出 $x$ 的 $splay$ 的节点数就好了 修改也不用那么麻烦,我们 $sccess(x),splay(x)$ 后 $c[P3203 [HNOI2010]弹飞绵羊
Luogu3203 求两点之间的步数,则考虑设size[x]表示x的子树大小,然后在query(x,y)中size[y]-1就是步数 所以设状态只需要满足在\([x,y]\)这个\(splay\)中是合法的就可以了 #include <cmath> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using nameBZOJ2002 [Hnoi2010]Bounce 弹飞绵羊
题意 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系数ki,当绵羊达到第i个装置时,它会往后弹ki步,达到第i+ki个装置,若不存在第i+ki个装置,则绵羊被弹飞。绵羊想