2007: Football Training Camp【原创-转载请说明】

Submit Page   Summary   Time Limit: 1 Sec     Memory Limit: 128 Mb     Submitted: 228     Solved: 30


Description

在一次足球联合训练中一共有n支队伍相互进行了若干场比赛。 对于每场比赛,赢了的队伍得3分,输了的队伍不得分,如果为平局则两支队伍各得1分。

Input

输入包含不超过1000组数据。 每组数据的第一行为一个整数n(2 ≤ n ≤ 20),第二行为n个整数s1, s2, …, sn(0 ≤ si ≤ 200, 1 ≤ i ≤ n),即各个队伍目前的得分。

Output

对于每组数据,用一行输出最少以及最多进行了多少场比赛,中间用一个空格隔开。 数据保证不会出现无解情况。

Sample Input

2
7 4
3
1 5 1
2
0 0

Sample Output

4 5
3 3
0 0

Hint

Source

湖南省第十三届大学生计算机程序设计竞赛

题解:比赛的时候陷在错误的思路里     其实这个题目真的水

每一场比赛如果是平局就总分增加2分    不然就加3分

所以要得到最多的比赛场次  就要优先平局

要得到最少的比赛场次   就要优先胜局

如果设置胜场的数目     如果总分为奇数   胜场数的下届就是1   不然就是0

因为如果是奇数  说明至少有一场是胜场

胜场数的上界就是    m

for(int i=0; i<n; ++i)
{
     if(a[i]>=3)
    m+=a[i]/3;
}

然后枚举胜场的场次      每一次增加2场胜场   保证剩下的总分是偶数

每一次枚举判断一下剩下的比分可不可以构成全是平局

如果可以的话     就说明这是一种符合情况的胜场次数

然后取符合情况中间   胜场最少的  和最多的    就是我们要求的答案了

 #include<stdio.h>
#include<iostream>
#include<cmath>
#include<algorithm>
#include<string.h>
#include<stack>
#include<queue>
using namespace std;
int a[];
int main()
{
int n,sum,m,ff,temp;
while(cin>>n)
{
int num1,num2;
ff=;
priority_queue<int ,vector<int > ,less<int> >que;
sum=;
m=;
while(!que.empty())
{
que.pop();
}
for(int i=; i<n; ++i)
{
scanf("%d",&a[i]);
sum+=a[i];
que.push(a[i]);
if(a[i]>=)
m+=a[i]/;
}
if(m==)
{
printf("%d %d\n",sum/,sum/);
continue;
}
if(sum%==)
{
ff=;
temp=que.top()-;
que.pop();
que.push(temp);
m--;
sum-=;
}
int flag=;
if((*que.top()<=sum))
{
num1=ff+sum/;
num2=ff+sum/;
flag=;
}
for(int i=; *i<=m; ++i)
{
temp=que.top()-;
que.pop();
que.push(temp);
temp=que.top()-;
que.pop();
que.push(temp);
sum-=;
if((*que.top()<=sum))//剩下的比分是否可以全部构成平局
{
num1=ff+*i+sum/;
if(flag==)
{
num2=ff+*i+sum/;
flag=;
} }
}
printf("%d %d\n",num1,num2);
}
return ;
}

