zoukankan      html  css  js  c++  java
  • CF Round #353 Div.2

    http://codeforces.com/contest/675

     

    A. Infinite Sequence

    题意:给出等差数列的首项a以及公差c,问数b是不是该数列中的数,若是输出YES否则输出NO。

    思路:第一种情况是a==b,这时不论公差c为多少,都是YES;当a!=b时,则要求同时满足:

               (1)c!=0;   (2)(b-a)%c==0;   (3)(b-a)/c>0 (即b-a要和c同号)。

    代码:太简单了就不贴了


    B. Restoring Painting

    题意:有这么一个3×3的格子,在?处填入1-n之间的一个数,不同的?处填的数字可以相同也可以不同,但都需满足条件:每个2×2的格子内数字和==左上角的2×2格子内的数字和。  问共有多少种填法?

                                                                    image

    思路:a,b,c,d已经给出,那么设

                                               image

                可以列式:y+c=x+b     z+d=x+a     w+d=y+a

             于是得到: y=x+b-c     z=x+a-d   w=y+a-d

              于是遍历x的值(从1到n),只要y,z,w同时满足1<=y,z,w<=n,则ans++

              最终共有ans*n种填法(为什么要*n,因为在满足上述的等式下,中间的m可以填1-n中的任意数)。

    代码:不贴。


    C. Money Transfers

    题意:共有n个银行,依照第1个银行、第2个、……、第n个银行围成一圈,现在每个银行都有一定的钱数,可能为负值(代表欠钱)。为了让每个银行的钱数全部归零,现在可以进行银行间的转账,但规定转账只能在相邻银行之间进行(第1与第n 相邻),问让所有银行的钱数归零的最少的次数?(给出的数据已经保证一定能够全部归零)

    思路:因为只在相邻之间进行,最多就是n-1次,从头至尾,找到后面那些钱数为0的银行,那些是不需要动的,额说不清楚,看代码吧。

    代码://话说map的这个用法真是用起来爽得很。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<map>
    using namespace std;
    
    int main()
    {
        int n,a;
        map<long long,int> m;
        long long sum=0;
        scanf("%d",&n);
        int ans=n-1;
        for(int i=0;i<n;i++)
        {
            scanf("%d",&a);
            sum+=a;
            m[sum]++;
            ans=min(ans,n-m[sum]);
        }
        printf("%d
    ",ans);
        return 0;
    }

  • 相关阅读:
    使用.NET中的XML注释(二) -- 创建帮助文档入门篇
    使用.NET中的XML注释(一) -- XML注释标签讲解
    C# 代码注释和Config文件中,特殊符号的书写方法。
    C# 代码注释规范文档
    智能语音录制程序——窃听神器(源码放送!)
    基于 Winform + DotNetBar 写的股市行情助手
    C#自动弹出窗口并定时自动关闭
    C#关闭子窗口而不释放子窗口对象的问题解决
    C#中将dateTimePicker初始值设置为空
    c#多线程实现定时执行代码与lock锁操作
  • 原文地址:https://www.cnblogs.com/atmacmer/p/5533613.html
Copyright © 2011-2022 走看看