Codeforces Round 961 【C. Squaring】

devtools/2024/9/22 21:11:44/

C. Squaring

题目大意:

给你一个长度为n的数组,求最少次操作,使得数组(非严格)递增。一次操作:Ai 变为 Ai^2。
不可能实现输出-1。

关键思路:

分子分母同时取对数,比值不变。
在这里插入图片描述

代码:

void solve()
{ans=0;cin>>n;for(int i=1;i<=n;i++)cin>>b[i],a[i]=0;for(int i=2;i<=n;i++){if(a[i-1]==0&&b[i-1]<=b[i])//没有操作过,可以原数组比较{continue;}if(b[i]==1)//前面肯定有比1大的数{cout<<"-1\n";return;}ll x=a[i-1];double A=log(1.0*b[i-1])/log(1.0*b[i]);ll y=ceil(x+log2(A));a[i]=max(0ll,y);  //不可以把数变小,所以不操作ans+=a[i];}cout<<ans<<"\n";
/*ll x=a[i-1];long double A=logl((long double)b[i-1])/logl((long double)b[i]);ll y=ceill(x+log2l(A));a[i]=max(0ll,y);  //不可以把数变小,所以不操作ans+=a[i];
}
*/

明年再学md或者latex,看情况。
纯纯不务正业,为了省时间思路就这样。


http://www.ppmy.cn/devtools/92587.html

相关文章

代码随想录算法训练营 | 贪心算法 part01

贪心的本质是选择每一阶段的局部最优&#xff0c;从而达到全局最优。 什么是局部最优&#xff0c;局部最优能否推出全局最优&#xff08;举反例 举不出来的时候就可以试试贪心&#xff09; 455.分发饼干 455.分发饼干 局部最优&#xff1a;大饼干就要优先分给胃口大的孩子&am…

.ps1文件执行报错,但是相同的代码直接复制到windows powershell里面能成功执行。

报错&#xff1a; “magick”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写&#xff0c;如果包括路径&#xff0c;请确保路径正确&#xff0c;然后再试一次。 所在位置 C:\Users\23121\Desktop\pic2mark.ps1:9 字符: 1 magick $inputFilePath $output…

Html实现全国省市区三级联动

目录 前言 1.全国省市区的Json数据 2.找到Json数据文件(在此博文绑定资源)之后&#xff0c;放到resource目录下。 3.通过类加载器加载资源文件&#xff0c;读取Json文件 3.1 创建JsonLoader类 3.2 注入JsonLoader实体&#xff0c;解析Json文件 4.构建前端Html页面 5.通过…

Qt QTableWidget 去除序号列

ui->tableWidget->verticalHeader()->setHidden(true);//垂直序列号&#xff08;表左侧&#xff09;ui.tableWidget->horizontalHeader()->setHidden(true);//水平序列号&#xff08;表上方&#xff09;删除后效果图&#xff1a;

nginx和php工具的使用

一、本地主机通过域名访问自己写的网页 1、开启phpstudy 2、找到phpstudy目录下的www文件夹&#xff0c;创建less01文件夹、index.html、web.php文件&#xff0c;进行配置&#xff0c;如下图&#xff1a; 3、重启一下phpstudy&#xff0c;然后访问网页 4、上面只能通过文件目录…

【信创】Linux如何增加与删除交换分区 _ 统信 _ 麒麟 _ 中科方德

原文链接&#xff1a;信创】Linux如何增加与删除交换分区 | 统信 | 麒麟 | 中科方德 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇关于在信创终端操作系统上如何增加与删除交换分区的文章。交换分区&#xff08;Swap&#xff09;在Linux系统中扮演着重要角色&…

UE基础 —— 计量单位

目录 默认计量单位 更改默认单位 可用单位 默认计量单位 计量单位 QuantityUnitDistance/LengthCentimeters (cm)MassKilograms (kg)TimeMinutes (min), Seconds (s)AnglesDegrees (deg)Speed/VelocityMeters per Second (m / s)TemperatureCelsius (C)ForceNewtons (N)Torq…

java基础学习笔记2(8.9)

String equals比较堆里值 字符串比较用str1.equals(str2)&#xff1b; 比较栈里的值 JDK7以后字符串常量池进入了堆里面。 在Java中&#xff0c;StringBuffer 和 StringBuilder 是用于创建可变字符串的类。它们提供了比 String 更高效的字符串操作&#xff0c;尤其是在需要…