湖南省第十三届大学生计算机程序设计竞赛 Football Training Camp 贪心的更多相关文章

  1. 2018湖南省第14届大学生计算机程序设计竞赛 D: 卖萌表情

    Description 已知以下 4 种都是卖萌表情(空白的部分可以是任意字符.竖线是便于展示的分隔符,没有实际意义): ^ ^ | ^ | < | > v | v v | > | ...

  2. 2018湖南省第14届大学生计算机程序设计竞赛 C: 时间旅行

    Description 假设 Bobo 位于时间轴(数轴)上 t0 点,他要使用时间机器回到区间 (0, h] 中. 当 Bobo 位于时间轴上 t 点,同时时间机器有 c 单位燃料时,他可以选择一个 ...

  3. 2018湖南省第14届大学生计算机程序设计竞赛 A字符画

    Description 读入 w,请输出 2018 的字符画,两个数字之间有 w 个空格.具体格式请参考样例输出. 1 ≤ w ≤ 2018 Input 输入文件只包含 1 个整数 w. Output ...

  4. 2016年湖南省第十二届大学生计算机程序设计竞赛---Parenthesis(线段树求区间最值)

    原题链接 http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1809 Description Bobo has a balanced parenthes ...

  5. csu 1503: 点弧之间的距离-湖南省第十届大学生计算机程序设计大赛

    这是--比量p并用交点连接中心不上弧.在于:它至p距离.是不是p与端点之间的最短距离 #include<iostream> #include<map> #include< ...

  6. CSUOJ1329——一行盒子_湖南省第九届大学生计算机程序设计竞赛

    题目是中文的我就不是说明了,比赛的时候看过题目后队友说是splay来做,细想来省赛不会出这么坑的题目吧. 于是比赛还有一个小时左右把该做的都做完了以后,我们队三个人都来思考这个题目了.不过还好很快我们 ...

  7. 湖南省第九届大学生计算机程序设计竞赛 Interesting Calculator

    Interesting Calculator Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 163  Solved: 49 Description T ...

  8. 2016年湖南省第十二届大学生计算机程序设计竞赛Problem A 2016 找规律归类

    Problem A: 2016 Time Limit: 5 Sec  Memory Limit: 128 MB Description  给出正整数 n 和 m,统计满足以下条件的正整数对 (a,b) ...

  9. 湖南省第十二届大学生计算机程序设计竞赛 F 地铁 多源多汇最短路

    1808: 地铁 Description Bobo 居住在大城市 ICPCCamp. ICPCCamp 有 n 个地铁站,用 1,2,…,n 编号. m 段双向的地铁线路连接 n 个地铁站,其中第 i ...

随机推荐

  1. vim命令(转)

    1.Linux下创建文件 vi test.txt 或者 vim test.txt 或者 touch test.txt 2.vi/vim 使用 基本上 vi/vim 共分为三种模式,分别是命令模式(Co ...

  2. 大文件断点续传插件webupload插件

    java两台服务器之间,大文件上传(续传),采用了Socket通信机制以及JavaIO流两个技术点,具体思路如下: 实现思路: 1.服:利用ServerSocket搭建服务器,开启相应端口,进行长连接 ...

  3. CCF 201709-3 JSON查询

    CCF 201709-3 JSON查询 试题编号: 201709-3 试题名称: JSON查询 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 JSON (JavaScript ...

  4. 切比雪夫定理(Chebyshev's theorem)与经验法则(Empirical Rule)

    切比雪夫定理(Chebyshev's theorem):适用于任何数据集,而不论数据的分布情况如何. 与平均数的距离在z个标准差之内的数值所占的比例至少为(1-1/z2),其中z是大于1的任意实数. ...

  5. ES6基础入门之let、const

    作者 | Jeskson来源 | 达达前端小酒馆 01 首先呢?欢迎大家来学习ES6入门基础let,const的基础知识内容.初始ECMA Script6. ESMAScript与JavaScript ...

  6. Program terminated with signal 6, Aborted. (最后发现是数组越界导致)

    外网崩溃现象: 1.多台物理机中的多个进程消失,而且都是场景进程. 2.core文件都很小,看了 ulimit -a 和 cat proc/pid/limits  (都很正常.看这个是为了以后core ...

  7. cBioPortal 数据库

    http://www.cbioportal.org/ 参考连接 http://www.geneseed.com.cn/page464?article_id=413

  8. 使用kubectl访问kubernetes集群

    之前访问k8s都是通过token进去dashboard,如下所示.但是现在希望通过kubectl访问k8s,所以还需要进一步的配置. 1. 安装kubectl命令行工具,配置环境变量,环境变量的值指向 ...

  9. Jdk8 DNS解析

    注:JDK7和JDK8关于DNS解析的实现有差异,该问题在JDK7下可能不存在: Java中的DNS解析一般是通过调用下面的方法: public static InetAddress getByNam ...

  10. 命令行利用ffmpeg实现rtmp推流《转》

    ffmpeg在以前介绍过,是一个相当强大的工具,我们这次利用它实现rtmp推流(最终推流地址统一为rtmp://127.0.0.1:1935/live/123). 1.首先下载ffmpeg和ffpla ...