题解:CF1995C Squaring
题意
给定序列
分析
因为
在有解的情况下,假设对
此时
因为单调不降,且序列中所有元素均为正数,所以满足:
所以
注意
显然第一位不操作,故
逐项处理即可。
答案就是
Code
#include<bits/stdc++.h> using namespace std; #define maxn 200005 #define eps 1e-8 int a[maxn]; void solve() { int64_t n, ans=0; cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; int la=0; for(int i=2;i<=n;i++) { if(a[i]==1&&a[i-1]!=1) return cout<<-1<<'\n', void(); la=max((int)ceil(la+log2(log2(a[i-1]))-log2(log2(a[i]))-eps), 0); ans+=la; } cout<<ans<<'\n'; } signed main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int t; cin>>t; while(t--) solve(); }
本文作者:Jimmy-LEEE
本文链接:https://www.cnblogs.com/redacted-area/p/18379559
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步