首页 > 其他分享 >P4067 [SDOI2016] 储能表 题解

P4067 [SDOI2016] 储能表 题解

时间:2023-11-01 16:57:04浏览次数:38  
标签:储能 题解 times 异或 P4067 SDOI2016 dp 数位

[SDOI2016] 储能表 - 洛谷

题目详情 - [SDOI2016] 储能表 - BZOJ by HydroOJ

  • 一道很好的数位 dp 题

  • 不过这题有一个比较有意思的性质:当 \(n,m\) 为 \(2^k\) 的形式时,最终得到的数组对每一行排序后为 \(0 \sim m-1\) 的排列,如果有的话说不定可以作为一个部分分?

  • 遇到二进制运算,通常不是按位考虑就是数位 dp 。这题按位考虑不现实,因为 \(> K\) 的约束条件比较严格,我们不能通过单纯的判断数位的某一位来知道这个数是否 \(> K\) ,因此我们考虑数位 dp

  • 最终答案是什么?记 异或值 \(> K\) 的对数 \(S_1\) 和 异或值 \(> K\) 的异或和 \(S_2\) ,则最终答案为 \(S_2-S_1\times K\)

    • 设计状态: \(f_{i,0/1,0/1,0/1}\) 表示考虑到第 \(i\) 位,\(n\) 的上界有没有取到、 \(m\) 的上界有没有取到、 \(K\) 的下界有没有取到的最终答案。再设一个辅助转移数组 \(g_{i,0/1,0/1,0/1}\) 定义相同,但记录的是对数。

    • 初始化:\(f_{i,a,b,c}\leftarrow 0,g_{i,a,b,c}\leftarrow 0,g_{62,0,0,0}\leftarrow 1\)

    • 转移:记下一维的状态为 \(a',b',c'\) ,第 \(i\) 位填的数为 \(zz\) ,\(K\) 的第 \(i\) 维为 \(z\)

    • \[\begin{align} g_{i+1,a,b,c} &\rightarrow g_{i,a',b',c'} \\ f_{i+1,a,b,c}+2^i \times (zz-z) \times g_{i+1,a,b,c} &\rightarrow f_{i,a',b',c'} \end{align} \]

    • 最终答案: \(f_{0,0,0,0}\) ,因为下标是从 \(0\) 开始,所以前两项不用取到。因为异或和为 \(K\) 的会被减掉,因此不用考虑 \(\leq K\) 的情况,第三项不用取到

  • 最终复杂度 \(O(T \log n)\)

标签:储能,题解,times,异或,P4067,SDOI2016,dp,数位
From: https://www.cnblogs.com/fox-konata/p/17803509.html

相关文章

  • 11月3号晚上测试题解
    3954ProblemA变量交换输出#include<stdio.h>intmain(){inta,b,c,x;scanf("%d%d%d",&a,&b,&c);//假设a,b,c分别为1,2,3;选择一个中间值进行数值替换x=a;//把a赋值给x,此时x就等于a的值为1a=c;//把c赋值给a,此时a就等于c的值为3c=b;//把b赋......
  • CF1874F Jellyfish and OEIS 题解
    题目链接不明白出题人的脑回路是不是被宇宙射线改变过/jy。题目给出了若干个区间,要我们计算满足每个区间都不是对应下标的排列的数量,正着计算不满足要求的数量是困难的,我们将其容斥,转化为钦定一些区间要求其必须满足它是对应下标的排列,在下文中,我们称这样的区间为一个约束。我......
  • 题解 P6560 [SBCOI2020] 时光的流逝
    题解P6560[SBCOI2020]时光的流逝首先考虑图上的点为\(y\)终点时,或者这个点无法继续向下走,即\(du_i=0\)时,从这个点为起点先手必败,而对于每一个有一条指向先手必败的点的边的点,显然从这个点出发都是先手必胜的,以此类推。可以考虑建反图,进行拓扑排序,转移状态。#include<q......
  • 题解 [ARC149B] Two LIS Sum
    题解[ARC149B]TwoLISSum大胆猜结论,按照\(a\)数组为关键字进行排序,求更改后\(b\)的\(LIS\)。证明:每次移动,都有\(a\)中增加一个长度,\(b\)中贡献可能为\(\{-1,0,1\}\),总体贡献为\(\{0,1,2\}\),具体为:\(b\)中排序后大数变到小数前方。\(b\)中排序后小数仍然......
  • CF1872E Data Structures Fan 题解
    CF1872E翻译请把数据加强到\(\sumn\leq10^8\)后重新思考。我们维护全局中被标记的所有点的异或和。发现对于一次\(1\)操作,相当于让答案异或上区间的\(a_i\)异或和,因为这会让被标记的点变成没被标记的,而没被标记的点会产生贡献。查询的话直接查询即可复杂度......
  • P2391 白雪皑皑 题解
    一种很新的区间染色题目传送门题目大意有\(n\)个数初始都为\(0\),有\(m\)次操作,第\(i\)次将\((i\timesp+q)\bmodn+1\)与\((i\timesq+p)\bmodn+1\)之间数都改为\(i\),问\(m\)次操作后每个数分别是多少。其中\(1\len\le10^6,1\lem\le1......
  • P4397聪明的燕姿 题解 & Miller~Rabin 质数判定
    涉及质数的时间复杂度都是玄学的。——题记传送门由整数唯一分解定理:\(\coprod\limits_{i=1}^{k}p_i^{c_i}\)有该正整数的正约数为:\(\coprod\limits_{i=1}^k(\sum\limits_{j=0}^{c_i}p_i^j)\)即我们要求有多少个数满足\(\coprod\limits_{i=1}^k(\sum\limits_{j=0}^{c_i}p_i^......
  • CF1707 题解
    CF1707题解A考场上1h才出思路...弱智了。我们将参加大于当前智商的行为叫做“摆烂”。我们考虑如果现在摆一次,将来某一次不摆,那么现在不摆,将来那次开摆,中间过程的智商会加1。更优。所以一定一摆就摆到底。而且一定会摆到最后一个。所以我们二分从什么时候开摆,看是否能摆到......
  • 题解:洛谷P3745 期末考试(整数三分)
    题解:洛谷P3745期末考试(整数三分)题目传送门题目大意:给出\(n\)个同学期望出成绩的时间限制\(a_i\)和\(m\)个学科公布成绩的初始时间\(t_i\),1个同学每多等一天就产生A的不愉快度。问通过一番操作后最小的不愉快度之和是多少?操作有两种:1.让学科X的发布时间晚1天,学科......
  • P5404 [CTS2019] 重复 题解
    题目链接观察题目,我们发现直接计算是困难的,先构造单个合法的\(T\)分析其性质。为了构造出\(T\),先考虑构造时\(T\)时什么时候会出现不合法的情况,此时\(T\)会有一段和\(S\)相同的前缀,且这段前缀后面跟着的字符比\(S\)所跟的小。为了避免这种情况出现,我们需要在每次添......