2021牛客暑期多校训练营7
H、xay loves count
记一下每个数出现了多少次,乘一下即可。
#include <bits/stdc++.h>
typedef long long ll;
const int MAXN = 1e6 + 10;
int a[MAXN];
int main()
{
int n, maxi = 0; scanf("%d", &n);
for (int i = 1; i <= n; ++i)
{
int t; scanf("%d", &t);
a[t]++; maxi = std::max(maxi, t);
}
ll ans = 0;
for (int i = 1; i <= maxi; ++i)
for (int j = 1; j <= maxi; ++j)
{
ll p = 1ll * i * j;
if (p <= maxi) ans += 1ll * a[i] * a[j] * a[p];
else break;
}
printf("%lld\n", ans);
return 0;
}
I、xay loves or
没啥好说的,注意特判0的情况即可。
#include <bits/stdc++.h>
typedef long long ll;
int main()
{
int x, s; scanf("%d%d", &x, &s);
ll ans = 1;
for (int i = 0; i < 31; ++i)
{
if (((x >> i & 1) == 1) && ((s >> i & 1) == 0))
{
printf("0\n");
return 0;
}
if (x >> i & 1 == 1) ans <<= 1;
}
if (x == s) --ans;
printf("%lld\n", ans);
return 0;
}
这场本来想补个F,结果树剖写了几遍都挂在5%,思路肯定没问题,不知道为什么。
队友拿线段树补过了,于是摸了。