P1080-国王游戏
啊啊啊,刚才已经写了一次了,但是Edge浏览器不知道为什么卡住了,难受。
好吧,其实是一道可做题,分析得到的贪心策略就是就是将a * b小的放在前面(其他的懒得说了),主要还是要会高精度,要不然写不出来。
AC代码(借鉴题解大佬的,我自己写不出来,主要是高精度不太会):

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;const int MAXN=20010;
struct node
{int a,b,a_b;
}a[MAXN];
int n;
int tmp[MAXN],ans[MAXN],add[MAXN];int read()
{int ans=0; int sign=1;char ch=getchar();while((ch>'9' || ch<'0') && ch!='-') ch=getchar();if(ch=='-') sign=-1,ch=getchar();while(ch>='0' && ch<='9') ans=ans*10+ch-'0',ch=getchar();return ans*sign;
}
bool cmp(node x,node y)
{return x.a_b<y.a_b;
}
void times(int x)
{memset(add,0,sizeof(add));for(int i=1;i<=tmp[0];i++){tmp[i]*=x;add[i+1]+=tmp[i]/10;tmp[i]%=10;}for(int i=1;i<=tmp[0]+4;i++){tmp[i]+=add[i];tmp[i+1]+=tmp[i]/10;tmp[i]%=10;if(i>tmp[0] && tmp[i]!=0)tmp[0]=i;}
}
void divition(int x)
{memset(add,0,sizeof(add));int p=0;for(int i=tmp[0];i>0;i--){p=p*10+tmp[i];add[i]=p/x;p%=x;if(add[0]==0 && add[i]!=0){add[0]=i;}}
}
bool compare()
{if(add[0]>ans[0]) return true;if(add[0]<ans[0]) return false;for(int i=ans[0];i>0;i--){if(add[i]>ans[i]) return true;if(add[i]<ans[i]) return false;}return false;
}
void copy()
{memset(ans,0,sizeof(ans));for(int i=add[0];i>=0;i--)ans[i]=add[i];
}
int main()
{memset(a,0,sizeof(a));scanf("%d",&n);for(int i=0;i<=n;i++){scanf("%d",&a[i].a); scanf("%d",&a[i].b);a[i].a_b=a[i].a*a[i].b;}sort(a+1,a+n+1,cmp);memset(tmp,0,sizeof(tmp));tmp[0]=1; tmp[1]=1;for(int i=1;i<=n;i++){times(a[i-1].a);divition(a[i].b);if(compare()){copy();}}for(int i=ans[0];i>0;i--){printf("%d",ans[i]);}return 0;
}

洛谷P1080-国王游戏-贪心+高精度相关推荐

  1. 洛谷P1080 国王游戏 贪心+高精度

    https://www.luogu.org/problem/P1080 题目描述 恰逢 HH H国国庆,国王邀请n nn 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王 ...

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

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

  3. 洛谷 P1080 国王游戏

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

  4. P1080 国王游戏(贪心+高精度乘除及大数比较)

    https://www.luogu.org/problemnew/show/P1080 题目描述 恰逢 H 国国庆,国王邀请 n位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数 ...

  5. 洛谷P1080 国王游戏

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

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

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

  7. NOIP 提高组 2012 / 洛谷P1080 国王游戏 题解

    题面: 略 简易题解: 假设第iii位大臣左手为LiL_{i}Li​, 右手的数为R_{i} 并且我们有两位大臣iii,jjj,考虑他们的相对位置 (PPP 是 iii , jjj 之前的左手数值累乘 ...

  8. CH - 0701 国王游戏(贪心+高精度运算)

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

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

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

最新文章

  1. Mongodb异常关闭重启失败解决
  2. mac安装完mysql后关机特别慢_解决Mac升级到10.12后关机很慢的问题
  3. 互联网晚报 | 10月23日 星期六 | 恒大宣布全面实施现楼销售;华为开发者大会2021开幕;家乐福中国首家会员店正式开业...
  4. 数字图像处理(作业四)——边缘表达
  5. 50-00-010-配置-kylin-2.6.0官网配置
  6. 10款主流的软件测试工具,你用过吗?
  7. 活着,总有你看不惯的人,也有看不惯你的人.
  8. 根号n向下取整的c语言编程,【向上取整/向下取整】C语言向上或向下取整 函数...
  9. selenium chromedriver 下载地址
  10. 【java复习笔记】总目录
  11. Flutter 判断横竖屏(含尺寸、方向改变时触发)
  12. vue播放flv视频流
  13. 2022年新型智慧城市整体规划建设方案
  14. ASP.NET MVC form表单提交
  15. r中gglot怎么组合多张图_怎样组合多张ggplot2图片
  16. win10 家庭版使用远程桌面:win系统打开端口 + RDP Wrapper使用
  17. 【Vue-仿照element-ui自己动手封装ui组件】—— alert、confirm 弹窗
  18. 货郎担问题(TSP问题)
  19. win10便签常驻桌面_超实用操作秘籍,小电教你玩转Win10系统功能!(下)
  20. 2017蓝桥杯java本科模拟赛

热门文章

  1. 类的无参方法和Doc注释
  2. Cesium调用Geoserver发布的 WMS、WFS服务
  3. win10 hyper-v 虚拟机ping不通宿主机问题
  4. handsontable 方法汇总
  5. display:none;与visibility:hidden;的区别
  6. python小甲鱼练习题答案_小甲鱼Python第 013讲元组:戴上了枷锁的列表 | 课后测试题及参考答案...
  7. winfrom软件开发汽车测试_ETci — 全自动软件测试调度(持续集成)平台
  8. python循环for不从零开始_Python-多处理-巨大的for循环
  9. android studio闪退代码不报错_代码不报错,不代表真的没错
  10. 虚幻4毛发系统_虚幻引擎复活!苹果与Epic对决,有哪些游戏险些中枪?