HNOI2018题解】的更多相关文章

HNOI2012 题解 [HNOI2012]永无乡 Tag:线段树合并.启发式合并 联通块合并问题. 属于\(easy\)题,直接线段树合并 或 启发式合并即可. [HNOI2012]排队 Tag:组合数学.高精度 因为男生没有限制,首先把男生排成一列. 然后分情况讨论: 两个老师之间有男生: 首先把两个老师插入到\(n\)个男生中,方案数\(\binom{n+1}{2}\) . 然后把女生插入到老师与男生中,方案数\(\binom{n+3}{m}\). 两个老师之间无男生: 那么两个老师之间只…
在此处输入标题 标签(空格分隔): 未分类 重做了一遍,本来以为很快的,结果搞了一天... 寻宝游戏 可以发现只有\(\&0\)和\(|1\)会对答案有影响 那么对于每一位,我们只要知道最后一个\(\&1\)和最后一个\(|1\)谁近就可以了. 发现并不好做,我们可以把操作串也当成\(01\)串,如果\(\&=0,|=1\)好像并没有什么用,于是我们令\(\&=1,|=0\)发现这样刚好满足了我们需要的信息,设\(op\)为操作串,这一位串为\(a\),如果\(op\)字典…
HNOI2018简要题解 D1T1 寻宝游戏 题意 某大学每年都会有一次 Mystery Hunt 的活动,玩家需要根据设置的线索解谜,找到宝藏的位置,前一年获胜的队伍可以获得这一年出题的机会. 作为新生的你对这个活动非常感兴趣.你每天都要从西向东经过教学楼一条很长的走廊,这条走廊是如此的长,以至于它被人戏称为 infinite corridor.一次,你经过这条走廊的时,注意到在走廊的墙壁上隐藏着 \(n\) 个等长的二进制的数字,长度均为 \(m\).你从西向东将这些数字记录了下来,形成一个…
题解(自别处转载): Luogu CSDN 这题关键是将运算符也替换成0,1 然后在运算符与原串混杂里找规律. 而且替换的方式也有所要求,考场上两种替换方式都要尝试. #include <bitset> #include <cmath> #include <cstdio> #include <cstring> #include <iostream> #include <assert.h> #include <algorithm&…
何学长口中所说的‘一眼题’……然而实际上出出来我大HN全省也只有一个人A…… 首先我们需要发现一个性质:我们永远可以在最后一圈去标记所有的物品.倘若我们反复转圈,那么这完全是可以省下来的.所以我们破环为链,以\(S\) 物品作为第一个被访问的节点时所需要的时间就是 \( max(T_{x} - x) + S \),其中 \( S <= x <= S + n - 1\).问题转化为如何使用数据结构来维护这些值得最小值.注意到 \(T_{x} - x \)都只与 \(x\) 有关,我们就他将它们合…
太厉害啦……感觉看到了正解之后整个人都惊呆了一样.真的很强%%% 首先要注意到一个性质.位运算列与列之间是不会相互影响的,那么我们先观察使一列满足条件的操作序列需要满足什么条件.&0时,不论之前是什么数字,结果都是0,而|1时,结果都是1.我们现在将&用1表示,而|用0表示.这样我们将我们&|的操作序列转化为了一个01串.假设这一列数字操作出来做后的结果应当是1,显然有最后的一个|1在&0之后.我们比较一下两个串,同为1或者同为0则跳过(&1 和 |0 不影响数字的…
[BZOJ5285][HNOI2018]寻宝游戏(神仙题) 题面 BZOJ 洛谷 题解 既然是二进制按位的运算,显然按位考虑. 发现这样一个关系,如果是\(or\)的话,只要\(or\ 1\),那么无论前面是啥,操作完之后都是\(1\):同理\(and\ 0\)也是一样,无论前面是什么,操作完都是\(0\). 换个角度来看,如果\(or\ 0\),无论前面是什么,操作完之后都不改变,\(and\ 1\)同理. 那么把\(or\)写成\(0\),\(and\)写成\(1\). 那么,如果当前操作数…
「JLOI2015」骗我呢 题意 问有多少个 \(n \times m\) 的矩阵 \(\{x_{i, j}\}\) 满足 对于 \(\forall i \in [1, n], j \in [1, m]\) 有 \(x_{i, j} \in[0, m]\) : 对于 \(\forall i \in [1, n], j \in [1, m)\) 有 \(x_{i, j} < x_{i, j + 1}\) : 对于 \(\forall i \in (1, n], j \in [1, m)\) 有 \…
[BZOJ5289][HNOI2018]排列(贪心) 题面 BZOJ 洛谷 题解 这个限制看起来不知道在干什么,其实就是找到所有排列\(p\)中,\(p_k=x\),那么\(k<j\),其中\(a[p_j]=x\). 也就是对于\(a\)数组的每个数\(a[i]\),它必须放在所有\(a[x]=i\)的前面. 那么对于\(i\)向所有满足\(a[x]=i\)的位置\(x\)连边,表示\(i\)必须放在这些数前面. 如果成环必定无解,如果无环则图是森林. 现在考虑每次从度数为\(0\)的点中选一个…
[BZOJ5288][HNOI2018]游戏(拓扑排序) 题面 BZOJ 洛谷 题解 去年省选的时候这题给我乱搞整过去整过去了,也是虐心了.... 所以当然是来讲正儿八经的正确做法啦. 很明显,我们需要预处理答案.设\(L[i],R[i]\)表示从\(i\)出发能够到达的区间范围. 现在我们要做的就是预处理这个\(L[i],R[i]\). 首先考虑一个点如何向外暴力拓展,如果它在拓展过程中碰到了一个已经被拓展过的节点,那么显然也可以到达那个点可以到达的所有位置,然后直接并一下就好啦. 然后现在我…