[蓝桥杯 2020 省 B1] 整数拼接

2024-03-02 11:36
文章标签 2020 蓝桥 拼接 整数 b1

本文主要是介绍[蓝桥杯 2020 省 B1] 整数拼接,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、题目描述

P8712 [蓝桥杯 2020 省 B1] 整数拼接

二、题目简析

我们选两个数 a a a b b b,用 f ( a , b ) f(a, b) f(a,b) 表示 a a a 在前、 b b b 在后的拼接,即 f ( a , b ) = a ∗ 1 0 b . s i z e + b f(a, b) = a * 10^{b.size} + b f(a,b)=a10b.size+b。要满足 k ∣ f ( a , b ) k~|~f(a, b) k  f(a,b),则

f ( a , b ) ≡ 0 ( mod  k ) a ∗ 1 0 b . s i z e + b ≡ 0 ( mod  k ) a ∗ 1 0 b . s i z e ≡ − b ( mod  k ) \begin{split} f(a,b) &\equiv 0~(\text{mod}~k) \\ a * 10^{b.size} + b &\equiv 0~(\text{mod}~k) \\ a * 10^{b.size} &\equiv -b~(\text{mod}~k) \\ \end{split} f(a,b)a10b.size+ba10b.size0 (mod k)0 (mod k)b (mod k)


三、AC代码

#include <bits/stdc++.h>using namespace std;const int MAX = 1e5 + 3;
typedef long long ll;
typedef pair<ll, int> P;P A[MAX];
int n, k, R[13][MAX], fact[13];
ll ans; P quickin(void)
{ll ret = 0;int cnt = 0;bool flag = false;char ch = getchar();while (ch < '0' || ch > '9'){if (flag == '-')    flag = false;ch = getchar();}while ('0' <= ch && ch <= '9' && ch != EOF){cnt++;ret = ret * 10 + ch - '0';ch = getchar();}if (flag)    ret = -ret;return P(ret, cnt);
}ll quickme(ll x, ll n, ll m)
{ll ret = 0;while (n > 0){if (n & 1)    ret = ret * x % m;x = x * x % m;n >>= 1;	}return ret;
}int main()
{#ifdef LOCALfreopen("test.in", "r", stdin);#endifcin >> n >> k;for (int i = 0; i < n; i++){A[i] = quickin();// 预处理 -b mod k int res = (-A[i].first) % k;if (res < 0)    res += k;R[A[i].second][res]++;}fact[1] = 10 % k;for (int i = 2; i <= 10; i++)fact[i] = fact[i - 1] * 10 % k;for (int i = 0; i < n; i++){int t = (-A[i].first) % k;if (t < 0)    t += k;for (int j = 1; j <= 10; j++){// 求 a * 10^b.size mod k int L = A[i].first * fact[j] % k;// 判重 if (A[i].second == j && t == L)ans += R[j][L] - 1;elseans += R[j][L];}}cout << ans << endl;return 0;	
}

这篇关于[蓝桥杯 2020 省 B1] 整数拼接的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/765987

相关文章

python中字符串拼接的几种方法及优缺点对比详解

《python中字符串拼接的几种方法及优缺点对比详解》在Python中,字符串拼接是常见的操作,Python提供了多种方法来拼接字符串,每种方法有其优缺点和适用场景,以下是几种常见的字符串拼接方法,需... 目录1. 使用 + 运算符示例:优缺点:2. 使用&nbsjsp;join() 方法示例:优缺点:3

使用C语言实现交换整数的奇数位和偶数位

《使用C语言实现交换整数的奇数位和偶数位》在C语言中,要交换一个整数的二进制位中的奇数位和偶数位,重点需要理解位操作,当我们谈论二进制位的奇数位和偶数位时,我们是指从右到左数的位置,本文给大家介绍了使... 目录一、问题描述二、解决思路三、函数实现四、宏实现五、总结一、问题描述使用C语言代码实现:将一个整

Golang中拼接字符串的6种方式性能对比

《Golang中拼接字符串的6种方式性能对比》golang的string类型是不可修改的,对于拼接字符串来说,本质上还是创建一个新的对象将数据放进去,主要有6种拼接方式,下面小编就来为大家详细讲讲吧... 目录拼接方式介绍性能对比测试代码测试结果源码分析golang的string类型是不可修改的,对于拼接字

Java实战之自助进行多张图片合成拼接

《Java实战之自助进行多张图片合成拼接》在当今数字化时代,图像处理技术在各个领域都发挥着至关重要的作用,本文为大家详细介绍了如何使用Java实现多张图片合成拼接,需要的可以了解下... 目录前言一、图片合成需求描述二、图片合成设计与实现1、编程语言2、基础数据准备3、图片合成流程4、图片合成实现三、总结前

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c

PTA求一批整数中出现最多的个位数字

作者 徐镜春 单位 浙江大学 给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。 输入格式: 输入在第1行中给出正整数N(≤1000),在第二行中给出N个不超过整型范围的非负整数,数字间以空格分隔。 输出格式: 在一行中按格式“M: n1 n2 ...”输出,其中M是最大次数,n

整数Hash散列总结

方法:    step1  :线性探测  step2 散列   当 h(k)位置已经存储有元素的时候,依次探查(h(k)+i) mod S, i=1,2,3…,直到找到空的存储单元为止。其中,S为 数组长度。 HDU 1496   a*x1^2+b*x2^2+c*x3^2+d*x4^2=0 。 x在 [-100,100] 解的个数  const int MaxN = 3000

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

C语言蓝桥杯

一、语言基础 竞赛常用库函数 最值查询 min_element和max_element在vector(迭代器的使用) nth_element函数的使用 例题lanqiao OJ 497成绩分析 第一种用min_element和max_element函数的写法 第二种用min和max的写法 二分查找 二分查找只能对数组操作 binary_s

单精度浮点数按存储格式转为整数的程序

///#include<cstdio>//-----------------union int_char{unsigned char ch[4];float i;};void out_put(union int_char x)//x86是小端对其模式,即最数据的最低位存储在地址的最低位上。{printf("单精度浮点数值为:%f\n",x.i,x.i);printf("存储位置从左到右