zoukankan      html  css  js  c++  java
  • Codeforces Round #353 (Div. 2)

    A. Infinite Sequence

    题意:已知一个等差数列的第一项a和公差c,问b是不属于这个等差数列。

    分析:求d=b-a,再根据d和c的符号来判断。如果d和c同号,且d能整除c,那么b是。如果d==0,那么说明a==b,肯定是可以的,也可能的c==0,那么这个数列是常数数列,肯定是不可以的。如果d和c异号,那么根据第一项的增加或者减少都是不肯到b 的,肯定不能啦。

    代码:

     1 /*A*/
     2 #include<cstdio>
     3 using namespace std;
     4 
     5 int main()
     6 {
     7     long long a,b,c;
     8     while(scanf("%I64d%I64d%I64d",&a,&b,&c)!=EOF)
     9     {
    10         long long d=b-a;
    11         if(d*c>0)
    12         {
    13             if(d%c==0)
    14                 printf("YES
    ");
    15             else
    16                 printf("No
    ");
    17         }
    18         else if(d*c==0)
    19         {
    20             if(d==0)
    21                 printf("YES
    ");
    22             else
    23                 printf("NO
    ");
    24         }
    25         else
    26             printf("NO
    ");
    27     }
    28     return 0;
    29 }
    View Code

    B. Restoring Painting

    题意:有一个3*3的方格,里面已经填好了a,b,c,d,现在需要用1~n是数字来填满这个方阵,使得任意一个2*2的方阵里数字的和等于左上角2*2方格里的数字之和。问有多少种满足条件的填法。

    分析:题目的意思就是要左上角A,右上角B,左下角C,右下角D四个2*2的方格中的数字分别加起来要相等。给出a,b,c,d后,A=a+b,B=a+c,C=b+d,D=c+d。我们先填中间的数字,这个数字属于四个方格,所以最后每个方格都要加上这个数字,所以A,B,C,D的差值是不变的,而最后填的四个角,就需要来抵消这个差值,使得四个方格相等。所以最后的答案就是中间格子可以填的种数乘四个角可以填的种数。中间n个数字都可以填,因为是不会影响差值的。四个角可以填的个数则要看差值是多少,可以填的种数=n-差值。如果差值为0,那么每个数都可以填,如果差值为1,那么最大的那个数是不可以填到数字最大的那个格子里的,因为其他格子就无法满足了。

    注意:当n-差值<=0时,方法数为0,而且要用long long 。

    代码:

     1 /*B*/
     2 #include<cstdio>
     3 #include<algorithm>
     4 using namespace std;
     5 
     6 long long Max(long long  a,long long  b,long long  c,long long  d)
     7 {
     8     long long  t;
     9     t=max(a,b);
    10     t=max(t,c);
    11     t=max(t,d);
    12     return t;
    13 }
    14 long long  Min(long long  a,long long  b,long long  c,long long  d)
    15 {
    16     long long  t;
    17     t=min(a,b);
    18     t=min(t,c);
    19     t=min(t,d);
    20     return t;
    21 }
    22 
    23 
    24 int main()
    25 {
    26     long long  n;
    27     long long  a,b,c,d;
    28     while(scanf("%I64d%I64d%I64d%I64d%I64d",&n,&a,&b,&c,&d)!=EOF)
    29     {
    30         long long  A,B,C,D;
    31         A=a+b;B=a+c;
    32         C=b+d;D=c+d;
    33         long long  mmax=Max(A,B,C,D);
    34         long long  mmin=Min(A,B,C,D);
    35         long long  d=mmax-mmin;
    36         long long  ans;
    37         if((n-d)<0)
    38             ans=0;
    39         else
    40             ans=(n-d)*n;
    41         printf("%I64d
    ",ans);
    42     }
    43     return 0;
    44 }
  • 相关阅读:
    MYSQL的一些命令
    微信支付细节说明(服务商版本)
    MYSQL的一些概念
    MYSQL内置数据库之information_schema
    Lua5.1 三色标记gc
    LUA计算table大小getn
    游戏排行榜系统设计 -- 有感
    nginx如何跑起来
    C# winform datagridview数据绑定问题
    windows共享路径访问SMB安装
  • 原文地址:https://www.cnblogs.com/yepiaoling/p/5502873.html
Copyright © 2011-2022 走看看