题目描述
又是一年ACM集训的时刻,zkc学长邀请n位同学来玩一个有奖游戏。首先,他让每个同学在左、右手上面分别写下一个整数,zkc学长自己也在左、右手上各写一个整数。然后,让这n位同学排成一排,zkc学长站在队伍的最前面。排好队后,所有的同学都会获得zkc学长分发的若干肉松饼,每位同学获得的肉松饼数分别是:排在该同学前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。 zkc学长不希望某一个同学获得特别多的福利,所以他想请你帮他重新安排一下队伍的顺序,使得获得福利最多的同学,所获福利尽可能的少。注意,zkc学长的位置始终在队伍的最前面。 【数据范围】 对于100%的数据,有1 ≤ n ≤,, < a、b < 输入
第一行一个n表示n个同学 第二行两个数字代表zkc学长左手和右手的数字 接下来的n行分别代表第n个同学左手和右手的数字 输出
一个数字代表获得福利最多同学所获得福利 样例输入 样例输出 提示 按1、、3号同学这样排列队伍,获得福利最多的同学所获得肉松饼数为2; 按1、、2这样排列队伍,获得福利最多的同学所获得肉松饼数为2; 按2、、3这样排列队伍,获得福利最多的同学所获得肉松饼数为2; 按2、、1这样排列队伍,获得福利最多的同学所获得肉松饼数为9; 按3、、2这样排列队伍,获得福利最多的同学所获得肉松饼数为2; 按3、、1这样排列队伍,获得福利最多的同学所获得肉松饼数为9。 因此,福利最多的同学最少获得2个肉松饼,答案输出2。

最重要的话就是   排在前面同学 左手上数字的成绩除以这个同学的右手数字 就是这个同学应有的饼干数 .

现在 如果A在B的前面  那么A 所获得的饼的数量  t/r.a   B得到的饼的数量就是  t*la/rb

现在 如果B在A的前面  那么B 所获得的饼的数量  t/r.b   A得到的饼的数量就是  t*lb/ra

假设 A必须在B的前面  那么 一定可以推导出来一个包含 四个变量的  表达式  用于排序

现在关键的就是  为什么 A必须排在B的前面   最外层的原因就是 为了得到 饼干数量最多的人  得到的饼干尽量的少

所以该问题可以简化为    前面的所有同学的左手只是一只A手   那只A手上面的数字是B前面所有同学的左手乘积   于是 现在就简化为了两个人的问题.     同样的一个人  是  排在前面的到 饼的数量多还是 排在后面得到的饼的数量多呢 . 很明显是排在  后面的 多 所以  为什么  A排在 B的前面 因为        t*la/rb<t*lb/ra   (这样  最大的数量就尽量的小了   )

 #include<stdio.h>
#include<algorithm>
using namespace std;
struct S
{
int r,l;
};
bool cmp(S a,S b)
{
return a.l*a.r<b.l*b.r;
}
int main()
{
S a[];
int i,j,m,n,t;
double maxn;
while(scanf("%d",&n)!=EOF)
{
maxn=;
for(i=;i<=n;i++)
{
scanf("%d%d",&a[i].l,&a[i].r);
}
sort(a+,a+n+,cmp);
for(i=;i<n;i++)
{
maxn*=a[i].l;
}
j=a[n].r;
maxn=maxn/j;
j=maxn;
if(j>maxn)
maxn=j-;
else
maxn=j;
printf("%.0lf\n",maxn);
}
return ;
}

好像数据变大了,我的方法过不掉了,   请等一下我修正后的代码。

