後天考試,今天做題,我真佩服自己。。。
這次又只A倆水題。。。
orz各路神犇。。。
話說這次模擬題挺多。。。
半個多小時把前面倆水題做完,然後卡C,和往常一樣,題目看懂做不出來。。。
A:
算是模擬吧,反正看懂題目後很可恥的生硬水果,沒被hack我覺得非常開心。。。
由於要求兩個人至少一個沒跳過,畫圖後發現很偷懶的方法。
雖然跟樣例不同,但過了。。。
[cpp]
#include <cstdio>
int main() {
int n, m;
scanf("%d%d", &n, &m);
printf("%d\n", n + m - 1);
for (int i = 1; i <= m; i++)
printf("1 %d\n", i);
for (int i = 2; i <= n; i++)
printf("%d 1\n", i);
return 0;
}
#include <cstdio>
int main() {
int n, m;
scanf("%d%d", &n, &m);
printf("%d\n", n + m - 1);
for (int i = 1; i <= m; i++)
printf("1 %d\n", i);
for (int i = 2; i <= n; i++)
printf("%d 1\n", i);
return 0;
}
B:
本來直接全部做成最大純色,然後考慮雜色,wa了。
發現想錯了,比如3 5 5,如果按原來想法會得出3,而它可以先做兩個純色為3 2 2,然後做2個混色為1 0 0。
於是想出算法,比賽時沒被room裡面的大神沒被hack,事後發現過不了新加的數據15。。。
太晚碎覺,明天看吧。。。
下面是原來的代碼:
[cpp]
#include <cstdio>
long min(long a, long b, long c)
{
if (a > b)
a = b;
if (c > a)
c = a;
return c;
}
int main() {
long r, g, b;
long sum = 0;
scanf("%ld%ld%ld", &r, &g, &b);
sum += r/3 + g/3 + b/3;
r % 3 == 0 ? r = 3, sum-- : r = r % 3;
g % 3 == 0 ? g = 3, sum-- : g = g % 3;
b % 3 == 0 ? b = 3, sum-- : b = b % 3;
sum += min(r, g, b);
printf("%ld\n", sum);
return 0;
}
#include <cstdio>
long min(long a, long b, long c)
{
if (a > b)
a = b;
if (c > a)
c = a;
return c;
}
int main() {
long r, g, b;
long sum = 0;
scanf("%ld%ld%ld", &r, &g, &b);
sum += r/3 + g/3 + b/3;
r % 3 == 0 ? r = 3, sum-- : r = r % 3;
g % 3 == 0 ? g = 3, sum-- : g = g % 3;
b % 3 == 0 ? b = 3, sum-- : b = b % 3;
sum += min(r, g, b);
printf("%ld\n", sum);
return 0;
}
C:
模擬題,其實不是。。。模擬起來必須超時。。。
思路到後面已經有了,拖拉太久時間不夠。
三鮮大神說:A 的意思就是 kx + b = y,判斷整除就可以了。
膜拜中。