【题目链接】

点击打开链接

【算法】

按ai * bi升序排序,贪心即可

【代码】

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define MAXN 1010
  4. #define MAXL 10000
  5.  
  6. struct info {
  7. int l,r;
  8. } a[MAXN];
  9. int i,n;
  10. struct INT {
  11. int len;
  12. int num[MAXL];
  13. } sum,ans,val;
  14.  
  15. template <typename T> inline void read(T &x) {
  16. int f = ; x = ;
  17. char c = getchar();
  18. for (; !isdigit(c); c = getchar()) { if (c == '-') f = -f; }
  19. for (; isdigit(c); c = getchar()) x = (x << ) + (x << ) + c - '';
  20. x *= f;
  21. }
  22. template <typename T> inline void write(T x) {
  23. if (x < ) { putchar('-'); x = -x; }
  24. if (x > ) write(x/);
  25. putchar(x%+'');
  26. }
  27. template <typename T> inline void writeln(T x) {
  28. write(x);
  29. puts("");
  30. }
  31. inline bool cmp(info a,info b) { return a.l * a.r < b.l * b.r; }
  32. inline void multipy(INT &x,int y) {
  33. int i;
  34. for (i = ; i < x.len; i++) x.num[i] *= y;
  35. for (i = ; i < x.len; i++) {
  36. if (x.num[i] >= ) {
  37. x.num[i+] += x.num[i] / ;
  38. x.num[i] %= ;
  39. }
  40. }
  41. while (x.num[x.len]) {
  42. if (x.num[x.len] >= ) {
  43. x.num[x.len+] += x.num[x.len] / ;
  44. x.num[x.len] %= ;
  45. }
  46. x.len++;
  47. }
  48. }
  49. inline INT divide(INT x,int y) {
  50. int i,t=;
  51. static INT ret;
  52. ret.len = ;
  53. for (i = x.len - ; i >= ; i--) {
  54. t = t * + x.num[i];
  55. ret.num[ret.len++] = t / y;
  56. t %= y;
  57. }
  58. reverse(ret.num,ret.num+ret.len);
  59. while (ret.num[ret.len-] == && ret.len > ) ret.len--;
  60. return ret;
  61. }
  62. inline bool comp(INT x,INT y) {
  63. int i;
  64. if (x.len < y.len) return true;
  65. if (y.len < x.len) return false;
  66. for (i = x.len - ; i >= ; i--) {
  67. if (x.num[i] < y.num[i]) return true;
  68. if (y.num[i] > x.num[i]) return false;
  69. }
  70. return false;
  71. }
  72. inline void print(INT x) {
  73. int i;
  74. for (i = x.len - ; i >= ; i--) write(x.num[i]);
  75. puts("");
  76. }
  77.  
  78. int main() {
  79.  
  80. read(n);
  81. read(a[].l); read(a[].r);
  82. for (i = ; i <= n; i++) {
  83. read(a[i].l);
  84. read(a[i].r);
  85. }
  86. sort(a+,a+n+,cmp);
  87. sum.len = ; sum.num[] = ;
  88.  
  89. for (i = ; i <= n; i++) {
  90. multipy(sum,a[i-].l);
  91. val = divide(sum,a[i].r);
  92. if (comp(ans,val)) ans = val;
  93. }
  94. print(ans);
  95.  
  96. return ;
  97.  
  98. }

