首页 > 计算几何
头像 sunny_forever
发表于 2021-05-22 11:22:55
B题题解 思路: 自定义一个函数 sum(n) 求得 [1,n]范围内满足要求的数 的个数 sum(r)-sum(l-1) 就是最后的结果 问题在于sum(n) 函数的构造: 通过手推:我们会发现 因此我们可以自定义出sum(n)函数,快速求出[1,n]范围内满足要求的数 的个数 ps: 展开全文
头像 Starfirz
发表于 2021-05-22 11:44:03
简单的说一下思路 首先对于右边界r,为了计算 0 到 r(闭区间)内有多少个数的二进制包含奇数个1,我们对右边界的二进制格式进行处理。比如这里我们有一个数的二进制格式为 (一共64位,考虑到题目给定 r 的最大值是 ),我们从高位往低位遍历,每当我们碰到了一个1,比如上面这个数最左边第一个1,我们 展开全文
头像 陌研
发表于 2021-05-22 20:28:04
找规律。0: 00000(偶数个)1: 00001(奇数个)2: 00010(奇数个)3: 00011(偶数个) 4: 00100(奇数个)5: 00101(偶数个)6: 00110(偶数个)7: 00111(奇数个) 8: 01000(奇数个)9: 01001(偶数个)10:01010(偶数个)1 展开全文
头像 ldu_revolIA
发表于 2021-05-23 15:04:17
b题 没什么想法,一看题,这不裸的数位dp板子么,一敲代码,板子是什么东西来着? 考虑dp[i][0]为状态第i位数字之后,偶数的个数 dp[i][1]为状态第i位数字之后,奇数的个数 从高位向低位搜索,若当前有奇数个1,那么返回偶数个数,否则返回奇数个数 展开全文

等你来战

查看全部