首页 > 位数差
头像 平凡的小白
发表于 2020-06-03 23:18:08
思路:1.拿到题的第一个思路就是暴力,直接两层循环,复杂度在以上,结合数据范围,是一定会超时的。2.接着可以考虑整体二分。想将大问题分解成为小问题,在合并进行求解。3.将的问题化为的问题。4.可以定义一个函数,表示求之间的答案。 ll solve(int l,int r) { ; }5.[0 展开全文
头像 19_hanhan
发表于 2020-06-07 13:42:49
题目 题目描述: 给一个数组{a},定义 h(a,b)为在十进制下 a + b 与 a 的位数差,求 ,0的位数为1。 输入描述: 第一行读入一个正整数 n (1 <= n <= 105)。 展开全文
头像 苟且的狮子
发表于 2020-05-27 13:26:57
二分、递归、搜索 题意:给一个数组{a},定义 h(a,b)为在十进制下 a + b 与 a 的位数差,求 h(ai,aj) 的和,对于所有i<j,0的位数为1 拿到这一题,第一反应就是整体二分。想将大问题分解成为小问题,在合并进行求解。输入数据存储在数组a中,定义一个函数 long long 展开全文
头像 cheeserish
发表于 2020-05-22 15:20:32
链接:https://ac.nowcoder.com/acm/problem/14380来源:牛客网 题目描述 ** 给一个数组{a},定义 h(a,b)为在十进制下 a + b 与 a 的位数差,求 ,0的位数为1。 ** 看到这道题,第一感觉数学问题;不过既然标签为二分,那就只能往二分靠;∑h 展开全文
头像 usx21145328
发表于 2022-01-16 11:38:15
题意: 求出a[i]后面的数+a[i]与a[i]的位数差的和 思路: 可以整体二分,然后分治。假设这个数组长度为n,把它分成两半,就是[1,mid]和[mid+1,n],我们可以先求出[1,mid]和[mid+1,n]各自的位数差,然后求出[1,mid]里的数作为a[i],[mid+1,n]里的数 展开全文
头像 在刷题的单身狗很开心
发表于 2023-09-06 19:47:10
做这题的时候因为没有看清题目走了好多弯路[栓Q],题目中要去i<j,所以不会出现抽取相同下标的数。也是因为这个要求所以不能对数组直接进行排序,会将数组顺序打乱导致错误的。 但要求数位差如果有序的话最好的办法是求得大于等于10-a,100-a,1000-a的个数,然后相加。但本题不能直接排 展开全文
头像 sunrise__sunrise
发表于 2020-05-30 09:37:48
参考题解大佬 orz 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 65536K,其他语言131072K 64bit IO Format: %lld 题目描述 给一个数组{a},定义 h(a,b)为在十进制下 a + b 与 a 的位数差,求 ,0的位数 展开全文
头像 Severus.
发表于 2020-06-06 18:56:03
题目描述 给一个数组{a},定义 h(a,b)为在十进制下 a + b 与 a 的位数差,求 ,0的位数为1。 输入描述: 第一行读入一个正整数 n (1 <= n 展开全文
头像 SSuryxin
发表于 2021-05-06 19:59:11
题目描述: 给一个数组{a},定义 h(a,b)为在十进制下 a + b 与 a 的位数差,求 ,0的位数为1。 思路: 分治(递归+二分) 第一反应肯定是暴力,但是一看数据范围直接放弃 接着发现这是区间问题,可以考虑考虑分治,大化小,小化了 [l, r] = [l, mid] + [mid + 展开全文
头像 18duangduang
发表于 2020-07-03 21:40:19
大致题意:给定一个序列,求 . 表示 和 十进制下的位数差.分析:方法一:离散+树状数组我们可以逆序遍历序列,计算当前 作为 的左参数的贡献,那么我们与 相加能产生数位差 .举个例子:能至少产生一位数位差,设比 大的最小十进制数位 ,那么 的大小一定要大于等于 .依次枚举至少产生两位数位差.... 展开全文