【NOIP2012】 国王游戏的更多相关文章

  1. 继续写高精!noip2012国王游戏。。。

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

  2. NOIP2012 国王游戏

    2国王游戏 (game.cpp/c/pas) [问题描述] 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数 ...

  3. [noip2012]国王游戏<贪心+高精度>

    题目链接: https://vijos.org/p/1779 https://www.luogu.org/problem/show?pid=1080 http://codevs.cn/problem/ ...

  4. NOIP2012国王游戏

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

  5. NOIP2012国王游戏(60分题解)

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

  6. [NOIP2012]国王游戏 题解

    题目大意: n个人排成一排,排头固定,其他可以变.每一个人左右手都有一个整数,一个人的分数为他所有前面的人左手上的数的乘积除以他右手上的数(向下取整),求在整列中最大分数的最小值. 思路: 首先,一切 ...

  7. [NOIp2012] 国王游戏(排序 + 贪心 + 高精度)

    题意 给你两个长为 \(n+1\) 的数组 \(a,b\) ,你需要定义一个顺序 \(p\) (\(p_0\) 永远为 \(0\)) 能够最小化 \[ \max_{i=1}^{n} \frac{\pr ...

  8. 洛谷P1080(NOIP2012)国王游戏——贪心排序与高精度

    题目:https://www.luogu.org/problemnew/show/P1080 排序方法的确定,只需任取两个人,通过比较与推导,可以得出ai*bi小的人排在前面: 高精度写的时候犯了些细 ...

  9. Luogu P1080 [NOIP2012]国王游戏

    题目 按\(a_i*b_i\)升序排序即可. 证明考虑交换法. 对于排序后相邻的两个人\(i,j(a_ib_i\le a_jb_j)\),设前面的总的积为\(s\),则当前答案为\(\max(\fra ...

  10. Luogu 1080 【NOIP2012】国王游戏 (贪心,高精度)

    Luogu 1080 [NOIP2012]国王游戏 (贪心,高精度) Description 恰逢H国国庆,国王邀请n位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己 ...

随机推荐

  1. VMware虚拟机下安装hadoop1.x

    这是Hadoop学习全程记录第1篇,在这篇里我将介绍一下如何在Linux下安装Hadoop1.x. 先说明一下我的开发环境: 虚拟机:VMware8.0: 操作系统:CentOS6.4: 版本:jdk ...

  2. (25)python urllib库

    urllib包包含4个模块,在python3里urllib导入要用包名加模块名的方式. 1.urllib.request 该模块主要用于打开HTTP协议的URL import urllib.reque ...

  3. ZOJ - 4020 Traffic Light (BFS)

    [传送门]http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4020 [题目大意]从起点(sx, sy)出发,要到达(ex , ...

  4. 安装配置JDK+Eclipse+Maven、Eclipse里新建Maven Project以及HDFS命令和Java API-课堂内容

    步骤:1.安装JDK→2.安装Eclipse→3.安装Maven→4. Eclipse里配置Maven (下载Windows版本,在Windows里安装使用.) 1.安装配置JDK ①官网下载Java ...

  5. mysqldump 把数据库备份到异地的服务器

    原文:http://www.open-open.com/code/view/1420121471484 这个方法可以把通过mysqldump 把本地数据库备份到远端主机, 中间数据的传输通过 ssh ...

  6. 公司hadoop客户端试用

    今天用了一下公司的hadoop客户端,从外面下载的客户端不能用,只能用这个wiki里面提供的:link 装在了 tc-cm-201511novam12x12n0.tc 目录 /home/work/vi ...

  7. 【Todo】Java类型转换总结

    参考 http://www.cnblogs.com/lwbqqyumidi/p/3700164.html 这篇文章也可以对照着看:http://www.360doc.com/content/10/09 ...

  8. 【剑指offer】异或去重

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/27568975 这篇文章没有代码.介绍的是纯理论的思路. 异或是一种基于二进制的位运算,用符 ...

  9. JSP简明教程:汇总

    原创JSP教程,简洁明了,不含废话. JSP简明教程(一):JSP简单介绍 JSP简明教程(二):JSP基本的语法 JSP简明教程(三):JSP隐含对象 JSP简明教程(四):EL表达式语言.Java ...

  10. VirtualBox中使用双网卡实现CentOS既能上网(校园网)也能使用SSHclient

    近期在虚拟机中使用linux操作系统,之前使用NAT方式上网,能够畅通无阻.可是使用SSHclient连接linux虚拟机就必须为其指定固定的IP地址.依照网上的配置方法使用桥接方式,这种方式是能够的 ...