A
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin >> n;
for (int i = 32; i > 0; i--) {
if ( i * 100-n < 100) {
cout << i << endl;
break;
}
}
return 0;
}
B
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long n, k;
cin >> n >> k;
while (k--) {
if (n % 200 == 0)n /= 200;
else n = n * 1000 + 200;
}
cout << n << endl;
return 0;
}
C
#include<bits/stdc++.h>
#define ll long long
using namespace std;
map<ll,ll> mp;
int main()
{
ll n;
cin >> n;
ll x;
for (ll i = 0; i < n; i++) {
cin >> x;
x%=200;
mp[x]++;
}ll ans = 0;
for(auto i:mp){
ans+=i.second*(i.second-1)/2;
}
cout << ans << endl;
return 0;
}
学习:
for(auto i:mp){
ans+=i.second*(i.second-1)/2;
}
1.
这是一个基于范围的for循环,它迭代map mp中的每个元素。变量i表示每次迭代期间map的每个元素。
此行基于当前map条目的第二个元素 (i.second) 计算一个值。它取i.second和 (i.second-1) 的乘积,然后将结果除以2。然后将该值添加到ans变量中。
2.
数论:

被折叠的 条评论
为什么被折叠?



