1 条题解
-
0
自动搬运
来自洛谷,原作者为

LinkyChristian
公式恐惧症一级患者||Linky~Linky~Lin||关注Linky,场场AK!||Revue ☆ Starlight搬运于
2025-08-24 21:54:33,当前版本为作者最后更新于2018-11-01 17:10:03,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
将读者的需求码与图书编码配对。
- 把需求码与图书编码配对 = 求图书编码的后 X 位
- 求图书编码的后 X 位 = 把前面的都去掉。
如何把前面的无关数字去掉呢?这时候我们想起了 运算。
对于一个数,很显然它的个位数是: 。
但是这是我们人工计算出的结果,而各个需求码的位数不同,这时候就需要找出一个规律。
对此我们发现了规律:对一个数 取其后 位,就是 。
cmath 头文件中带有专门执行幂运算的函数。
其中有一个要注意的点是,pow 函数并不能直接进行 mod 运算,需要将其带入一个变量进行运算。
遍历求最小值即可。
最后贴代码
#include<iostream> #include<cmath> using namespace std; int n,q,book[6666],len[6666],num[6666]; int main() { cin>>n>>q; for(int i=1; i<=n; i++) cin>>book[i]; for(int i=1; i<=q; i++) { cin>>len[i]>>num[i]; int tmp = pow(10,len[i]),min = 10000001; for(int j=1; j<=n; j++) if(book[j] % tmp == num[i] && book[j] < min) min = book[j]; if(min != 10000001) cout<<min<<endl; else cout<<-1<<endl; } return 0; }
- 1
信息
- ID
- 1676
- 时间
- 1000ms
- 内存
- 250MiB
- 难度
- 2
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者