首页 > 其他分享 >pjudge A. 【NOIP Round #6】抉择

pjudge A. 【NOIP Round #6】抉择

时间:2023-10-15 14:24:23浏览次数:40  
标签:NOIP pjudge 转移 抉择 Round dp

原题

这题和绝世好题有异曲同工之妙(虽然赛时也想到了但并没有发现贪心结论 QwQ )

首先容易想出 \(O(n^2)\) 的 dp :设 \(dp_i\) 表示前 \(i\) 个数 \(i\) 强制选最大值,然后转移枚举上一个选的是什么

优化转移,如果 \(i,j\) 之间有一个 \(k(i<k<j)\) ,且 \(a_i\&a_k\) 的最高位和 \(a_i\&a_j\) 相同,那么选上 \(a_k\) 一定更优,枚举 \(a_i\&a_j\) 的最高位,找到前面第一个这一位是 \(1\) 的数转移就行

最终复杂度 \(O(n \log V)\)

标签:NOIP,pjudge,转移,抉择,Round,dp
From: https://www.cnblogs.com/fox-konata/p/17765573.html

相关文章

  • Codeforces Round 903 (Div. 3) F. Minimum Maximum Distance(图论)
    CodeforcesRound903(Div.3)F.MinimumMaximumDistance思路对标记点更新fg,从0开始进行bfs,更新d1为所有点到0的距离获得到0最远的标记点L,从L开始bfs,更新d2为所有点到L的距离获得距离L最远的标记点R,从R开始bfs,更新d3为所有点到R的距离遍历所有点,这个点与标记点的最大距......
  • Codeforces Round 671 (Div. 2) A. Digit Game
    \(R\)和\(B\)在玩一个数字游戏,给一个含有\(n\)位的正整数\(x\)。俩人轮流操作,\(R\)先行动。在每一步中,\(R\)可以选择\(x\)中一个未被标记的奇数位置并标记,\(B\)可以选择\(x\)中一个未被标记的偶数位置并标记。当最后只剩下一个未被标记的位置时,让这个数为\(m\)......
  • Codeforces Round 748 (Div. 3) B. Make it Divisible by 25
    给一个正整数\(n\),在一步操作中可以移除\(n\)中的一个。当\(n\)只剩下一位时将不能再操作,如果过程中产生了前导\(0\),则会被自动移除且不耗费操作次数。询问最少需要多少次操作可以使得\(n\)被\(25\)整除。显然一个正整数\(x\)若可以被\(25\)整除,只需要考虑最后......
  • Educational Codeforces Round 116 (Rated for Div. 2) A. AB Balance
    给一个长为\(n\)的字符串\(s\),只包含\(0\)\(1\)两种字符。定义\(AB(s)\)是\(s\)中出现的\(01\)子串个数,\(BA(s)\)是\(s\)中出现的\(10\)子串个数。在一步操作中,可以选择一个字符进行异或。询问最小的操作次数使得\(AB(s)=BA(s)\)。显然连续的\(11\)或连......
  • Codeforces Round 903 (Div. 3) E. Block Sequence(DP)
    CodeforcesRound903(Div.3)E.BlockSequence思路:设dp[i]为当i~n为完美的最少删除次数dp[n]=1,dp[n+1]=0;从后至前对于dp[i]更新若直接删除当前点,则为dp[i+1]+1若不删除则为min(dp[i+a[i]+1],dp[i]);i+a[i]+1为a[i]不能覆盖的位置#defineintlonglong#define......
  • P8868 [NOIP2022] 比赛
    主要写一写标记的推导。理论大概在关于线段树上的一些进阶操作回忆一下普通历史和。是对两个合并队列做前缀和,然后利用往后插的贡献来计算。\(ht'+add*upd\toht\)\(s*upd+ht'*len\tohs\)下文:\(x\toadda,y\toaddb\)不带历史和的点积:\((a+x)(b+y)......
  • Codeforces Round 903 (Div. 3)
    D题被hack了哭了第一题简单的只用把字符串重复的同时尝试匹配,然后判断就好了,只是需要一点代码能力第二题,也很简单最多剪断3次,就先从小到大排序,然后用最小的,看看大的是他的几倍,如果不是几倍的关系就不可能完成,如果是就算要几次就好了第三题,也很简单,很明显,对于一个格子,在它旋转9......
  • Codeforces Round 674 (Div. 3) B. Symmetric Matrix
    有\(n\)块\(2\times2\)的瓷砖,瓷砖上的每个方格包含一个数字,每种瓷砖都有无数种。现在需要用所给瓷砖构造一个\(m\timesm\)的方形矩阵\(a\)满足:每块瓷砖都在方形矩阵内瓷砖之间不能存在覆盖\(a_{i,j}=a_{j,i}\)。输出是否存在这种构造。一:显然合法的\(m\)......
  • P8867 [NOIP2022] 建造军营
    面对他。题面:求选择关键点和不会被割的边,使得任意割去一条边关键点不会有不连通的方案。考虑缩边双,然后这样边双内随便选。你考虑画出一颗树,考虑分类情况,容易发现就是三种:1.没有选。2.全部连通上\(x\)。(即一个尚未孤立的连通块)。3.有不联通到\(x\)的点。(即孤立的一......
  • Codeforces Round 903 (Div. 3)
    D.DivideandEqualize思路:1.某个数除以x,某个数再乘以x,可发现数组总的乘积没有变化2.也就是说,要使数组中的每一个元素相同,它们总的质因子应该满足:某个质因子的数量%n==0E.BlockSequence简单的dpdp[i],表示删除这个数字后的最小删除次数可以正的枚举,也可以倒着来转移方程......