当前位置: 首页 > news >正文

CF2032E Balanced - Link

设对 \(i\)的操作次数为 \(v_i\) 则有 \(a_i+v_{i-1}+2\times v_i+v_{i+1}=a_{i+1}+v_i+2\times v_{i+1}+v_{i+2}\)
移项得 \((v_{i-1}+v_i)-(v_{i+1}+v_{i+2})=a_{i+1}+a_i\)
\(b_i=v_i+v_{i+1}\)\(b_{i-1}-b_{i+1}=a_{i+1}+a_i\)
可以强制 \(b_1=0\) 那么就可以求出 \(b_{1...n}\)
考虑求 \(v\)。发现 \(b\) 的偶项和刚好为 \(v_1+\sum_{i=1}^nv_i\),那么就可以求出 \(v\) 了。

注意

  1. \(b\) 的偶项和为奇数时,需要给所有 \(b_i\) 加上一个奇数。
  2. \(v\) 中有负数时,需要给所有 \(v_i\) 加上一个数,使祂们全部成为非负数。

代码

#include<bits/stdc++.h>
using namespace std;
namespace IO{template<typename T>inline void read(T&x){x=0;char c=getchar();bool f=0;while(!isdigit(c)) c=='-'?f=1:0,c=getchar();while(isdigit(c)) x=x*10+c-'0',c=getchar();f?x=-x:0;}template<typename T>inline void write(T x){if(x==0){putchar('0');return ;}x<0?x=-x,putchar('-'):0;short st[50],top=0;while(x) st[++top]=x%10,x/=10;while(top) putchar(st[top--]+'0');}inline void read(char&c){c=getchar();while(isspace(c)) c=getchar();}inline void write(char c){putchar(c);}inline void read(string&s){s.clear();char c;read(c);while(!isspace(c)&&~c) s+=c,c=getchar();}inline void write(string s){for(int i=0,len=s.size();i<len;i++) putchar(s[i]);}template<typename T>inline void write(T*x){while(*x) putchar(*(x++));}template<typename T,typename...T2> inline void read(T&x,T2&...y){read(x),read(y...);}template<typename T,typename...T2> inline void write(const T x,const T2...y){write(x),putchar(' '),write(y...),sizeof...(y)==1?putchar('\n'):0;}
}using namespace IO;
#define int __int128
const int maxn=200010;
int n,a[maxn],b[maxn],ans[maxn];
int js(int x){return x>n?x-n:x;}
void solve(){read(n);for(int i=1;i<=n;i++) read(a[i]);if(n==1){write("20111218");return ;}for(int i=js(3),lt=1;i!=1;lt=i,i=js(i+2)) b[i]=b[lt]-a[i]+a[js(lt+1)];int h=0,minn=0;for(int i=1;i<=n;i++) h+=b[i];if(h&1) for(int i=1;i<=n;i++) b[i]+=20120515,h+=20120515;h/=2;for(int i=2;i<=n;i+=2) h-=b[i];ans[1]=h;for(int i=2;i<=n;i++) ans[i]=b[i-1]-ans[i-1];minn=20111218;for(int i=1;i<=n;i++) minn=max(minn,-ans[i]);for(int i=1;i<=n;i++) write(ans[i]+minn),write(" ");
}
signed main(){int T;read(T);while(T--) solve(),write("\n");return 0;
}
http://www.jsqmd.com/news/183451/

相关文章:

  • Z源逆变器SVPWM调制的MATLAB仿真模型(提前导通,延迟关断)
  • 房地产展厅配备Sonic售楼小姐,24小时在线接待
  • 带负载转矩前馈补偿的永磁同步电机FOC 1.采用滑模负载转矩观测器,可快速准确观测到负载转矩
  • Vue 3 响应式进阶:掌握 toRef 与 toRefs,告别解构陷阱
  • 动作平滑处理开启后,Sonic生成视频更加自然流畅
  • uniapp+springboot高校竞赛报名管理小程序
  • Sonic数字人主题模板商店上线:一键更换数字人风格
  • 国际会议同传:VoxCPM-1.5-TTS-WEB-UI作为后备语音输出通道
  • uniapp+springboot安卓客户端室内定位APP_jrate小程序
  • 不可重入函数Non-Reentrant 可重入函数Reentrant
  • Sonic模型微调指南:inference_steps与dynamic_scale优化策略
  • 于springboot的公交线路查询系统(11638)
  • 免费可用的高质量语音合成模型VoxCPM-1.5上手记
  • HuggingFace镜像model卡配置说明文档中文翻译版
  • uniapp+springboot安卓的校园生活信息服务APP小程序
  • 基于SpringBoot的体育馆管理系统(11639)
  • 悬疑小说紧张氛围语音节奏控制技巧
  • VoxCPM-1.5-TTS模型镜像部署常见问题与解决方案汇总
  • 6.25Hz标记率优化下的语音合成效率提升方案
  • springboot美食推荐商城的设计与实现(11640)
  • 利用VoxCPM-1.5提升语音合成质量:44.1kHz采样率细节全保留
  • 从静态图像到动态嘴型同步——Sonic如何实现高效数字人生成?
  • Sonic数字人模型体积多大?轻量级仅几十MB
  • 【Week2_Day8】【软件测试学习记录与反思】【SQ连接查询的左右连接、自关联查询、整理思维导图、归纳遇到的问题、记录反思改进】
  • 从静态图像到动态嘴型同步——Sonic如何实现高效数字人生成?
  • 高校计算机课程改革:增加AIGC实际操作环节
  • Taskflow: C++复杂任务依赖图的并发任务调度库
  • 加拿大枫叶节祝福:双语语音体现国家多元特色
  • uniapp+springboot安卓的热门短视频播放平台小程序
  • UltraISO注册码最新版已过时?来试试更实用的AI模型镜像工具