• 2024-11-19【NOIP普及组】记数问题
    【NOIP普及组】记数问题C语言代码C++代码Java代码Python代码
  • 2024-11-123300. 替换为数位和以后的最小元素
    题目链接:https://leetcode.cn/problems/minimum-element-after-replacement-with-digit-sum/题解代码:classSolution{public:intminElement(vector<int>&nums){vector<int>n;for(inti=0;i<nums.size();i++)
  • 2024-11-09盖世计划--北京营--0731--C班模拟
    A.数位和(digit)题意:设\(f(x)\)为\(x\)的数字和。例如\(f(158)=1+5+8=14\)。给定一个长度为\(N\)的正整数序列\(A\),求\(\sum_{i=1}^{N}\sum_{j=1}^{N}f(A_i+A_j)\)。分析:首先明确\(f(x)\)为\(x\)的数位和。举例情况:若有两个数分别为:\(12,21\)。\[f(12+21)=f
  • 2024-11-09[ARC158C] All Pair Digit Sums 题解
    C-AllPairDigitSums题意:设\(f(x)\)为\(x\)的数字和。例如\(f(158)=1+5+8=14\)。给定一个长度为\(N\)的正整数序列\(A\),求\(\sum_{i=1}^{N}\sum_{j=1}^{N}f(A_i+A_j)\)。分析:首先明确\(f(x)\)为\(x\)的数位和。举例情况:若有两个数分别为:\(12,21\)。\[f(
  • 2024-11-06第十三届蓝桥杯Python 大学 B 组 数位排序
    数位排序问题描述小蓝对一个数的数位之和很感兴趣,今天他要按照数位之和给数排序。当两个数各个数位之和不同时,将数位和较小的排在前面,当数位之和相等时,将数值小的排在前面。例如,2022排在409前面,因为2022的数位之和是6,小于409的数位之和13。又如,
  • 2024-11-03数位DP
    给一个区间[A,B],求在A,B之间满足条件的数字的个数。解题思路,使用递归每位数字变化,求满足的个数。模板1.0不考虑下界一、不考虑前导0的模板以下是不考虑前导0的模板代码:staticintdfs(intpos,booleanlimit,Stringstr,int[]dp){if(pos==str.lengt
  • 2024-10-25数位DP
    不得不说,数位DP是我掌握的最不好的一个板块。其实数位DP还挺好理解的,状态设计也一目了然,但是请小心前导零。从数位DP最基础的模版题:windy数开始做起P2657[SCOI2009]windy数题意:不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。windy想知道,在a和b之
  • 2024-10-23数位dp
    数位dp本质是记忆化搜索。\(lim\)为\(1\),表示当前位之前都是最大的数,当前位的大小受限制,不是1~9,是1~up。\(zero\)为\(0\),表示这一位之前为前导0。\(lim\)的转移:lim&&(i==up)。\(zero\)的转移:zero||i。例题1P2602[ZJOI2010]数字计数给定\(a\)和\(b\),
  • 2024-10-14题解:P1660 数位平方和
    ProblemLinkStep1:“定义\(S(n)\)表示\(n\)个的各个数位的\(k\)次方的和。”数位的\(k\)次方,我们可以通过快速幂求出,为了节省时间,我们可以定义一个\(a\)数组,来表示\(0\sim9\)区间中各数字\(k\)次方的值。然后我们通过定义一个\(s\)数组来存储\(0\sim4\times
  • 2024-09-27运算符、分支语句
    位操作符:可以直接操作二进制数位的内容;~是一个单目位操作符,它可以根据一个数字计算另外一个数字,这两个数字所有二进制数位的内容都不同(按位取反),使用的时候这个符号应该写在数字前面双目位操作符:包括按位与(&),按位或(|)以及按位异或(^),他们都可以把两个数字对应二进制数位的内容做计算
  • 2024-09-26C语言数据类型、变量的输入和输出、进制转换
    scanf标准函数可以从键盘得到数字并记录到存储区里,为了使用这个标准函数需要包含stdio.h这个头文件在scanf函数调用语句里应该使用存储区的地址表示存储区;双引号里使用占位符表示存储区的类型,在scanf函数调用语句里尽量不要写不是占位符的内容,如果用户输入的格式和程序要求
  • 2024-09-22数位dp windy数
    学习笔记因为这题总是涉及相邻位,所以在计算的时候要多计算几个。#include<bits/stdc++.h>usingnamespacestd;#definelllonglongintn,m;lldp[15][15];inta[15];voidinit(){ for(inti=0;i<=10;i++){ dp[1][i]=1; } for(inti=2;i<=10;i++){ for(intj=0
  • 2024-09-22数位dp 不要62
    纯纯数位dp板子,可以顺着思路下来。传统技能学习笔记不要62libreoj设状态为\(dp[i][j]\)为第\(i\)位是\(j\)的可能情况数。枚举位数,这位的数,低一位的数,将每一位的组合可能存下来,但要把这位是4与这位是6低一位是2的情况排除掉。voidinit(){ dp[0][0]=1; for(in
  • 2024-09-19P4999
    以下内容摘自OI-Wiki引子数位dp是指把一个数字按照个、十、百、千等等一位一位地拆开,关注它每一位上的数字。如果拆的是十进制数,那么每一位数字都是0~9,其他进制可类比十进制。数位DP:用来解决一类特定问题,这种问题比较好辨认,一般具有这几个特征:要求统计满足一定条件的数的数
  • 2024-09-19【题解】Solution Set - NOIP2024集训Day32 数位 dp
    【题解】SolutionSet-NOIP2024集训Day32数位dphttps://www.becoder.com.cn/contest/5537order:1,3,5,6,2,4「SDOI2013」淘金就是要算前\(k\)大的和。考虑一个位置\((i,j)\)在变化完了之后的金子个数。(也即逆变换。设:\(f^\prime(x)\)表示在\(1\simN\)范围内,数位
  • 2024-09-182.2hash
    算法理解将一个字符串,转化成数字,这样可以省去一个一个字母比较的复杂度。数位哈希将一个字符串中的一个元素看成一位数,把整个字符串,看成是一个p进制数,由于可能这个字符串对应的数太大了,所以我们需要取模运算,但是有可能就会有两个不一样的字符串数值相等,就是哈希冲突取模有两种
  • 2024-09-17【学习笔记】数位DP
    数位DP适用条件此类题目一般要求在\([l,r]\)区间内满足条件的数的个数,答案一般与数的大小无关,而与数各位的组成有关。题目中给出的数的范围一般较大,往往在\(10^9\)以上因此无法暴力枚举,只能使用动态规划代码实现使用记忆化搜索更简单易于理解。从数的高位向低位搜索,每一位可
  • 2024-09-01算法学习每日一题数位不同的组合
    Problem:3153.所有数对中数位不同之和思路本题关键在于如何处理数位不同的个数,其实就是组合问题,两个不同数字的不同数位只能算一对,所以我们不妨把后方元素与前方元素数位不同算作一对,保持单调性避免重复计数。那么后方元素不同的数位应该如何统计呢,我们不妨使用哈希
  • 2024-08-31数位 dp
    \(\texttt{0x00}\)简介数位dp解决的是与数字有关的一类计数问题,在求解过程中常把一个数字的每一位都拆开来看,比如十进制下就是把千位、百位、十位、个位上的数字都拆开来看,其他进制类比十进制。数位dp的问题一般比较显眼,有几个常见形式:要求统计满足一定条件的数的数量(即
  • 2024-08-30数位DP小记
    1.基础1.1.问题数位DP解决的一般都是和数字相关的计数问题,常见的有\(l\simr\)中有多少数符合某个关于数位的条件。对于这种问题,我们都是先用前缀和转化成小于等于某个数的问题。下面以P2602[ZJOI2010]数字计数为模板题。1.2记忆化搜索我们先枚举每个数码。我们
  • 2024-08-23Bomb(数位DP)
    题目描述Thecounter-terroristsfoundatimebombinthedust.Butthistimetheterroristsimproveonthetimebomb.Thenumbersequenceofthetimebombcountsfrom1toN.Ifthecurrentnumbersequenceincludesthesub-sequence"49",thepowero
  • 2024-08-21[题解]P3311 [SDOI2014] 数数
    P3311[SDOI2014]数数看到多模式匹配,我们考虑先对所有模式串建立AC自动机。然后发现这道题和P4052文本生成器(题解)挺像的,后者让求包含至少一个模式串的个数,这道题让求一个也不包含的个数,这个就是一个用不用\(26^m\)去减的问题,很好处理。但这道题还多了一个条件,“幸运数”必须\(
  • 2024-08-11HDU 不要62 题解
    题目传送门思路数位dp数位dp数位dp模版题。依次考虑每一位,满足题目给出的限制,统计数量,是一些较简单的数位dp题目的过程。数位dp运用了差分的思想,即求\(ans(l-r)\)的答案用\(ans(1-r)-ans(1-(l-1))\)来表示.对于本题,我们需要满足的性质很简单:使数不超
  • 2024-08-07网课-动态规划学习笔记2
    记忆化搜索记忆化搜索是一种DP的实现方法。相同点:DP中同一局部问题只计算一次——搜索的记忆化不处理对答案没有贡献的情况——对应搜索的剪枝不同点:遍历顺序优化复杂度。按数组顺序进行的DP,经常可以配合一些优化技巧进一步降低复杂度。“DP是一种算法,
  • 2024-07-25LG3107 [USACO14OPEN] Odometer S 题解 (数位DP+容斥)
    题意定义一个数是神奇的当且仅当这个数中有一个数位出现了一半及以上,比如112,2233。求\([l,r]\)中有多少个好的数字,\(100\lel,r\le10^{18}\)。题解考虑数位DP,先把答案转为\(Ans(r)-Ans(l-1)\),我们钦定一个数\(k\)让他必须出现多于一半,然后我们想求\([1,x]\)中有多少