zoukankan      html  css  js  c++  java
  • Codeforces 478B 6thweek contest_B

    Random teams

    题意:

    有n个选手和m个队伍,让你分配,条件是每个队伍至少要有1个选手。分配完之后,每队伍里2个人可以组成一组,求分配完之后最多的组数和最少的组数

    分析:

    1.   最多的情况就是,先每个队伍分一个人,然后把剩下的全部给到一个队伍里,就是最多的情况    例如:n=10,m=3        1 1 8

    2、 最少的情况就是,每队分n/m个人,然后剩下的再均分给每队。             例如: 3   3    3+1

    代码:

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<string>
     5 using namespace std;
     6 //const int maxn=1000000000;
     7 //long long a[maxn][maxn];
     8 
     9 int main()
    10 {
    11     long long n,m,Min,Max,ave,yu;
    12      scanf("%lld%lld",&n,&m);
    13      ave=n/m;    //平均分给每队的人数
    14      yu=n%m;     //余数
    15      if(yu==0)  
    16      {
    17          Min=m*(ave*(ave-1))/2;//恰好均分给m个队的时候最小个数=m*(ave个人中选2个人的组合)
    18          Max=(n-m+1)*(n-m)/2;  //最多个数max=(n-m+1个人选2个人的组合数)
    19      }
    20      else
    21     {
    22      Min=(m-yu)*(ave*(ave-1))/2+yu*((ave+1)*ave)/2;
    23      Max=0+(n-m+1)*(n-m)/2;
    24     }
    25     printf("%I64d %I64d
    ",Min,Max);
    26 return 0;
    27 
    28 }
    View Code


     

  • 相关阅读:
    InputMethodService详解
    OPhone平台IMF简介
    android.view.View详解
    [t]为Android平台开发一个输入法
    SoftKeyboard详解
    SoftKeyboard示例之CandidateView详解
    如何开发一个OPhone平台的输入法应用
    KeyboardView.OnKeyboardActionListener详解
    二次开发
    直线职权::参谋职权::职能职权
  • 原文地址:https://www.cnblogs.com/x512149882/p/4750662.html
Copyright © 2011-2022 走看看