[NOIP 2012]国王游戏 高精度+贪心
2015-11-03 21:07
288 查看
代码
#include <cstdio> #include <iostream> #include <cstring> #include <algorithm> using namespace std; typedef long long ll; const int maxn = 1000 + 2, Len = 4000 + 1, base = 10000; struct Holder{ int l,r; }p[100000]; int cmp(Holder a,Holder b){ return a.l*a.r<b.l*b.r; } struct Bign{ int len; int v[Len]; Bign(int r = 0) {for (len = 0; r > 0; r /= base) v[len++] = r % base;} Bign &operator = (const Bign &a){ memcpy(this, &a, sizeof(int) * (a.len + 1)); return *this; } bool operator < (const Bign &a){ if (len != a.len) return len < a.len; for (int i = len - 1; i >= 0; i--) if (v[i] != a.v[i]) return v[i] < a.v[i]; return false; } }temp,res,ans; ostream &operator << (ostream &out, const Bign &a){ printf("%d", a.len == 0 ? 0 : a.v[a.len - 1]); for (int i = a.len - 2; i >= 0; i--) printf("%04d", a.v[i]); return out; } Bign operator * (const Bign &a, const int &b){ Bign ans = 0; if (!a.len || !b) return ans; int carry = 0, i; for (i = 0; i < a.len || carry; i++){ if (i < a.len) carry += a.v[i] * b; ans.v[i] = carry % base; carry /= base; } ans.len = i; return ans; } Bign operator / (const Bign &a, const int &b){ Bign ans = a; int carry = 0; for (int i = ans.len - 1; i >= 0; i--){ ans.v[i] += carry * base; carry = ans.v[i] % b; ans.v[i] /= b; } while (!ans.v[ans.len - 1] && ans.len) ans.len--; return ans; } int n; int main() { scanf("%d",&n); scanf("%d%d",&p[0].l,&p[0].r); for(int i=1;i<=n;i++){ scanf("%d%d",&p[i].l,&p[i].r); } sort(p+1,p+1+n,cmp); res=p[0].l; for(int i=1;i<=n;i++){ temp=res/p[i].r; if(ans<temp){ ans=temp; } res=res*p[i].l; } cout<<ans; return 0; }
相关文章推荐
- HDOJ 1556 Color the ball(树状数组 & 线段树)
- SUMO使用教程(三)
- Codeforces Round #327 590B Chip 'n Dale Rescue Rangers(等效转换,二分)
- CATransform3D的m34使用
- Android之创建对话框
- HTML基础之<head>
- 一个简单的三子棋游戏(c语言实现)
- c++虚函数
- LeetCode 115: Distinct Subsequences
- Linux 监控一个目录的变更
- SUMO使用教程(二)
- OC Autorelease
- Python之os.walk()
- 9.文件和输入输出
- Android Studio Gradle说明
- 【转】C++箴言:理解typename的两个含义
- C++实现机制RTTI
- Axure学习笔记
- Ubuntu14.04下使用cuda-gdb进行调试
- 无线AP配置