怎样去思考问题 解决问题 zkc学长的福利的更多相关文章

  1. 14. Scala使用递归的方式去思考,去编程

    14.1 基本介绍 -Scala饰运行在Java虚拟机(Java Virtual Machine)之上,因此具有如下特点 1) 轻松实现和丰富的Java类库互联互通 2) 它既支持面向对象的编程方式, ...

  2. 下篇:技术 Leader 的思考方式

    作者: 朱春茂(知明) 技术 Leader 是一个对综合素质要求非常高的岗位,不仅要有解具体技术问题的架构能力,还要具备团队管理的能力,更需要引领方向带领团队/平台穿越迷茫进阶到下一个境界的能力.所以 ...

  3. 开博近一年的感想 by 程序员小白

    /* 好吧,这里的写博客应该理解为更宏观的写文章. */   在去年的这个时候,我所知道的平台只有 CSDN 和博客园..然而 CSDN 的广告实在是不想吐槽了,选择博客园是一件非常自然的事情.要说开 ...

  4. 为什么DIY报价----走出软件作坊:三五个人十来条枪 如何成为开发正规军(十二)[转]

    前段时间,写了一个开发.实施.服务费用计算三部曲. 水清则无鱼--走出软件作坊:三五个人十来条枪 如何成为开发正规军(八) 实施费用也能DIY--走出软件作坊:三五个人十来条枪 如何成为开发正规军(九 ...

  5. windows类书的学习心得(转载)

    原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千 ...

  6. Javascript的AMD规范

    Javascript发展到今天,已经从一个小丑语言变成了不可替代的前端利器,已经脱离了低端的玩笑脚步,而转变为有规可依的强大语言. 本文主要讲述下如今被大力推广的AMD规范,为什么要AMD,什么场景是 ...

  7. 在WebForm中实现购物车思路

    关于网站购物车的实现的思考   写在前面的话:刚来公司的的时候,老大安排了一个任务,企业站,但是需要实现购物车的功能,以前没做过,所有就向周围的人请教了一下如何实现购物车,自己也在网上搜了一下,有了些 ...

  8. javaScript 的AMD

    转载:http://www.cnblogs.com/happyPawpaw/archive/2012/05/31/2528864.html#undefined 1. AMD的由来 前端技术虽然在不断发 ...

  9. windows类书的学习心得

    原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千 ...

随机推荐

  1. 2017-10-02-morning

    T1 一道图论神题(god) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK有一张无向图G={V,E},这张无向图有n个点m条边组成.并且这是一张带权图 ...

  2. symfony 使用原始sql

    $this->get('database_connection')->fetchAll('select * from book where book.id=3')

  3. Vuzzer自动漏洞挖掘工具简单分析附使用介绍

    Vuzzer 是由计算机科学机构  Vrije Universiteit Amsterdam.Amsterdam Department of Informatics 以及 International ...

  4. php设计模式——模板模式

    最近打算巩固,整理一下设计模式相关的内容.这篇是关于  ——模板模式! 原文:http://www.jb51.net/article/76052.htm ----------------------- ...

  5. SATA、SCSI、SAS

    目前,服务器市场上采用的硬盘主要有三种,SATA硬盘.SCSI硬盘以及SAS硬盘,其中SATA硬盘主要应用在低端服务器领域,而SCSI和SAS硬盘则面向中高端服务器.下面我们就SATA.SCSI以及S ...

  6. Android 4.2 project导入 5.0 SDK Eclipse 开发环境出现的问题总结

    Android 4.2 project导入 5.0 SDK Eclipse 开发环境出现的问题总结 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循&qu ...

  7. python爬虫实践

    模拟登陆与文件下载 爬取http://moodle.tipdm.com上面的视频并下载 模拟登陆 由于泰迪杯网站问题,测试之后发现无法用正常的账号密码登陆,这里会使用访客账号登陆. 我们先打开泰迪杯的 ...

  8. Python开发【第*篇】【Xpath与lxml类库】

    什么是XML XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输数据,而非显示数据 XML 的标签需要 ...

  9. 【bzoj1042】[HAOI2008]硬币购物

    首先使用DP预处理,先求出,在不考虑每种硬币个数的限制的情况下,每个钱数有多少种拼凑方案. 为了避免重复的方案被转移,所以我们以硬币种类为第一层循环,这样阶段性的增加硬币. 一定要注意这个第一层循环要 ...

  10. ASCII表格

    1. ASCII表格