当前位置:编程学习 > C/C++ >>

Codeforces Round #190 (Div. 2) 水果俩水题

后天考试,今天做题,我真佩服自己。。。

这次又只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,判断整除就可以了。

膜拜中。

 


 

补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,