NOIP2012 Day1 T2国王游戏 洛谷P1080
第一篇博客啊……
由于我太弱了,还要去补不全的知识点准备参加人生第一次NOIp,所以第一篇博客就简短一点好了(偷懒就直说吧……)
题意概括:
有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的更多相关文章
- AC日记——国王游戏 洛谷 P1080
国王游戏 思路: 贪心+高精: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 1005 struct Dat ...
- NOIP2012 DAY1 T2 国王游戏
题目描述 恰逢 H国国庆,国王邀请n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排成一排,国王站在队伍的最前面 ...
- 【流水调度问题】【邻项交换对比】【Johnson法则】洛谷P1080国王游戏/P1248加工生产调度/P2123皇后游戏/P1541爬山
前提说明,因为我比较菜,关于理论性的证明大部分是搬来其他大佬的,相应地方有注明. 我自己写的部分换颜色来便于区分. 邻项交换对比是求一定条件下的最优排序的思想(个人理解).这部分最近做了一些题,就一起 ...
- 【题解】洛谷P1080 [NOIP2012TG] 国王游戏(贪心+高精度)
次元传送门::洛谷P1080 思路 我们模拟一下只有两个大臣的时候发现 当a1∗b1<a2∗b2是ans1<ans2 所以我们对所有大臣关于左右手之积进行排序 得到最多钱的大臣就是 ...
- [NOIP2012提高组]国王游戏
题目:洛谷P1080.Vijos P1779.codevs1198. 题目大意:国王和每个大臣左.右手各写了一个数.规定每个大臣得到的金币数为他前面所有人左手的数字的乘积除以他自己右手的数(向下取整) ...
- 洛谷P1080 [NOIP2012提高组D1T2]国王游戏 [2017年5月计划 清北学堂51精英班Day1]
P1080 国王游戏 题目描述 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右 手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排 ...
- 「洛谷P1080」「NOIP2012提高组」国王游戏 解题报告
P1080 国王游戏 题目描述 恰逢 \(H\)国国庆,国王邀请\(n\)位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 \( ...
- 洛谷P1080 国王游戏 python解法 - 高精 贪心 排序
洛谷的题目实在是裹脚布 还编的像童话 这题要 "使得获得奖赏最多的大臣,所获奖赏尽可能的少." 看了半天都觉得不像人话 总算理解后 简单说题目的意思就是 根据既定的运算规则 如何排 ...
- 【题解】洛谷 P1080 国王游戏
目录 题目 思路 \(Code\) 题目 P1080 国王游戏 思路 贪心+高精度.按\(a \times b\)从小到大排序就可以了. \(Code\) #include<bits/stdc+ ...
随机推荐
- 1_Linux概述
linux就是一套操作系统 //系统调用与内核如果能够参考硬件的功能函数并修改你的操作系统程序代码,那经过改版后的操作系统就能够在另一个硬件平台上面运行了,这个操作通常被称为"软件移植&qu ...
- Git Github的区别 & Pycharm使用GitHub
首先:git和github功能很强大,随着使用深入,我将随时填充,更新这篇文章,记录随时遇到的新的问题和感悟. 第一次知道github是看廖雪峰的课程,所谓版本管理,之前在辉煌科技用的是SVN,了解一 ...
- 如何插入谷歌地图并获取javascript api 秘钥--Google Maps API error: MissingKeyMapError
参考:https://blog.csdn.net/klsstt/article/details/51744866 Google Maps API error: MissingKeyMapError h ...
- 【文献07】基于MPC的WMR点镇定-极坐标系下和轨迹跟踪
参考: Kuhne F , Lages W , Silva J D . Point stabilization of mobile robots with nonlinear model predic ...
- ThinkPHP5.0完全开发手册 --技术文档
1.ThinkPHP5.0完全开发手册.chm 链接:https://pan.baidu.com/s/1199wK6q6O9IyOf5RU_-Xow 提取码:hnek 2.ThinkPHP5.0完全开 ...
- Mysql5.7出现this is incompatible with sql_mode=only_full_group_by
vi /etc/my.cnf #编辑mysql配置文件 在 [mysqld]和[mysql]下添加 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZE ...
- jquery获取选中值
1.获取一组radio被选中项的值:var item = $('input[name=items][checked]').val(); 2.获取select被选中项的文本 :var item = $( ...
- EOS使用
公司要玩区块链,听说EOS交易快,就弄来玩玩.弄了一天终于编译成功了. Scanning dependencies of target nodeos [%] Building CXX object p ...
- LeetCode(3):无重复字符的最长子串
Medium! 题目描述: 给定一个字符串,找出不含有重复字符的 最长子串 的长度. 示例: 给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ...
- vscode extensions
├─ .obsolete├─ .wlck├─ .wtid├─ abeyuhang.vscode-lesslint-0.0.1├─ abusaidm.html-snippets-0.2.1├─ adam ...