[永遠の記憶 ~ Precious Memories]P1980题解
[永遠の記憶 ~ Precious Memories]施工D17
2020.8.28
P1980 计数问题
Noip2013 T1
题目传送门
时间有点来不及,下周一就要返校了。我还摸了两天的鱼。
反正赶快讲这道题。仍然是清新正直的T1的难度,不过这次的T1稍微有一点技术含量,好像一年半前卡了我一两天(因为我对P1980这个东西特别熟悉)。
题意很简单,给定区间,问区间中的数中的每一位数字跟给定数字相同的有几个。尽管时隔很长时间,我还能想起当时我的想法是用字符串去模拟(因为找数很方便),但是写了一天发现累加有点困难,那时候也没有学过高精度的原理啥的,所以放了一天。
研究了一天以后发现,这个东西不就是个很简单的数位分离吗(那时候刚讲过,但是好像忘了)。原理是用 除
综合以上思路,我们很容易就可以写出
#include <iostream>
using namespace std;
typedef long long ll;
ll n, t, x, s, i;
int main() {
cin >> n >> x;
for (i = 1; i <= n; ++i) {
t = i;
while (t != 0) {
if (t % 10 == x) {
++s;
}
t /= 10;
}
}
cout << s << endl;
return 0;
}
以前这样的题能卡我一周多,现在想想,感慨啊~
赶快去写下一篇了,拜拜~