首页 > 其他分享 >ARC136C Circular Addition [高维前缀和]

ARC136C Circular Addition [高维前缀和]

时间:2024-10-10 16:22:41浏览次数:8  
标签:前缀 Addition sum ++ int ARC136C ans Circular

Description

给定一个长度为 \(n\) 的正整数序列 \(A\),求有多少对 \((i,j)\) 使得 \(A_i+A_j\) 不发生进位操作。
\(A_i<10^6\)。

Solution

显然对于每个 \(A_i\),设 \(B_i=999999-A_i\),那么 \(A_i\) 可以和 所有位上的数 都小于等于 \(B_i\) 对应位上的数 的数匹配,考虑用桶加前缀和统计(相当于是个 \(6\) 维前缀和)。
然后对于每位都 \(\le 4\) 的数,是会和它自己匹配的,所以要减 \(1\)。
最后答案 \(/2\) 即可。

Code

const int N = 1e6 + 5;

int n, a[N];
int p[6] = {1, 10, 100, 1000, 10000, 100000};
ll sum[N], ans;

void Solve(){
    cin >> n;
    for(int i = 1; i <= n; i++){
        cin >> a[i];
        sum[a[i]]++;
    }
    for(int i = 0; i < 6; i++){
        for(int j = 0; j < 1000000; j++){
            if(j / p[i] % 10){
                sum[j] += sum[j - p[i]];
            }
        }
    }
    for(int i = 1; i <= n; i++){
        ans += sum[999999 - a[i]];
        bool flag = true;
        for(int j = 0; j < 6; j++){
            if(a[i] / p[j] % 10 >= 5){
                flag = false;
                break;
            }
        }
        if(flag) ans--;
    }
    cout << ans / 2 << endl;
}

标签:前缀,Addition,sum,++,int,ARC136C,ans,Circular
From: https://www.cnblogs.com/chenwenmo/p/18456611

相关文章

  • [Javascript] Circular dependency
    Weoftenseecirculardependency,whyit'saproblem,whyweshouldavoiditandhwotoavoidit?  Let'sseeanyexamplefirst//main.jsimportAfrom"moduleA"//moduleA.jsimportBfrom"./moduleB"console.log("M......
  • Leetcode 3244. Shortest Distance After Road Addition Queries II
    Leetcode3244.ShortestDistanceAfterRoadAdditionQueriesII1.解题思路2.代码实现题目链接:3244.ShortestDistanceAfterRoadAdditionQueriesII1.解题思路这一题的话由于题目限制了road不会交叉,因此我们只需要在每次增加road之后将中间节点删除,剩余的路......
  • Digitwise_addition:超出限制:如果超出 -> 代码超时
    我正在研究kata。按位加法是一种特殊的加法,它不是通常向数字加1,而是向该数字的每个数字加1。如果数字是9,我们将其替换为10,而不保留到下一个数字。示例123->234任务编写一个接受两个数字n和k的函数,并在应用数字加法k次后输出n中的位数。由于答......
  • LeetCode | 370 RangeAddition
    https://github.com/dolphinmind/datastructure/tree/datastructure-array-02分析数组本身的递归性,差分数组的不变性和可逆性,在left索引上对当前及后续所有元素产生影响,在right+1索引上进行反操作,消除这种影响,再进行还原即可数组本身具有递归性差分数组性质:对于任何常数c......
  • CF1634F Fibonacci Additions 题解
    CF1634FFibonacciAdditions题解传送门。题目大意:给定两个序列\(A\)和\(B\),每次一个可以选一个区间,并在区间的第\(i\)个数加上\(F_i\),其中\(F\)是斐波那契数列,你需要在每次询问结束时输出两个序列是否相等。可以先求一个序列\(C\)表示\(A\)和\(B\)每个位置的......
  • has been injected into other beans [fundAdjuApplyService] in its raw version as
    场景:启动项目失败,报错Errorcreatingbeanwithname'batchAdjuApplyService':Beanwithname'batchAdjuApplyService'hasbeeninjectedintootherbeans[fundAdjuApplyService]initsrawversionaspartofacircularreference,buthaseventu......
  • Halcon中区域的Roundness和Circularity特征的区别
      在Halcon中,区域的特征Roundness(圆度)和Circularity(圆度)虽然都用于描述区域与圆形之间的相似程度,但它们在计算方法和应用上存在一些区别。还是从帮助文档着手: 1、Roundness(圆度) 机翻: 计算方法:Roundness通常通过计算区域轮廓上各点到区域中心的平均距离(Distance)与......
  • P8901 [USACO22DEC] Circular Barn S
    原题链接题解真tm麻烦先考虑只有一个数的情况假如我是后手,由于每次可以减123,无论对手减多少,我总可以使这一轮这个数总共减去的值为四的倍数恰好当n位4的时候先手必败,所以如果一个数为四的倍数时,先手必败考虑多个数数组里,有的数是4的倍数,有的不是。此时假设我是先手,遇到四......
  • LeetCode 918. Maximum Sum Circular Subarray
    原题链接在这里:https://leetcode.com/problems/maximum-sum-circular-subarray/description/题目:Givena circularintegerarray nums oflength n,return themaximumpossiblesumofanon-empty subarray of nums.A circulararray meanstheendofthearray......
  • CircularQueue
    CircularQueue/*************************************************************filename:CircularQueueinterface*author:[email protected]*date:2024/04/23*function:MakegreatCVengineer*note......