怎样去思考问题 解决问题 zkc学长的福利
题目描述
又是一年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学长的福利的更多相关文章
- 14. Scala使用递归的方式去思考,去编程
14.1 基本介绍 -Scala饰运行在Java虚拟机(Java Virtual Machine)之上,因此具有如下特点 1) 轻松实现和丰富的Java类库互联互通 2) 它既支持面向对象的编程方式, ...
- 下篇:技术 Leader 的思考方式
作者: 朱春茂(知明) 技术 Leader 是一个对综合素质要求非常高的岗位,不仅要有解具体技术问题的架构能力,还要具备团队管理的能力,更需要引领方向带领团队/平台穿越迷茫进阶到下一个境界的能力.所以 ...
- 开博近一年的感想 by 程序员小白
/* 好吧,这里的写博客应该理解为更宏观的写文章. */ 在去年的这个时候,我所知道的平台只有 CSDN 和博客园..然而 CSDN 的广告实在是不想吐槽了,选择博客园是一件非常自然的事情.要说开 ...
- 为什么DIY报价----走出软件作坊:三五个人十来条枪 如何成为开发正规军(十二)[转]
前段时间,写了一个开发.实施.服务费用计算三部曲. 水清则无鱼--走出软件作坊:三五个人十来条枪 如何成为开发正规军(八) 实施费用也能DIY--走出软件作坊:三五个人十来条枪 如何成为开发正规军(九 ...
- windows类书的学习心得(转载)
原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千 ...
- Javascript的AMD规范
Javascript发展到今天,已经从一个小丑语言变成了不可替代的前端利器,已经脱离了低端的玩笑脚步,而转变为有规可依的强大语言. 本文主要讲述下如今被大力推广的AMD规范,为什么要AMD,什么场景是 ...
- 在WebForm中实现购物车思路
关于网站购物车的实现的思考 写在前面的话:刚来公司的的时候,老大安排了一个任务,企业站,但是需要实现购物车的功能,以前没做过,所有就向周围的人请教了一下如何实现购物车,自己也在网上搜了一下,有了些 ...
- javaScript 的AMD
转载:http://www.cnblogs.com/happyPawpaw/archive/2012/05/31/2528864.html#undefined 1. AMD的由来 前端技术虽然在不断发 ...
- windows类书的学习心得
原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千 ...
随机推荐
- [HAOI2011]Problem b 题解
题目大意: 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y)=k. 思路: 设f(k)为当1≤x≤n,1≤y≤m,且n≤m,使gcd(x,y)=k的数对 ...
- Jquery根据JSON生成Table
先说下背景 本人属于juqery小白中的极品小白.基本对于JS jquery这些不懂.用到时候基本百度下 拿过来改改OK. 上面这东西让我弄了三天.可能对于其他人来说 一天就搞定了 .看来还真得去学一 ...
- 【BZOJ2440】完全平方数(莫比乌斯函数,容斥原理)
题意:求第k个无平方因子数 k<=10^9 思路: 感觉这东西和欧拉筛差不多……活到老学到老,退役前学点新知识也是好的 为什么二分答案的上界是2*n?连LYY都证不出来 话说约大爷一年之前就已经 ...
- codevs1792 分解质因数
题目描述 Description 编写一个把整数N分解为质因数乘积的程序. 输入描述 Input Description 输入一个整数 N 输出描述 Output Description 输出 分解质 ...
- msp430入门学习00
在TI官网上找到MSP430的程序例程.数据手册.使用指南等文件.以MSP430F169为例,步骤如下: 1)进入ti官网:http://www.ti.com.cn/ 或者http://www.ti. ...
- Layui选项卡、进度条、面板、徽章、时间线、辅助元素
Layui选项卡.进度条.面板.徽章.时间线.辅助元素 Tab选项卡 - 页面元素 导航菜单可应用于头部和侧边,Tab选项卡提供多套风格,支持响应式,支持删除选项卡等功能.面包屑结构简单,支持自 ...
- redhat and centos 系统经常使用命令
查看cpu信息: more /proc/cpuinfo |grep "model name" 通常是至强系统 查看内存信息: grep MemTotal / ...
- 条款三:尽量用new和delete而不用malloc和free
malloc和free(及其变体)会产生问题的原因在于它们太简单:他们不知道构造函数和析构函数. 假设用两种方法给一个包含10个string对象的数组分配空间,一个用malloc,另一个用new: s ...
- Centos7最小安装下Install Clamav(2017-06-09最后更新)
If you are installing ClamAV for the first time, you have to add a new user and group to your system ...
- HDU2577 How to Type【DP】
题目链接: pid=2577">http://acm.hdu.edu.cn/showproblem.php? pid=2577 题目大意: 给你一个仅仅包括大写和小写字母的字符串,如今 ...