2025年百度之星初赛第一场T4&T7
第 4 题
#include<iostream>
long long l[100010], r[100010], m, a, b, res;
int i, t;
void solve(long long a, long long b)
{
if (a == b)
{
if (a == 1)
{
printf("0\n");
}
else
{
printf("infty\n");
}
}
else
{
m = (a - 1) / (b - a);
res = (m + 1) * (m + 2) / 2 * a - (m + 1) * m / 2 * b - m - 1;
printf("%lld\n", res);
}
};
int main()
{
scanf("%d", &t);
for (i = 0; i < t; i++)
{
scanf("%lld %lld", &l[i], &r[i]);
}
for (i = 0; i < t; i++)
{
solve(l[i], r[i]);
}
return 0;
}
第 7 题
#include<iostream>
long long s, m[200010], a, b;
int i, j, n, t;
long long mydiv(long long a, long long b)
{
long long c = a + b;
if (c % 2 != 0)
{
return (c + 1) / 2;
}
else
{
return c / 2;
}
}
int main()
{
scanf("%d", &t);
for (i = 0; i < t; i++)
{
scanf("%d %lld", &n, &s);
a = s;
b = s;
for (j = 0; j < n; j++)
{
scanf("%lld", &m[j]);
if (m[j] > b)
{
b = mydiv(b, m[j]);
}
else
{
a = mydiv(a, m[j]);
}
}
printf("%lld\n", b);
}
return 0;
}
浙公网安备 33010602011771号