https://codeforc.es/contest/1543
A. Exciting Bets题目大意
刚开始两人手上有a 和 b 元,每次可以增加或减少1元
问最大公因数以及取得最大公因数的最小步骤。
额,题目读错了,以为是求最大公因数和最小公因数,想了想有最小公因数这种东西吗???离谱
题解
最 大 公 因 数 就 是 ∣ a − b ∣ 如 何 快 速 达 到 k ∗ ∣ a − b ∣ 判 断 a 先 到 达 还 是 g 先 到 达 最大公因数就是|a-b| 如何快速达到 k * |a-b| \\\ \\ 判断a先到达还是g先到达 最大公因数就是∣a−b∣如何快速达到k∗∣a−b∣ 判断a先到达还是g先到达
ll g = abs(a-b);
ll _min = min(a%g, g-a%g);
代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
long long a,b;
scanf("%lld %lld",&a,&b);
if(a==b) printf("0 0\n");
else{
long long g = abs(a-b);
long long c = min((a%g),(g-a%g));
printf("%lld %lld\n",g,c);
}
}
return 0;
}
B. Customising the Track题目大意
optimal 最佳的
evenly 均匀的
移动卡车,找到最小的阻塞程度
题解
根
据
公
式
,
应
该
尽
可
能
平
均
分
布
。
模
拟
一
下
发
现
,
有
k
个
管
道
的
车
辆
为
p
−
1
有
n
−
k
个
管
道
的
车
辆
为
p
根据公式,应该尽可能平均分布。\\ 模拟一下发现,\\ 有k个管道的车辆为 \ p-1\\ 有n-k个管道的车辆为 \ p
根据公式,应该尽可能平均分布。模拟一下发现,有k个管道的车辆为 p−1有n−k个管道的车辆为 p
k 的求法 sum % n
代码
#include <iostream>
using namespace std;
int main()
{
int t;
scanf("%lld",&t);
while(t--)
{
long long n;
scanf("%lld",&n);
long long sum = 0;
for(int i=0;i<n;i++)
{
int c;
cin >> c;
sum += c;
}
long long k = sum % n;
printf("%lld\n",k*(n-k));
}
}
题目大意
题解
代码
题目大意
题解
代码