【HNOI2018】游戏】的更多相关文章

[BZOJ5288][HNOI2018]游戏(拓扑排序) 题面 BZOJ 洛谷 题解 去年省选的时候这题给我乱搞整过去整过去了,也是虐心了.... 所以当然是来讲正儿八经的正确做法啦. 很明显,我们需要预处理答案.设\(L[i],R[i]\)表示从\(i\)出发能够到达的区间范围. 现在我们要做的就是预处理这个\(L[i],R[i]\). 首先考虑一个点如何向外暴力拓展,如果它在拓展过程中碰到了一个已经被拓展过的节点,那么显然也可以到达那个点可以到达的所有位置,然后直接并一下就好啦. 然后现在我…
5288: [Hnoi2018]游戏 链接 分析: 考虑y<=x的怎么做,那么只能从左边走到右边.我们可以从最右边的点开始,一次确定每个点往右边可以走多少. L[x],R[x]分别是x向左向右最远走到的位置,初始L[x]=x,R[x]=x.R[n]=n,然后看n-1,如果n-1存在打开n-1这扇门的钥匙,那么说明n-1可以到n,相应的R[n-1]=R[n].同样的考虑i,如果i可以打开第i扇门,那么R[i]=R[i+1],继续判断如果i可以打开第R[i]扇门,那么R[i]=R[R[i]]…… 于…
[BZOJ5288][HNOI2018]游戏(乱搞?) 题面 BZOJ 洛谷 题面自己到洛谷上看把 题解 考场上乱搞拿到了\(90\)分,简直不敢相信. 回家把代码再交了一份直接就\(AC\)了??? \(O(n^2)\)的做法应该很容易想 对于每个点作为起点,暴力向左右两侧拓展, 看看它能够到达的区间就行了. 考虑怎么优化一下,发现如果拓展的时候走到了一个已经拓展完的节点 那么一定能够到达这个点能够到达的左右位置 因此,直接沿着当前点能够到达的最远左右位置跳跃一下, 中间就不用计算了. 我们发…
Description Solution 乱搞能A的题,毁我青春 记忆化一下扩展过程 只要不是从 \(1\) 枚举到 \(n\) 去扩展都可以 \(AC\) 于是 \(random\_shuffle\) 一下扩展顺序就过了 复杂度应该是启发式合并的复杂度 #include<bits/stdc++.h> using namespace std; const int N=1e6+10; int n,a[N],L[N],R[N],m,Q,p[N]; inline void solve(int x){…
BZOJ LOJ 洛谷 考虑如何预处理每个点能到的区间\([l,r]\). 对于\(i,i+1\)的一扇门,如果钥匙在\(i\)的右边,连边\(i\to i+1\),表示从\(i\)出发到不了\(i+1\):否则连边\(i+1\to i\).没有门的话就缩成一个点. 如果存在边\(i\to j\),那么\(j\)的区间包含\(i\),而\(i\)肯定不包含\(j\).从无入度的点暴力扩展,对于它能到的点用它更新一下然后再暴力扩展,复杂度是\(O(n)\)的. 还有一种做法是这个,感觉也有些妙,复…
题意 题目链接 分析 先将没有锁的房间缩点,首先有一个 \(O(n^2)\) 的想法:从每个点出发,每次检查能否向两边扩张. 容易发现门和门之间如果有锁,必然只有一方能够开锁(只有一把钥匙),并且能够开一扇门的位置一定是一个区间 \([l,r]\).假设门 \(p<l\) ,则区间内的所有门都为 \(\leftarrow\) .如果扩展顺序为 \(l\) 到 \(r\) 就可以保证对于开 \(p​\) 门这个操作只被进行一次,而后面的位置可以继承这个可行区间. 所以如果对于门 \(a\),如果钥…
考试的时候线段树区间查询的return条件打成了l==r....于是光荣爆20(线段树都不会打了?) 看膜博士的题解 #include<bits/stdc++.h> #define ui unsigned int #define ll long long #define db double #define ld long double #define ull unsigned long long const int MAXN=1000000+10,inf=0x3f3f3f3f; int n,m…
传送门:https://www.luogu.org/problemnew/show/P4436 20分的暴力加一个Random_shuffle就A了.我还能说什么.. 不过这个也不是毫无道理,复杂度应该是期望$O(n\log n)$的. 这件事教导我们在写暴力之前先Random_shuffle一下总没错.. #include<cstdio> #include<algorithm> #define rep(i,l,r) for (int i=(l); i<=(r); i++)…
我还是太年轻了... 考场上就是直接枚举预处理当前位置左右延伸到的最远距离,好像是水了20.. 然后噶爷爷居然随机一下就AC了????mengbier #include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> #include<cmath> #include<ctime> using namespa…
HNOI2012 题解 [HNOI2012]永无乡 Tag:线段树合并.启发式合并 联通块合并问题. 属于\(easy\)题,直接线段树合并 或 启发式合并即可. [HNOI2012]排队 Tag:组合数学.高精度 因为男生没有限制,首先把男生排成一列. 然后分情况讨论: 两个老师之间有男生: 首先把两个老师插入到\(n\)个男生中,方案数\(\binom{n+1}{2}\) . 然后把女生插入到老师与男生中,方案数\(\binom{n+3}{m}\). 两个老师之间无男生: 那么两个老师之间只…