【noip 2012】国王游戏 贪心+高精度
来源:互联网 发布:淘宝宝贝降权查询 编辑:程序博客网 时间:2024/05/17 02:18
哎,还好今天的高精度没有写挂,但是其实可以只用数组维护的,当年背的一个版,用到现在用习惯了
贪心证明:第i个大臣左右手写的是a,b第j个大臣左右手写的是x,y,i之前的左手分数为q,i->j之间为p那么现在最大分数是max(q/b,q*a*p/y) 化简以后:max(1/b,a*p/y)又因为是向下取整所以1/a==0,1一定小于x*p/y(至于1的情况 自己手写一下发现并不影响)同理交换之后 max(q/y,q*p*x/b)->max(1/y,p*x/b)->p*x/b即是比较min(p*x/b,a*p/y)->min(x/b,a/y)要求x/b<a/y -> x*y<a*b就是冲要条件,好了,剩下的就是高精度了,我直接写了一套版
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#define LL long long#define maxn 1010#define base 10000using namespace std;int n;struct node{int a,b;LL p;bool operator <(const node& b)const{return p<b.p;}}nod[maxn];struct Bigint{int c[2020],len;Bigint(){memset(c,0,sizeof(c));len=1;}void Zero(){while(c[len]==0&&len>1)len--;}Bigint Write(char* s){memset(c,0,sizeof(c));len=1;int k=1,ll=strlen(s);for(int i=ll-1;i>=0;i--){c[len]+=(s[i]-'0')*k;k*=10;if(k==base){k=1,len++;}}Zero();return *this;}void read(){char s[10020];scanf("%s",s);Write(s);}void Print(){Zero();printf("%d",c[len]);for(int i=len-1;i>=1;i--){printf("%04d",c[i]);}}bool operator >(Bigint& b){Zero();b.Zero();if(len!=b.len)return len>b.len;for(int i=len;i>=1;i--){if(c[i]!=b.c[i])return c[i]>b.c[i];}return false;}Bigint operator = (const int& b){memset(c,0,sizeof(c)),len=1;char s[10020];sprintf(s,"%d",b);Write(s);return *this;}Bigint operator *(const int & b){Bigint r;r.len=len+4;for(int i=1;i<=r.len;i++){r.c[i]+=c[i]*b;}for(int i=1;i<=r.len;i++){r.c[i+1]+=r.c[i]/base;r.c[i]%=base;}r.Zero();return r;}Bigint operator / (const int& b){Bigint r,k;k=*this;r.len=len+1;for(int i=len;i>=1;i--){r.c[i]=k.c[i]/b;if(i!=1)k.c[i-1]+=(k.c[i]%b*base);k.c[i]/=b;}r.Zero();return r;}};void solve(){Bigint now;Bigint ans;Bigint r;now=nod[0].a;for(int i=1;i<=n;i++){r=now/nod[i].b;if(r>ans)ans=r;now=now*nod[i].a;}ans.Print();}int main(){scanf("%d",&n);scanf("%d%d",&nod[0].a,&nod[0].b);for(int i=1;i<=n;i++)scanf("%d%d",&nod[i].a,&nod[i].b),nod[i].p=(LL)nod[i].a*nod[i].b;sort(nod+1,nod+1+n);solve();return 0;}/*31 12 37 44 6*/
0 0
- [NOIP 2012]国王游戏 高精度+贪心
- 【noip 2012】国王游戏 贪心+高精度
- 【noip】国王游戏 贪心 高精度
- NOIP 2012 国王游戏 贪心 高精度 (COGS 1263)
- NOIP 国王游戏 codevs1198 贪心+高精度
- codevs 1198 NOIP 2012 国王的游戏 高精度 解题报告
- 【NOIP 2012】 国王游戏
- noip 2012 国王游戏
- NOIP 2012 国王游戏
- NOIP 2012 国王游戏
- NOIP 2012 T2 国王游戏 (贪心+高精)
- 【贪心+高精度】NOIP2012D1T2国王游戏Codevs1198
- 洛谷P1080:国王游戏 (贪心+高精度)
- 【NOIP 2012提高】国王游戏
- 【jzoj3100】【NOIP2012提高组】【国王游戏】【贪心】【高精度】
- Noip2012 Day1 T2 国王游戏(贪心+高精度)
- NOIP提高组2012 国王游戏
- [T][5]NOIP 2012 国王游戏
- CI框架源码解析八之地址解析类文件URI.php
- Android加载Gif动画android-gif-drawable的使用
- CCF 201612-3 炉石传说 JAVA实现
- golang 线程与通道
- socket编程--客户端发送文件至服务端
- 【noip 2012】国王游戏 贪心+高精度
- Golang语言——垃圾回收
- golang xml解析
- Golang语言社区--全网游戏定制解决方案
- golang积累-接口指针与结构体指针
- golang 远程传输文件
- Storm入门简介
- 用Golang写一个搜索引擎(0xFF)
- Golang不使用MD5比较文件内容是否一致