http://codevs.cn/problem/1198/

推导一翻,排好序后,直接上高精度。

  1. #include<cstdio>
  2. #include<cstring>
  3. #include<algorithm>
  4. using namespace std;
  5. int in() {
  6. int k = 0, fh = 1; char c = getchar();
  7. for(; c < '0' || c > '9'; c = getchar())
  8. if (c == '-') fh = -1;
  9. for(; c >= '0' && c <= '9'; c = getchar())
  10. k = (k << 3) + (k << 1) + c - '0';
  11. return k * fh;
  12. }
  13.  
  14. struct node {
  15. int l, r, num;
  16. bool operator < (const node &A) const {
  17. return num < A.num;
  18. }
  19. } a[1003];
  20. int n, l, r;
  21.  
  22. struct Big {
  23. int num[50003], len;
  24. Big() {memset(num, 0, sizeof(num)); len = 0;}
  25. Big operator * (const int b) const {
  26. Big c;
  27. for(int i = 1; i <= len; ++i) {
  28. c.num[i] += num[i] * b;
  29. c.num[i + 1] += c.num[i] / 10;
  30. c.num[i] %= 10;
  31. }
  32. c.len = len;
  33. while (c.num[c.len + 1] != 0) {
  34. ++c.len;
  35. c.num[c.len + 1] = c.num[c.len] / 10;
  36. c.num[c.len] %= 10;
  37. }
  38. return c;
  39. }
  40. Big operator / (const int b) const {
  41. int y = 0;
  42. Big c;
  43. for(int i = len; i >= 1; --i) {
  44. y = y * 10 + num[i];
  45. c.num[i] = y / b;
  46. y = y % b;
  47. }
  48. c.len = len;
  49. while (c.num[c.len] == 0 && c.len > 1) --c.len;
  50. return c;
  51. }
  52. bool operator < (const Big &b) const {
  53. if (len != b.len) return len < b.len;
  54. for(int i = len; i >= 1; --i)
  55. if (num[i] != b.num[i])
  56. return num[i] < b.num[i];
  57. return false;
  58. }
  59. void print() {
  60. for(int i = len; i >= 1; --i)
  61. putchar('0' + num[i]);
  62. puts("");
  63. }
  64. };
  65.  
  66. int main() {
  67. n = in(); l = in(); r = in();
  68. for(int i = 1; i <= n; ++i)
  69. a[i].l = in(), a[i].r = in(), a[i].num = a[i].l * a[i].r;
  70. sort(a + 1, a + n + 1);
  71. Big t, ans, cal;
  72. while (l > 0) {
  73. t.num[++t.len] = l % 10;
  74. l /= 10;
  75. }
  76. ans.len = -1;
  77. for(int i = 1; i <= n; ++i) {
  78. cal = t / a[i].r;
  79. if (ans < cal) ans = cal;
  80. t = t * a[i].l;
  81. }
  82. ans.print();
  83. return 0;
  84. }

QwQ

【CodeVS 1198】【NOIP 2012】国王游戏的更多相关文章

  1. 【NOIP 2012 国王游戏】 贪心+高精度

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

  2. [NOIp 2012]国王游戏

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

  3. noip 2012 国王游戏(贪心+高精)

    /* 我是不会说我考试的时候想到了正解却把金币取大看成金币求和的.... 觉得只按左右手乘积排序不太对 有反例 也可能我反例放到这个题里是错的吧 按自己的理解排的序 就是各种讨论... 假设 第i个人 ...

  4. 【NOIP】提高组2012 国王游戏

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

  5. Codevs 1198 国王游戏 2012年NOIP全国联赛提高组

    1198 国王游戏 2012年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 恰逢 H 国国庆,国王邀 ...

  6. 国王游戏 2012年NOIP全国联赛提高组(贪心+高精)

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

  7. P1080 【NOIP 2012】 国王游戏[贪心+高精度]

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

  8. NOIP国王游戏

    #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #inc ...

  9. NOIP2012国王游戏

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

  10. [NOIP2012] 提高组 洛谷P1080 国王游戏

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

随机推荐

  1. Stanford机器学习笔记-10. 降维(Dimensionality Reduction)

    10. Dimensionality Reduction Content  10. Dimensionality Reduction 10.1 Motivation 10.1.1 Motivation ...

  2. (五)适配器模式-C++实现

    将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 该模式中有三种角色: 1.目标:是一个抽象类,它是客户想使用的接口 2.被适配 ...

  3. POJ 1556 The Doors【最短路+线段相交】

    思路:暴力判断每个点连成的线段是否被墙挡住,构建图.求最短路. 思路很简单,但是实现比较复杂,模版一定要可靠. #include<stdio.h> #include<string.h ...

  4. poj 2186 Popular Cows

    Popular Cows Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 29908   Accepted: 12131 De ...

  5. OC中的指针

    NSError *err = nil; NSError __strong **error = &err; //因为在oc中,通过* *err 创建的指针是用__strong修改的,所以要一致, ...

  6. 程序Bug---易错点

    只有当图像与HTML文档在同一目录时,才能用相对地址显示.

  7. zlog学习笔记(mdc)

    mdc.h #ifndef __zlog_mdc_h #define __zlog_mdc_h #include "zc_defs.h" typedef struct zlog_m ...

  8. text

    链接: 初识 TextKit 如何实现自己没实现过的需求之文本动画

  9. oracle小知识总结

    1,表列的五种约束 not null, unique,primary key, foreign key, check 2,权限分配 grant 权限 on 表 to 用户 3,表和视图的区别 视图是一 ...

  10. salt基本原理

            转载自: 来自:http://tech.mainwise.cn/?p=438     说明:salt是一个异构平台基础设置管理工具(虽然我们通常只用在Linux上),使用轻量级的通讯器 ...