• 【考试总结】20220805


    毒假强

    二分答案,统计 \(\le n\) 的有多少个 \(c=10^k-1\) 的倍数的十进制表示下不含有 \(9\)

    \(c\) 的倍数的条件是将 \(x\) 从低到高每 \(k\) 位分成一段(最后一段不够就当高位是 \(0\))得到的每一段的和是 \(c\) 的倍数。由于段数非常有限,于是可以枚举倍数(每段数值之和)的值。

    由于最终每段的总和为定值,于是数位 \(\rm DP\)。按照常规操作枚举 \(\rm LCP\) 并钦定之后的一位小于 \(n\) 的对应位。设 \(f_{i,b}\) 表示考虑长度为 \(K\) 的段的前 \(i\) 位,之前的位对这位及以后造成的进位大小为 \(b\) 的方案数。

    \(f_{i,*}\)\(f_{i+1,*}\) 的转移可以枚举每个段中这一位选择的数值记录到进位中,被限制的位不能自由选数。枚举完每位的选择之后 \(f_{i,*}\) 要向 \(f_{i+1,*}\) 统一转移,只能转移十进制下尾数和 总和 的当前位相同的那些状态

    赌徒

    能作为硬币的某一面出现的数字一定是出现过的数字或者 \(1\)。每一面朝上时能给 \(A\) 带来的收益是固定的,可以将每个硬币拆成两个,每个都带 \(x_i\) 的收益。将数字从小到大排序之后做前缀和

    剩下的工作是最大化 \(s_x+s_y-v_xv_y\),斜率优化。

    零和

    大样例告诉我们选择的正数集合可以固定。甚至可以直接把大样例给出的正数集合拖到 Submission 上。剩下的选负数,尝试每个为零子集都只有一个负数,也就是说每个负数都是 \([\frac{\sum a}2,\sum a]\) 中的数字

    背包计算 \([0,\sum a]\) 每个数字能被多少子集凑成。再背包计算使用最少负数使得为零子集数量为 \(i\in[0,10^6]\) 的方案(记录转移路径)

    题解说任选一个长度为 \(22\)\(a_i\in[1,5]\) 的正数序列都可以凑出合法方案,不会证明。

  • 相关阅读:
    apache 问题 You don't have permission to access /test.php on this server 解决方法
    setTimeout和setInterval实现定时器的区别
    视图Ext.Viewport和窗口Ext.Window用法
    JavaScript设置Cookie
    布局Layout
    html中select标签刷新后不回到默认值而是保持之前选择值
    设置session失效的几种方法
    面板Ext.Panel使用
    树TreePanel
    让html元素随浏览器的大小自适应垂直居中
  • 原文地址:https://www.cnblogs.com/yspm/p/TestReview20220805.html
Copyright © 2020-2023  润新知