点此看题面 大致题意: 给你\(n\)个\(m\)位二进制数.每组询问给你一个\(m\)位二进制数,要求你从\(0\)开始,依次对于这\(n\)个数进行\(and\)或\(or\)操作,问有多少种方案能够得到给你的这个二进制数. 找规律 不难想到去对每一位分别讨论. 则根据位运算法则可得: 当你把某一位的数\(and\ 0\),就相当于把这一位数赋值为\(0\). 当你把某一位的数\(or\ 1\),就相当于把这一位数赋值为\(1\). 当你把某一位的数\(and\ 1\)或者\(or\ 0\)…
https://www.lydsy.com/JudgeOnline/problem.php?id=5285 https://www.luogu.org/problemnew/show/P4424 http://uoj.ac/problem/384 洛谷的题解已经很把思想过程完备地表达出来了:https://kelin.blog.luogu.org/solution-p4424 感觉比官方题解说的还清楚. 那么问题就是我们到底应该如何实现这个算法呢? 一个直观的想法是把每一位的数全部处理出来,然后…
P4424 [HNOI/AHOI2018]寻宝游戏 某大学每年都会有一次Mystery Hunt的活动,玩家需要根据设置的线索解谜,找到宝藏的位置,前一年获胜的队伍可以获得这一年出题的机会. 作为新生的你,对这个活动非常感兴趣.你每天都要从西向东经过教学楼一条很长的走廊,这条走廊是如此的长,以至于它被人戏称为infinite corridor.一次,你经过这条走廊时注意到在走廊的墙壁上隐藏着nn 个等长的二进制的数字,长度均为mm .你从西向东将这些数字记录了下来,形成一个含有nn 个数的二进制…
题意 题目链接 Sol 神仙题Orz Orz zbq爆搜70.. 考虑"与"和"或"的性质 \(0 \& 0 = 0, 1 \& 0 = 0\) \(0 \mid 1 = 1, 1 \mid 1 = 1\) 也就是说某一个数\(\& 0\)之后不管之前是什么,现在的值变为\(0\) 某一个数\(\mid 1\)之后不管之前的是什么,现在的值变为\(1\) 继续考虑 \(0 \& 1 = 0, 1 \& 1 = 1\) \(0…
正解:线段树+单调栈 解题报告: 传送门! 1551又是一道灵巧连题意都麻油看懂的题,,,,所以先解释一下题意好了,,,, 给定一个n元环 可以从0时刻开始从任一位置出发 每次可以选择向前走一步或者在原地不动 当到第i个点的时间ti>=Ti的时候点i被标记 问标记完整个环最少要多久时间 (Ti带修改QAQ 首先有几个会用到的性质大概港下 1)只要走一圈就足够 试证如下: 可以考虑反过来看这个问题,若现在已知标记的最后一个点的时间为Tim,那么题目就变成辣,现在时间为T,每次可以向后倒退一步或不动…
正解:虚树+树上dp 解题报告: 传送门! 首先解释一下题意趴,,,语文70pts选手已经开始看不懂题辣QAQ 大概就是个给一个图,求独立集方案,且保证图是联通的,边的数量最多只比点多10 首先思考如果边的数量=点的数量-1,也就是一棵树的时候怎么搞? 直接树上dp就好,f[i][0/1]:选/不选第i个点方案数,转移就f[i][0]=∏(f[son][0]+f[son][1]),f[i][1]=∏f[son][0] 然后考虑多的边怎么搞呢 从上面那个思路自然而然地可以考虑到,可以暴力枚举非树边…
正解:贪心 解题报告: 传送门! 发现做题龟速,,,所以懒得写题目大意辣自己get一下QAQ 首先看到ai<=n,又当ai=j时j在i的前面,所以就变成对于每个点i有一个约束,即要求第ai个节点排在i的前面 考虑连边,对于ai排在i的前面就从ai向i连一条边就好 然后就变成,对于一个点i,一定有一条引向自己的边(但是当ai=0的时候就相当于是麻油的),然后每次只能从x的前驱走向x 仔细一想这样构出来的要么是颗树要么是个环嘛(环就是麻油ai=0嘛),如果是个环,那就是无解,最轻松,美滋滋打个-1就…
正解:树形dp 解题报告: 传送门! 昂首先看懂题目趴QwQ大概就是说有棵满二叉树,有n个叶子节点(乡村)和n-1个非叶子节点,然后这棵树的每个节点有三个属性abc,对每个非叶子节点可以从与子节点的两条连边中选一条标记 然后对每个叶子节点i,设它到根节点经过了x条麻油被标记的左连边,y条麻油被标记的右连边,那它的贡献就会是ci*(ai-x)*(bi-y) 然后就考虑dp鸭 设f[x][i][j]:对于节点x,到达根的路径上有i条麻油标记的左连边,j条麻油标记的右连边 然后初始化是对叶子节点,直接…
题目链接 如果\(j<=k,a_{p[j]}!=p[k]\)可以理解为如果\(a_{p[j]}=p[k]\),那么\(k\)一定要放在\(j\)前面,也就是\(a_j\)在\(j\)前面. 于是连边\((a[j],j)\),表示\(a[j]\)在\(j\)前面,如果有环就是无解,如果没有环那么一定是一棵以\(0\)为根的树 根据题意,我们肯定是要尽量把\(w\)小的安排在前面. 于是考虑这样一个贪心: 对于当前最小\(w_i\) 如果\(fa[i]=0\),那么肯定直接选\(i\) 如果\(fa…
https://www.lydsy.com/JudgeOnline/problem.php?id=5290 https://www.luogu.org/problemnew/show/P4438 的确不是很难的题. —————————————————— 先是吐槽时间(可略过): 设f[i][j][k]为以i为根的子树中j公路不修k铁路不修的最小值. 然后dfs就能过……不过貌似我想的dfs可能要存很多东西……觉得正解肯定没有那么麻烦,于是就弃疗了. —————————————————— 设f[i…