题意:有n个奶牛每天都会产奶,有人要吃掉每天产奶最少的奶牛,如果产奶量相同且最少,这个人就不吃任何一头牛,每头牛的产奶量是有周期的,输出还剩几头牛,第几天吃掉最后一头牛,如果没有牛被吃掉,第二个值输出0。
题解:模拟+暴力,先计算所有奶牛周期的最小公倍数,两两求出n个周期数的最小公倍数cnt,然后如果经过了cnt天还没有吃任何一头牛那就可以结束了。
#include <stdio.h>
#include <string.h>
const int N = 1005;
const int INF = 0x3f3f3f3f;
int cases, n, t[N][15], num[N], day, flag[N], cnt;
int count() {
int temp = num[1];
for (int i = 2; i <= n; i++) {
int temp1 = num[i];
int a = temp, b = temp1;
while (b != 0) {
int c = a % b;
a = b;
b = c;
}
temp = temp * temp1 / a;
}
return temp;
}
int main() {
scanf("%d", &cases);
while (cases--) {
scanf("%d", &n);
for (int i = 1; i <= n; i++)
flag[i] =