[cf1103E]Radix sum】的更多相关文章

题目传送门 题目大意 给出一个\(n\)个数的序列\(a_{1,2,..,n}\),可以选\(n\)次,每次可以选与上次选的相同的数,问对于\(\forall p\in[0,n-1]\)满足选出来的数进行十进制不进位加法结果为\(p\)的方案数.答案对\(2^{58}\)取模. 思路 乍一看,这是一道\(k=10\)的\(k\)进制\(\text {FWT}\)的板题.但是,我们发现这个模数十分的神仙,于是我们就需要解决下面两个问题: 如何求出\(10^5\)的逆元 如何求出模\(2^{58}\…
类似于uoj272,即$B=10$的情况,然后有以下几个细节问题: 1.答案对$2^{58}$取模可以先使用自然溢出模$2^{64}$,最后对$2^{58}$取模即可 2.为了避免实数,令$\omega=\cos\frac{2\pi}{10}+\sin\frac{2\pi}{10}i$,初始每一个数必然是$\omega^{i}$,相乘也就是多项式乘法 根据$\omega^{10}=1$,可以将其幂次对10取模,即是一个9次多项式 又因为$\omega^{5}=-1$,因此$\omega^{i+5…
题目链接 神题. 题意:给定一个长度为\(10^5\)的幂级数\(a\),将卷积的下标运算定义为十进制下的不进位加法,求\(a^k\)模\(2^{58}\)的结果.\(k\leq 10^9\). 题解: 考虑在复数域下的做法,那么根据卷积的复合只要将\(a\)看作是\(5\)维的.每一维长度为\(10\)的幂级数,对每一维做长度为\(10\)的循环卷积即可.然而现在是取模甚至不是对质数取模.那么我们需要关心两个问题: \(1\).如何解决求逆元的问题. \(2\).如何在模意义下找到\(10\)…
题目简述:对任意两个(正)十进制数$a = \overline{a_{k-1}\dots a_1a_0}$和$b = \overline{b_{k-1}\dots b_1b_0}$,定义其[十进制按位加法(Decimal digit-wise addition)]$c = a \oplus b = \overline{c_{k-1}\dots c_1c_0}$,其中$c_i = (a_i+b_i) \bmod 10$.给定$1 \leq n \leq 10^5$个正整数$0 \leq x_i <…
\(\text {FWT}\) 学习笔记 正常项的\(\text {FWT}\) 在\(\text {OI}\)中,我们经常会碰到这种问题: 给出一个长度为\(n\)的序列\(a_{1,2,...,n},b_{1,2,...,n}\),求出 \[c_k=\sum_{i\oplus j=k}a_i b_j \] 其中\(\oplus\)是定义的一种二进制下的运算. 对于这种问题,我们有一种通用的方法,我们称之为\(\text {FWT}\). 我们考虑对于一个\(A\)构造一个\(FWT\)变换序…
1010 Radix 注意点 如111 1 1 10类似情况下,若n为个位数,如果本身比另一个数小,则多少的进制都是没有用的(可能会造成空循环而超时),不过好像没有这么一个测试用例 进制应该比最少数据中的最大的数要大一,如8最少是9进制的数,z最少是36进制的数 注意算法中的超时问题如9999999999 11 1 10很容易超时,注意匹配的算法 如果用c等强类型语言写,注意溢出问题,int类型肯定是不够的 python3代码 def getNum(num, radix): sum = 0 co…
1.C函数atoi atoi (表示 alphanumeric to integer)是把字符串转换成整型数的一个函数.广泛的应用在计算机程序和办公软件中.atoi( ) 函数会扫描参数 nptr字符串,跳过前面的空白字符(例如空格,tab缩进等). 原型:int atoi(const char *nptr),nptr:要进行转换的字符串: 功能:把字符串转换成整型数: 返回值:函数返回一个 int 值,此值由将输入字符作为数字解析而生成. 如果该输入无法转换为该类型的值,则atoi的返回值为…
1.函数atoi atoi (表示 alphanumeric to integer)是把字符串转换成整型数的一个函数.广泛的应用在计算机程序和办公软件中.atoi( ) 函数会扫描参数 nptr字符串,跳过前面的空白字符(例如空格,tab缩进等). 原型:int atoi(const char *nptr),nptr:要进行转换的字符串: 功能:把字符串转换成整型数: 返回值:函数返回一个 int 值,此值由将输入字符作为数字解析而生成. 如果该输入无法转换为该类型的值,则atoi的返回值为 0…
itoa()函数 itoa():char *itoa( int value, char *string,int radix); 原型说明: value:欲转换的数据. string:目标字符串的地址. radix:转换后的进制数,能够是10进制.16进制等.范围必须在 2-36. 功能:将整数value 转换成字符串存入string 指向的内存空间 ,radix 为转换时所用基数(保存到字符串中的数据的进制基数). 返回值:函数返回一个指向 str.无错误返回. itoa()函数实例: #inc…
1010. Radix (25) Given a pair of positive integers, for example, 6 and 110, can this equation 6 = 110 be true? The answer is "yes", if 6 is a decimal number and 110 is a binary number. Now for any pair of positive integers N1 and N2, your task i…