【洛谷P1080】国王游戏

news/2025/1/17 15:56:03/文章来源:https://www.cnblogs.com/namelessstory/p/18677179

今天写了洛谷的P1080
没错
一道贪心题
其实邻项交换在lyd《算法竞赛进阶指南》里读到过了
推导就不说了 跟丘砖逆序对那章有点神似(?
但是写该死的高精还是花了好久
看代码吧
高精的题目看来得多练 不然上考场老是出事

#include<bits/stdc++.h>
#define ll long long
using namespace std;
struct node{int l,r;
};
node q[1005];
int n,sx,sy,len,f,maxxlen;
int a[10005],tem[10005],fa[10005],maxx[10005];//这里s和a解出来都是反的sx 用于乘法的简便 而fa才是真正的sx 用于除法的简便
char s[10005];
bool cmp(node x,node y){if(x.l*x.r==y.l*y.r) return x.r<y.r;else return x.l*x.r<y.l*y.r;
}
void mult(int a[],int b){//高精乘低精的模板题memset(tem,0,sizeof(tem));for(int i=1;i<=len;i++) tem[i]=a[i]*b;for(int i=1;i<=len;i++){if(tem[i]/10){tem[i+1]+=tem[i]/10;tem[i]%=10;}while(tem[len+1]) len++;while(tem[len]/10){tem[len+1]+=tem[len]/10;tem[len]%=10;len++;}//这堆要放在括号里面 这样好像比较严谨(?) 反正模版也是拿来背的}for(int i=1;i<=len;i++) a[i]=tem[i];
}
void divv(int a[],int b){//高精除低精以及两个高精数的比较memset(tem,0,sizeof(tem));int x=0;for(int i=1;i<=len;i++){tem[i]=(x*10+a[i])/b;x=(x*10+a[i])%b;}//正常高精除低精的除法int pd=0;for(int i=1;i<=len;i++){if(tem[i]){pd=1;f=i-1;break;}}//去除前导零if(pd){for(int i=f+1;i<=len;i++){if(len-f<maxxlen){break;}if(len-f>maxxlen){for(int j=f+1;j<=len;j++){maxx[j]=tem[j];}maxxlen=len-f;break;}if(len-f==maxxlen&&tem[i]>maxx[i]){for(int j=f+1;j<=len;j++){maxx[j]=tem[j];}maxxlen=len-f;break;}if(len-f==maxxlen&&tem[i]<maxx[i]){break;}}}//比较maxx和tem的大小
}
int main(){scanf("%d",&n);scanf("%d%d",&sx,&sy);for(int i=1;i<=n;i++){scanf("%d%d",&q[i].l,&q[i].r);}sort(q+1,q+1+n,cmp);for(int i=0;sx;i++){s[i]=sx%10+'0';sx/=10;}len=strlen(s);for(int i=1;i<=len;i++) a[i]=s[i-1]-'0';for(int i=1;i<=len;i++) fa[i]=s[len-i]-'0';for(int i=1;i<=n;i++){divv(fa,q[i].r);mult(a,q[i].l);//这里乘除的次序要注意一下for(int j=1;j<=len;j++) fa[j]=a[len+1-j];}int pd=0;for(int i=f+1;i<=maxxlen+f;i++){if(maxx[i]){pd=1;break;}}if(pd==0){cout<<0;system("pause");return 0;}//如果最后结果是0的话得特判 不然下面输出不了for(int i=f+1;i<=maxxlen+f;i++) cout<<maxx[i];system("pause");return 0;
}

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/870814.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多光谱火焰识别摄像机

多光谱火焰识别摄像机是一种别摄像机具有以下几个显著优势:具有高度智能化技术的设备,能够. 更高的准确性:多光谱技术可以同时观测不同的火焰特征,从而准确、快速地检测火灾并定位火焰提高了火焰检测的准确性。不同物质燃烧时产生的光谱特征是不同的的位置和辐射强度。这种…

阿里二面和面试官争论Spring程序配置优先级

0 前言 一般用application.yml实现Spring Boot应用参数配置。但Spring配置有优先级,避免重复配置项的覆盖,须清晰优先级。 Spring通过Environment抽象出:Profile:规定场景。定义诸如dev、test、prod等环境 Property:PropertySources,各种配置源。一个环境中可能有多个配置…

yappi,Python性能分析库

yappi是为Python设计的线程感知型性能分析器,不仅支持CPU时间分析,还能够准确追踪线程级别的性能问题。 安装pip install yappi -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com基本用法import yappi import time import threadingdef func1()…

HTML4、HTML5 和 HTML6 之间的主要区别对比,以表格形式展示:

HTML4、HTML5 和 HTML6 之间的主要区别对比,以表格形式展示:特性 / 版本 HTML4 HTML5 HTML6 (预期)发布年份 1999 2014 尚未发布(预计未来发布)文档类型声明 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd…

Jenkins - 分布式构建

1 - 简介 Jenkins支持分布式多节点(Master-Slave)运行模式。将安装Jenkins的主机作为Master节点,然后通过界面配置(或远端启动服务)来添加Slave节点。在这种部署结构下,Master通常只充当管理者的角色,负责任务的调度,slave节点的管理,任务状态的收集等工作,具体的构建任…

Jenkins - 安装并启动Jenkins

1 - 关于Jenkins 构建流水线(build pipeline)工具Jenkins可以轻松地定义和管理各种各样的操作(构建、测试等),并将这些操作像管道pipe一样自由地进行组合,从而自动、流畅地执行一系列处理。将操作以项目project为单位整合并运行,操作简洁 消除手工操作,安全可靠 保留执…

Jenkins - 初识

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 通常企业都会将持续集成和持续交付的过程标准化一个单独的生态系统,将涉及的特定工具标…

10分钟搞懂大模型备案

大模型备案作为合规化运营的重要资质,办理难度大,申报周期长。为了方便大家快速弄懂大模型备案,我将大量涉及文件和繁杂的流程进行了精简和总结,力求让大家能快速理解重点。一、申报材料 大模型备案主要涉及语料安全评估、模型安全评估、安全措施评估三部分,主要申报材料如…

视频为什么会糊(二)?B站的码率变化

原文链接:https://tingxuanr.github.io/note/视频为什么会糊二b站的码率变化/ 摘要:流媒体平台(不只B站,所有流媒体都在干,画质最差的还得是优爱腾三家)为了节约成本,不断的降低自家视频的码率。很多所谓的4k、蓝光清晰度还不如六七年前的,纯粹是自欺欺人。上一篇对比 …

爬取二手房案例--parsel教学篇(CSS选择器)

本文通过一个爬取二手房的案例,来分享另外一种解析数据的方式:解析神器python第三方库parsel库。之所以叫他解析神奇,是因为它支持三种解析方式。 可以通过Xpath,CSS选择器和正则表达式来提取HTML或XML文档中的数据。@目录前言导航parsel的使用安装parsel创建Selector对象解…

duckX 读写word,替换word中内容的整理

一、库编译 1.下载地址:https://github.com/amiremohamadi/DuckX 2. 使用git 下载: git clone https://github.com/amiremohamadi/DuckX 3.编译 1.打开代码所在目录 2.创建生成目录build 3.依次点击 config generate 4. 打开项目,选择编译库的种类 生成库位置二、使用 C++读…

OpenAI 宕机思考丨Kubernetes 复杂度带来的服务发现系统的风险和应对措施

本文以社区主流服务发现系统 Nacos 为例,从可靠性、可伸缩性、高性能、可维护性等 4 个方面探讨如何提升 Kubernetes 中微服务应用的稳定性。作者:王建伟(正己) 12 月 11 日,OpenAI 旗下 AI 聊天机器人平台 ChatGPT、视频生成工具 Sora 及其面向开发人员的 API 自太平洋时…