首页 > 其他分享 >蓝桥杯——整数拼接

蓝桥杯——整数拼接

时间:2023-04-06 20:46:11浏览次数:45  
标签:int long 蓝桥 拼接 整数 100010

整数拼接

 

 

 测试用例:

4 2
1 2 3 4

题解:

#include<bits/stdc++.h>
using namespace std;
long long a[100010];
long long f[11][100010];//余数数组,表示a[i]*10^r %k 的个数
long long  res;
int main()
{
    long long n,k;
    cin>>n>>k;

    for(int i=0;i<n;i++)
    {
        scanf("%lld",&a[i]);
        long long t =a[i]%k;
        for(int j=0;j<10;j++)
        {
            f[j][t]++;
            t=t*10%k; //这里用到一个数扩大N被模k = 这个数模K的数扩大N倍模k 比如 120 % 7 = [(12%7)*10]%7
        }
    }
    for(int i=0;i<n;i++)
    {
        long long t =a[i]%k;
        int len = to_string(a[i]).size();//判断数字位数的简单方法。
        res+=f[len][(k-t)%k];//模相加得k

        long long cnt=t;
        while(len--)
        {
            cnt=cnt*10 %k;//把余数扩大到 10^len倍
        }

        if(cnt=(k-t)%k) res--;

    }
    printf("%lld",res);
}

标签:int,long,蓝桥,拼接,整数,100010
From: https://www.cnblogs.com/LHJ822/p/17294102.html

相关文章

  • 蓝桥杯——走方格
       题解:#include<bits/stdc++.h>usingnamespacestd;intf[40][40];intn,m;intmain(){cin>>n>>m;f[0][1]=1;for(inti=1;i<=n;i++){for(intj=1;j<=m;j++){if(i%2==0&&j%2==0......
  • 列表中有整数、有特殊字符、有字母的排序问题
    列表中有整数、有特殊字符、有字母a=[2,1,3,5,4,'d','f','e','c','a','b','?','*','&']#定义一个函数defsort1(x):ifisinstance(x,int):  #判断传入的参数中是否有整数returnx #有整数返回整数本身......
  • 4/5总结备战蓝桥杯
    在今天清明节,放假一天,我早上准备了蓝桥杯,下午也学习了蓝桥杯,然后出去吃了一顿饭,回到宿舍已经10点,然后又学习了蓝桥杯。我学习了以下题:刷题:#include<iostream>#include<bits/stdc++.h>usingnamespacestd;intmain(){ longlonga,b,n; cin>>a>>b>>n; intsum=0; ......
  • 力扣题目整数除法
    在力扣上做题,这个题涉及到的整数溢出问题十分恼人,主要也是我不熟悉这些东西,做的很艰难,下面是题目:给定两个整数a和b,求它们的除法的商a/b,要求不得使用乘号'*'、除号'/'以及求余符号'%'。注意:整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345)=8以及......
  • 蓝桥杯4天冲刺3
     这道题其实并不难,做出来的关键是理解题意答案(来自网络)——#include<iostream>#include<vector>usingnamespacestd;typedeflonglongLL;LLn,ma,mb,ans,temp,key;vector<LL>nums_a;vector<LL>nums_b;intmain(){scanf("%lld%lld",&n,&ma);//......
  • 蓝桥-卡片
    #include<bits/stdc++.h>//包含所有常用的头文件usingnamespacestd;inta[10];//定义一个数组a,存储每个数字出现的次数intmain(){memset(a,0,10);//将数组a的所有元素初始化为0for(longlongi=1;;i++){//从1开始遍历整数strings=to_......
  • 蓝桥-单词分析
    https://www.lanqiao.cn/problems/504/learning/?page=1&first_category_id=1&sort=students_count&second_category_id=3#include<bits/stdc++.h>//包含所有常用的头文件usingnamespacestd;intmain(){map<char,int>m;//定义一个map,用于存储字符和出现次数的......
  • 蓝桥杯4天冲刺2
    爱丽丝要完成一项修剪灌木的工作。有N棵灌木整齐的从左到右排成一排。爱丽丝在每天傍晚会修剪一棵灌木,让灌木的高度变为0厘米。爱丽丝修剪灌木的顺序是从最左侧的灌木开始,每天向右修剪一棵灌木。当修剪了最右侧的灌木后,她会调转方向,下一天开始向左修剪灌木。直到修剪了最......
  • 2023_4_5 蓝桥杯练习
    《P8671[蓝桥杯2018国AC]约瑟夫环 循环(%)问题》   我尝试用STL中的list与vector进行模拟可以发现复杂度都是>=O(N*K)的,会超时只有通过数学推式来得到全部正确的答案这里简单说一下STLlist与vector中对插入,删除元素的用法:list:......
  • 蓝桥杯三天备考----枚举:卡片
    题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。小蓝有很多数字卡片,每张卡片上都是数字 0到 9。小蓝准备用这些卡片来拼一些数,他想从 1 开始拼出正整数,每拼一个,就保存起来,卡片就不能用来拼其它数了。小蓝想知道自己能从 1 拼到多少。例......