题目描述

恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右

手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。然后,让这 n 位大臣排

成一排,国王站在队伍的最前面。排好队后,所有的大臣都会获得国王奖赏的若干金币,每

位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右

手上的数,然后向下取整得到的结果。

国王不希望某一个大臣获得特别多的奖赏,所以他想请你帮他重新安排一下队伍的顺序,

使得获得奖赏最多的大臣,所获奖赏尽可能的少。注意,国王的位置始终在队伍的最前面。

输入输出格式

输入格式:

第一行包含一个整数 n,表示大臣的人数。

第二行包含两个整数 a和 b,之间用一个空格隔开,分别表示国王左手和右手上的整数。

接下来 n 行,每行包含两个整数 a 和 b,之间用一个空格隔开,分别表示每个大臣左手

和右手上的整数。

输出格式:

输出只有一行,包含一个整数,表示重新排列后的队伍中获奖赏最多的大臣所获得的

金币数。

输入输出样例

输入样例#1:

3
1 1
2 3
7 4
4 6 

输出样例#1:

2

说明

【输入输出样例说明】

按 1、2、3 号大臣这样排列队伍,获得奖赏最多的大臣所获得金币数为 2;

按 1、3、2 这样排列队伍,获得奖赏最多的大臣所获得金币数为 2;

按 2、1、3 这样排列队伍,获得奖赏最多的大臣所获得金币数为 2;

按 2、3、1 这样排列队伍,获得奖赏最多的大臣所获得金币数为 9;

按 3、1、2 这样排列队伍,获得奖赏最多的大臣所获得金币数为 2;

按 3、2、1 这样排列队伍,获得奖赏最多的大臣所获得金币数为 9。

因此,奖赏最多的大臣最少获得 2 个金币,答案输出 2。

【数据范围】

对于 20%的数据,有 1≤ n≤ 10,0 < a、b < 8;

对于 40%的数据,有 1≤ n≤20,0 < a、b < 8;

对于 60%的数据,有 1≤ n≤100;

对于 60%的数据,保证答案不超过 109;

对于 100%的数据,有 1 ≤ n ≤1,000,0 < a、b < 10000。

NOIP 2012 提高组 第一天 第二题

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

贪心+高精~

按每个大臣左右手a*b从大到小排序,再循环一遍求最大值,数据范围很大,需要用高精度~

