zoukankan      html  css  js  c++  java
  • zzuli---1898---985的数字难题

    题目链接:http://acm.zzuli.edu.cn/zzuliacm/problem.php?id=1898

    Description

    985有n个数,已知每次操作可以将其中不相同的两个数一个加一、一个减一,操作次数不限。
    问他最多可以得到多少个相同的数。

    Input

    第一行输入一个整数t,代表有t组测试数据。
    每组数据占两行,第一行输入一个n代表元素个数,下面一行输入n个整数a[]。
    注:1 <= t <= 30,1 <= n <= 1e4,1 <= a[] <= 1e3。
     

    Output

    输出一个整数代表最多可以得到多少个相同的数。

    Sample Input

    2 3 1 1 1 2 2 3

    Sample Output

    3 1

    HINT

     

    Source

    hpu

    analyse:

    1>若所给序列中的数字和能够被n平分,那么在若干次加减后最后一定能变成n个相同的数.

    2>否则就可以找到一个数充当替罪羊,让另外n-1个数和替罪羊加或减变成同一个数.

    #include <cstdio>
    #include <cstring>
    #include<iostream>
    #include<queue>
    #include<stack>
    #include<cmath>
    #include <map>
    #include <algorithm>
    
    using namespace std;
    
    const int maxn=1100;
    const int INF=0x3f3f3f3f;
    
    int main()
    {
        int T;
        scanf("%d", &T);
    
        while(T--)
        {
            int n;
            scanf("%d", &n);
    
            int num, sum=0;
            for(int i=0; i<n; i++)
            {
                scanf("%d", &num);
                sum+=num;
            }
    
            if(sum%n==0)
                printf("%d
    ", n);
            else
                printf("%d
    ", n-1);
        }
        return 0;
    }
  • 相关阅读:
    两个栈实现队列
    重建二叉树
    最大的K个数
    堆排序
    Android 强制竖屏
    屏蔽输入框的焦点
    Android 全屏显示的方法(不包含状态栏)
    android 布局之scrollview
    clean之后R文件消失
    thinkphp
  • 原文地址:https://www.cnblogs.com/w-y-1/p/5801607.html
Copyright © 2011-2022 走看看