首页 > 其他分享 >QOJ # 2835. Number Theory

QOJ # 2835. Number Theory

时间:2023-10-02 18:55:45浏览次数:60  
标签:10 进制 一位 2835 QOJ Theory

题面传送门

貌似是一个点名被卡的做法,怎么回事呢/cy

首先我看到这个东西感觉一脸进制转换,但是这玩意不是非常严格的进制转换,他的某一位的基数是上一位基数乘 \(10\) 还要 \(+1\),没关系,对于每个数从高到低转化,总能转化出一个合法的进制数。

然后考虑调整这个类似进制的数,首先一个比较容易地观察是每一位的绝对值不会超过 \(10\),否则可以进位,并给 \(1\) 位 \(-1\)。进一步的,我们发现,对这个数的操作只有三种:

  • 将某一位减一,低一位加 \(10\),\(1\) 位加 \(1\)。
  • 将某一位加一,低一位减 \(10\),\(1\) 位减 \(1\)。
  • 直接将 \(1\) 位上的数进位到后 \(4\) 位。

因此可以设 \(f_{i,j,-1/0/1}\) 表示从高到低到了第 \(i\) 位,\(1\) 位现在的值是 \(j\),上一位是加一/不变/减一的最少用的 \(1\) 的个数和。前两个转移是平凡的,第三个转移因为只有后 \(4\) 位所以暴力也是 \(O(n^2)\) 的,因此总复杂度 \(O(n^2)\)。

submission

标签:10,进制,一位,2835,QOJ,Theory
From: https://www.cnblogs.com/275307894a/p/17740309.html

相关文章

  • F. Vasilije Loves Number Theory
    F.VasilijeLovesNumberTheory前提知识:d(n)表示数字n的正约数个数,gcd(a,b)表示a,b两者的最大公约数要点:问是否存在a,使得d(a*n)=n,gcd(n,a)=1,意思是n与a互质,则可得,d(a*n)=d(a)*d(n)=n则问题转化成n%d(n)==0?尽管d(n)<=1e9,但n可能很大,所以可以利用质因子来求点击查看......
  • qoj6735. Tree (The 1st Universal Cup. Stage 22: Shaanxi)
    https://qoj.ac/contest/1287/problem/6735考虑定一个根,然后把每个点的点权附属在父边权上,让每条边的边权变成一个pair。这样,一个符合条件的路径需要满足的条件是:路径内所有边的边权pair相同,以及路径根节点(lca)的颜色符合。对于当前树上每个边权相同的连通块分开考虑。对......
  • QOJ 5175 翻修道路
    QOJ传送门考虑\(1\)到其他关键城市的最短路的并是一棵以\(1\)为根的外向树,考虑在外向树上从叶子往根dp。设\(f_{u,i,S}\)为当前在点\(u\),已经翻修了\(i\)条道路,当前已经经过的关键点集合为\(S\),最短路最大值的最小值。转移有两种情况,一种是在外向树上往父亲的边......
  • QOJ 5019 整数
    QOJ传送门考虑从低位向高位dp,设\(f_{i,S}\)为考虑到从低到高第\(i\)位,当前每个数超出上界的情况为\(S\)。转移可以枚举这一位填的数:若\(a_j=0,r_j=1\),那么这一位一定不会超出上界;若\(a_j=1,r_j=0\),那么这一位一定会超出上界。否则情况和之前相同。容......
  • QOJ 5089
    你细品巨大多太阳的题解,虽然看不懂,但是发现挺有道理的。容易发现,一个无向图是可环覆盖图,当且仅当所有点的度数为偶数。所以将一条边\((u,v)\)看作集合\(\{u,v\}\),相当于求选出\(i\in[0,m]\)个集合\(\{u_i,v_i\}\),其对称差为\(\varnothing\)的方案数。考虑集合幂级数,由......
  • QOJ61 Cut Cut Cut! 题解
    题面。题解假设\(1\)号点有\(d\)条出边,给\(d\)条出边赋\(d\)个独立的单位向量,接下来,每个出边记作入边的随机线性组合,那么对于第\(i\)个点,答案就是入边生成的线性空间的秩。正确性证明:对于每个点考虑,假设现在考虑\(i\)号点,将其入边集合记作\(E1_{i}\),出边集合记......
  • QOJ # 7106. Infinite Parenthesis Sequence
    题面传送门为什么全场切我不会?为什么全场切我不会?为什么全场切我不会?首先因为题目中要求左括号个数,我们就来关注一下左括号。对于一个左括号,假设它右边是右括号,那么这个左括号就会往右走,否则不会往右走。随便选个左括号开始标号,往左为负,往右为正,设\(p(k,i)\)表示第\(i\)个......
  • QOJ # 5573. Holiday Regifting
    题面传送门感觉有点奇妙。首先一个基础的想法就是一个一个往下推,维护每个数往下推的次数,统计当前数在前面的所有数一次归零后会加几次,然后计算这个数需要前面几轮归零,这样将这些系数乘起来就是需要归零的次数了。但是现在有一个问题就是前面每个数往下推的次数可能很大,这东西存......
  • Further reading: Theory of computation
    找了些:https://en.wikipedia.org/wiki/Theory_of_computation提到的书籍:Textbooksaimedatcomputerscientists(Therearemanytextbooksinthisarea;thislistisbynecessityincomplete.)Hopcroft,JohnE.,and JeffreyD.Ullman (2006). IntroductiontoAut......
  • 2835. 使子序列的和等于目标的最少操作次数-360
    使子序列的和等于目标的最少操作次数给你一个下标从0开始的数组nums,它包含非负整数,且全部为2的幂,同时给你一个整数target。一次操作中,你必须对数组做以下修改:选择数组中一个元素nums[i],满足nums[i]>1。将nums[i]从数组中删除。在nums的末尾添加两个......