第一篇博客啊……

由于我太弱了,还要去补不全的知识点准备参加人生第一次NOIp,所以第一篇博客就简短一点好了(偷懒就直说吧……)

洛谷P1080传送门

题意概括:

  有N对数ai和bi,以及两个数a0和b0  。现在,你可以将这N对数任意排列,记第i对数前所有a(包括a0)的乘积为si,则对于每对数有vi =floor(si/bi)。对于每种排列情况,记MX=max(vi )。求min(MX)。

数据范围:

  1 ≤ n ≤1,000,0 < a、b < 10000。

一些瞎BB(题解):

  这种题很明显不是让你列出所有情况(废话)。

  总体来看,求MAX的MIN是一个很大局观的问题,所以看到这种题目的时候,很弱的我只能想到贪心按某种东西把每一对数排个序,但是根本想不到按什么排序。其实是由于我没经验题刷少了……(什么其实,就是刷少了)从这道题来看,这种题目的套路基本上是,转化大局观为局部观,决策出某两个元素的先后顺序。

  估计看到这里,再思考一下,大部分大牛就知道这么写了(大牛还用来看你的题解??)。

  但是像我这样的小蒟蒻还是很难想到的……所以有了后面的继续瞎BB。考虑两个相邻元素i,j。我们现在的目标只是决策出他们的先后。假设i在前比j在前更优。整体上看,他们俩的先后只会改变vi 和vj  。

  i在前: vi=(si)/bi  vj=(si*ai)/bj 

  j在前: vj=(sj)/bj  vj=(sj*aj)/bi

   则max((si)/bi,(si*ai)/bj)<max((sj)/bj,(sj*aj)/bi)。显然,两次分别的si ,sj是相同的,且(si*ai)/bj>=(sj)/bj ,(sj*aj)/bi>=(si)/bi 。所以其实就是(si*ai)/bj <(sj*aj)/bi ,即ai*bi <aj*bj  也就是说,按a、b的乘积从小到大排序就好了。(PS:基于a、b的范围,要写高精度)

  然后可以很不负责地说这题我根本没写……所以没有代码并且可能有说错的地方,欢迎各位大佬指正!


NOIP2012 Day1 T2国王游戏 洛谷P1080的更多相关文章

  1. AC日记——国王游戏 洛谷 P1080

    国王游戏 思路: 贪心+高精: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 1005 struct Dat ...

  2. NOIP2012 DAY1 T2 国王游戏

    题目描述 恰逢 H国国庆,国王邀请n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排成一排,国王站在队伍的最前面 ...

  3. 【流水调度问题】【邻项交换对比】【Johnson法则】洛谷P1080国王游戏/P1248加工生产调度/P2123皇后游戏/P1541爬山

    前提说明,因为我比较菜,关于理论性的证明大部分是搬来其他大佬的,相应地方有注明. 我自己写的部分换颜色来便于区分. 邻项交换对比是求一定条件下的最优排序的思想(个人理解).这部分最近做了一些题,就一起 ...

  4. 【题解】洛谷P1080 [NOIP2012TG] 国王游戏(贪心+高精度)

    次元传送门::洛谷P1080 思路 我们模拟一下只有两个大臣的时候发现 当a1​∗b1​<a2​∗b2​是ans1<ans2 所以我们对所有大臣关于左右手之积进行排序 得到最多钱的大臣就是 ...

  5. [NOIP2012提高组]国王游戏

    题目:洛谷P1080.Vijos P1779.codevs1198. 题目大意:国王和每个大臣左.右手各写了一个数.规定每个大臣得到的金币数为他前面所有人左手的数字的乘积除以他自己右手的数(向下取整) ...

  6. 洛谷P1080 [NOIP2012提高组D1T2]国王游戏 [2017年5月计划 清北学堂51精英班Day1]

    P1080 国王游戏 题目描述 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右 手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排 ...

  7. 「洛谷P1080」「NOIP2012提高组」国王游戏 解题报告

    P1080 国王游戏 题目描述 恰逢 \(H\)国国庆,国王邀请\(n\)位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 \( ...

  8. 洛谷P1080 国王游戏 python解法 - 高精 贪心 排序

    洛谷的题目实在是裹脚布 还编的像童话 这题要 "使得获得奖赏最多的大臣,所获奖赏尽可能的少." 看了半天都觉得不像人话 总算理解后 简单说题目的意思就是 根据既定的运算规则 如何排 ...

  9. 【题解】洛谷 P1080 国王游戏

    目录 题目 思路 \(Code\) 题目 P1080 国王游戏 思路 贪心+高精度.按\(a \times b\)从小到大排序就可以了. \(Code\) #include<bits/stdc+ ...

随机推荐

  1. TTS 语音修复 ,缺少文件的,没注册类的

    完美运行 http://bbs.nga.cn/read.php?tid=13292628&rand=492 Win7系统TTS修复-采用原生Win7提取绿色修复 一键自动修复,控制面板里有语音 ...

  2. HDU 5279 YJC plays Minecraft(NTT+分治)

    题意 有 \(n\) 个岛屿,第 \(i\) 个岛屿上有一张 \(a_i\) 的完全图.其中第 \(i\) 张完全图的 \(a_i\) 号节点和 \(i+1\) 号岛屿的 \(1\) 号节点有边相连( ...

  3. jackson中@JsonProperty、@JsonIgnore等常用注解总结

    本文为博主原创,未经允许不得转载: 最近用的比较多,把json相关的知识点都总结一下,jackjson的注解使用比较频繁, jackson的maven依赖 <dependency> < ...

  4. C# 计算位置居中

    (item.Height / 2 - lab.Height / 2)

  5. POJ 3278 抓奶牛(BFS入门题)

    描述 农夫约翰已被告知逃亡牛的位置,并希望立即抓住她.他开始于一个点Ñ(0≤ Ñ ≤100,000)上的数线和牛是在点ķ(0≤ ķ上相同数目的线≤100,000).农夫约翰有两种交通方式:步行和传送. ...

  6. DAY15 模块

    一.模块 1.1 模块的定义:模块就是一系列功能的集合体 1.2 模块的四种存在方式: 1.使用python编写的.py文件(任一py文件都可以作为模块) 2.包:一堆py文件的集合体 3.使用C编写 ...

  7. springboot启动配置原理之三(事件监听机制)

    ApplicationContextInitializer public class HelloApplicationContextInitializer implements Application ...

  8. 【你不一定知晓的】C#取消异步操作

    [你不一定知晓的]C#取消异步操作 在.Net和C#中运行异步代码相当简单,因为我们有时候需要取消正在进行的异步操作,通过本文,可以掌握 通过CancellationToken取消任务(包括non-c ...

  9. CAM(Content Addressable Memory)介绍

    CAM是一种特殊的存储器.所谓CAM,即内容寻址存储器.CAM存储器在其每个存储单元都包含了一个内嵌的比较逻辑,写入CAM的数据会和其内部存储的每一个数据进行比较,并返回与端口数据相同的所有内部数据的 ...

  10. mysql 取年、月、日、时间

    select id, phone,time,year(time),month(time), DAY(time),TIME(time) from user where phone='xxxxxx' #分 ...