A
找到一个整数 a3,使得数组 a1,a2,a3,a4,a5 的 Fibonacciness 最大。Fibonacciness 定义为满足 ai+2=ai+ai+1 的整数 i 的数量,其中 1≤i≤3。
题解:尝试三种可能的a3值:a1+a2 a4−a2和 a5−a4,并计算每种情况下的满足条件数量,最终输出最大值。
#include <stdio.h>
int main() {
int t;
scanf("%d", &t);
while (t--) {
int a, b, d, e;
scanf("%d %d %d %d", &a, &b, &d, &e);
int m = 0;
int c1 = a + b;
int f1 = 0;
if (c1 == a + b) f1++;
if (d == b + c1) f1++;
if (e == c1 + d) f1++;
m = (f1 > m) ? f1 : m;
int c2 = d - b;
int f2 = 0;
if (c2 == a + b) f2++;
if (d == b + c2) f2++;
if (e == c2 + d) f2++;
m = (f2 > m) ? f2 : m;
int c3 = e - d;
int f3 = 0;
if (c3 == a + b) f3++;
if (d == b + c3) f3++;
if (e == c3 + d) f3++;
m = (f3 > m) ? f3 : m;
printf("%d\n", m);
}
return 0;
}
B
关于 Farmer John 的 n 头牛玩纸牌游戏。每头牛有 m 张牌,牌的编号从 0 到 n*m-1。游戏的规则是每轮每头牛按照顺序 p 放一张牌在中心堆上,牌的编号必须大于中心堆顶部的牌。如果某头牛无法放牌,则游戏失败。
我们需要找到一个顺序 p,使得所有牛都能在 m 轮游戏中出完所有牌。如果存在这样的顺序 p,输出它;否则,输出 -1。
#include <stdio.h>
#include <stdlib.h>
int cmp(const void *a, const void *b) {
return (*(int *)a - *(int *)b);
}
int main() {
int t;
scanf("%d", &t);
while (t--) {
int n, m;
scanf("%d %d", &n, &m);
int c[n][m];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
scanf("%d", &c[i][j]);
}
qsort(c[i], m, sizeof(int), cmp);
}
int p[n], f = 1;
for (int i = 0; i < n; i++) p[i] = i;
for (int i = 0; i < n; i++) {
if (c[p[i]][0] != i * m) {
f = 0;
break;
}
}
if (f) {
for (

最低0.47元/天 解锁文章
1756

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