(证明:http://blog.sina.com.cn/s/blog_c21807d9010155b0.html)

(第一次见到long double啊,从来没用过呢……)

(所以cin才是最好的选择吧?)

#include<iostream>
using namespace std;struct a{int lt,rt;
}a[1001];int main()
{int f[1001]={0},fs[1001]={0},k[1001];int m,n;cin>>n;for(int i=0;i<=n;i++){cin>>a[i].lt>>a[i].rt;k[i]=a[i].rt*a[i].lt;}for (int i=1; i<n; i++) { for (int j=1; j<=n-i; j++){ if (k[j]>k[j+1])  { int t=a[j].lt;a[j].lt=a[j+1].lt; a[j+1].lt=t; t=a[j].rt; a[j].rt=a[j+1].rt; a[j+1].rt=t; t=k[j];k[j]=k[j+1];k[j+1]=t; } } } f[0]=a[0].lt;long double s=0,t=a[0].lt;int si=0;for(int i=1;i<=n;i++){if(t/a[i].rt>s){s=t/a[i].rt;m=0;for(int j=999;j>=0;j--){m=10000*m+f[j];fs[j]=m/a[i].rt;m%=a[i].rt;}si=i;}t*=a[i].lt; m=0; for(int j=0;j<=999;j++) { m+=f[j]*a[i].lt; f[j]=m%10000; m/=10000; } }m=0;for (int j=999; j>=0; j--) { if (m==1) { if (fs[j]<10) cout<<"000"; else if (fs[j]<100) cout<<"00"; else if (fs[j]<1000) cout<<"0"; cout<<fs[j]; } else if(fs[j]>0){cout<<fs[j];m=1;} }return 0;
}

洛谷 [NOIP2012 D1T2] P1080 国王游戏相关推荐

  1. 做题记(4)P1080 国王游戏

    今天,做了洛谷上的P1080 国王游戏,题目如下: 题目描述 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整 ...

  2. 【题解】P1080 国王游戏(贪心+高精python天下第一)

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

  3. 洛谷P4301 [CQOI2013]新Nim游戏

    洛谷P4301 [CQOI2013]新Nim游戏 题目描述 传统的Nim游戏是这样的:有一些火柴堆,每堆都有若干根火柴(不同堆的火柴数量可以不同).两个游戏者轮流操作,每次可以选一个火柴堆拿走若干根火 ...

  4. 洛谷P2006 赵神牛的游戏

    洛谷P2006 赵神牛的游戏 ac代码: #include using namespace std; int main () { long long int k,m,n,s,a,b; cin>& ...

  5. 题解 洛谷 P4042 [AHOI2014/JSOI2014]骑士游戏

    洛谷P4042[AHOI2014/JSOI2014]骑士游戏\color{#00F}{洛谷\ P4042\ [AHOI2014/JSOI2014]骑士游戏}洛谷 P4042 [AHOI2014/JSO ...

  6. 洛谷 P1080 国王游戏

    这是一道贪心题,贪心的策略是将大臣们按左右手金币的乘积升序排列,具体证明过程可以参见洛谷大佬的题解,这里就不再赘述了. 因为本菜鸡之前没有接触过高精度运算,对C++的运算符重载也不太熟练,所以正好借此 ...

  7. 洛谷P1080 国王游戏(贪心)

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

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

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

  9. 洛谷:P1129 [ZJOI2007] 矩阵游戏(二分图最大匹配)

    洛谷:矩阵游戏 洛谷题解就挺好 目的是使得最终(1,1)(2,2)-(n,n)都有一个点 可以看作为,最终状态需要每 i 行和 i 列都存在一个匹配 建图方式:对于 i 行 j 列的1点,建一条 i ...

最新文章

  1. 七彩岁月【我与51CTO一“七”成长】
  2. maven项目的常用依赖
  3. 接口测试工具-Jmeter压力测试使用
  4. 深度学习框架YOLOv3的C++调用
  5. 关于activity和thread生命周期
  6. 很朴素的学习嵌入式系统的经验
  7. LeetCode 1182. 与目标颜色间的最短距离(二分查找/DP)
  8. view.post(Runnable)
  9. 华为诉争“鸿蒙HongMeng”商标再被驳回;比尔盖茨夫妇正式离婚;iOS 15“查找”新功能,关机也能用|极客头条...
  10. 物联网平台之争 巨头竞合并存
  11. 前后端分离登录验证功能实现案例
  12. 【杂谈】Solr的自动聚类carrot2和facet关系和比较
  13. 【心里效应】98 个著名的心理效应
  14. 新手玩荔枝派 f1c100s nano折腾笔记(四)
  15. orge terrain
  16. Hadoop集群能打开50070端口网页不能打开8088端口网页
  17. 喜欢你,三个星期了!
  18. Practice II 字符串
  19. 反游戏规则~触发5亿创设~引发3-6个跌停?
  20. iOS多级列表 - XQMultistageTableView

热门文章

  1. 复杂环境下落地Service Mesh的挑战与实践
  2. 6-7 Orthogonal Polynomials Approximation (40分)
  3. 《MongoDB入门教程》第08篇 比较运算符
  4. 无光驱情况下window XP系统安装盘使用nlite集成raid卡驱动
  5. 易语言内存不能为read错误解决方案和提高程序运行速度
  6. 大学计算机专业高考听力,05-《高考必刷卷 42套》云南师范大学附属中学2018届高考适应性月考(六)听力音频-喜马拉雅...
  7. mysql 大小限制_关于sql:MySQL:列大小限制
  8. java uuid jug实例(采用开源jug)
  9. 基于篇章结构的英文作文自动评分方法(学习笔记)
  10. 2023春节,蔚来高速免费换电累计达37万余次