[gym102832L][CCPC2020 长春站 L]Coordinate Paper

2024-03-16 23:08

本文主要是介绍[gym102832L][CCPC2020 长春站 L]Coordinate Paper,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Coordinate Paper

题解

很简单的一道构造题。

我们发现,相邻两个数可以转化成 a i + 1 ≡ a i + 1 ( m o d k + 1 ) a_{i}+1 \equiv a_{i+1}(mod\, k+1) ai+1ai+1(modk+1)的关系。
所以我们可以考虑先构造出一组符合要求的最小解,对于可以向上加的点加上 k + 1 k+1 k+1去构造解,使得这组解得总和与 s s s n n n的余数一样。
之后我们可以通过整体的加减得到一组和为 s s s的解。
构造一组最小的解可以通过 a i = ( i − 1 ) % ( k + 1 ) a_{i}=(i-1)\%(k+1) ai=(i1)%(k+1)的方法得到。
对于一组合法的解,如果它两边的数的值都比它大,它就可以加上 k + 1 k+1 k+1,得到另外一组合法的解。
我们可以通过这种方法去执行不超过 n n n次操作,如果不能构造出一组与 s s s n n n值一样的解,就说明我们永远也构造不出解。
因为最后构造出的与 s s s n n n值一样的解可能大于 s s s,这个时候会涉及到减法,为尽可能让所有数的值都不小于0,我们之前给数加上 k + 1 k+1 k+1时应当选择最小的一个数去给它加,这样可以保证我们整个数列的最小值一直都在提高,竟可能地不会出现小于0的情况。

时间复杂度 O ( n l o g n ) O\left(nlog\,n\right) O(nlogn)

源码

#include<cstdio>
#include<cmath>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<set>
using namespace std;
#define MAXN 100005
#define lowbit(x) (x&-x)
#define reg register
typedef long long LL;
#define int LL
const int INF=0x7f7f7f7f;
typedef unsigned long long uLL;
typedef pair<LL,LL> pii;
template<typename _T>
_T Fabs(_T x){return x<0?-x:x;}
template<typename _T>
void read(_T &x){_T f=1;x=0;char s=getchar();while(s>'9'||s<'0'){if(s=='-')f=-1;s=getchar();}while('0'<=s&&s<='9'){x=(x<<3)+(x<<1)+(s^48);s=getchar();}x*=f;
}
LL n,k,s,a[MAXN],sum;
bool vis[MAXN];
struct ming{LL id,val;bool friend operator < (const ming &x,const ming &y){return x.val>y.val;}
};
priority_queue<ming> q;
signed main(){read(n);read(k);read(s);a[1]=0;if(n==1){printf("%lld\n",s);return 0;}for(int i=2;i<=n;i++)a[i]=(a[i-1]+1LL)%(k+1LL),sum+=a[i];a[n+1]=INF; if(a[1]<a[2])q.push((ming){1,a[1]}),vis[1]=1;for(int i=2;i<=n;i++)if(a[i]<a[i-1]&&a[i+1]>a[i])q.push((ming){i,a[i]}),vis[i]=1;if(sum>s){puts("-1");return 0;}int tim=0;while(!q.empty()&&((s-sum)%n)){int u=q.top().id;q.pop();vis[u]=0;a[u]+=k+1LL;sum+=k+1LL;if(u<n&&a[u+1]<a[u+2]&&a[u+1]<a[u]&&!vis[u+1])q.push((ming){u+1,a[u+1]}),vis[u+1]=1;if(u>1&&a[u-1]<a[u-2]&&a[u-1]<a[u]&&!vis[u-1])q.push((ming){u-1,a[u-1]}),vis[u-1]=1; if(q.empty()&&a[1]<a[2])q.push((ming){1,a[1]});tim++;if(tim>n)break;}if(sum%n!=s%n){puts("-1");return 0;}LL tmp=(s-sum)/n;for(int i=1;i<=n;i++)a[i]+=tmp;for(int i=1;i<=n;i++)if(a[i]<0){puts("-1");return 0;}for(int i=2;i<=n;i++)if(a[i]!=a[i-1]-k&&a[i]!=a[i-1]+1LL){puts("-1");return 0;}for(int i=1;i<=n;i++)printf("%lld ",a[i]);puts("");return 0;
}

谢谢!!!

这篇关于[gym102832L][CCPC2020 长春站 L]Coordinate Paper的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/817028

相关文章

15年亚洲区长春站赛后总结

刷题打比赛的日子才叫青春   今年和ljy、lsj组队去长春站。这支队伍是我很放心的一支队伍,ljy可以做数学题和复杂思维题,lsj思维缜密可以和ljy对思路,我负责手速狗+模板暴力流。 有了去年两场亚洲区的经验,心态有了很大变化,也深知赛场上风云莫测,不至最后一分钟,仍未分胜负。开场的F题卡了很久,WA了很多发,这种复杂思维题丢给ljy和lsj搞了。我去开L题,给LJY说完题意后,他给

【TJU】2944 Mussy Paper 最大权闭合子图

传送门:【TJU】2944 Mussy Paper 题目分析:最大权闭合子图模板题。。没啥好说的。。。 PS:置换群的轨道长度的证明迟迟没看懂。。TUT。。十分不开心就来写水题了 代码如下: #include <cstdio>#include <cstring>#include <algorithm>using namespace std ;#define R

RAG Paper List - 检索增强生成论文汇总(2)

RAG Paper List - 检索增强生成论文汇总(2) 论文参考:Retrieval-Augmented Generation for AI-Generated Content: A Survey 摘要:模型算法的进步、基础模型的增长以及对高质量数据集的访问推动了人工智能生成内容 (AIGC) 的发展。尽管取得了显著的成功,但 AIGC 仍然面临诸如更新知识、处理长尾数据、减少数据泄漏

Paper Note-MAD-GAN:基于生成对抗网络的时间序列多变量异常检测

原文标题:MAD-GAN: Multivariate Anomaly Detection for Time Series Data with Generative Adversarial Networks 原文作者:Dan Li , Dacheng Chen , Lei Shi , Baihong Jin , Jonathan Goh , and See-Kiong Ng 原文来源:2019I

CV-Paper-增量学习-Large Scale Incremental Learning

目录 0 简介1 什么是偏差2 网络3 loss4 偏差矫正层 0 简介 就简单的说明一下好了,首先是使用蒸馏学习,然后再利用验证集来学习一个简单的线性变换 ax + b 来减少偏差。 这里是把验证集也拿过来训练了,虽然只是学习一个简单的线性变换,因为这个线性变换只有两个参数,所以需要的数据量非常少,虽然这个变换很简单,但是非常有效的提高精度。 文章中说的偏差指的是增量学习

图形编辑器基于Paper.js教程03:认识Paper.js中的所有类

先来认一下Paper的资源对象,小弟有哪些,有个整体的认识。认个脸。 在Paper.js的 官方文档中类大致有如下这些: 基类: ProjectViewItemPointToolSizeSegmentRectangleCurveCurveLocationMatrixColorStyleTweenToolEventGradientGradientStopEvent 二级或三级类 继承Ite

SLAM Paper Reading和代码解析

最近对VINS、LIO-SAM等重新进行了Paper Reading和代码解析。这两篇paper和代码大约在三年前就读过,如今重新读起来,仍觉得十分经典,对SLAM算法研发具有十分重要的借鉴和指导意义。重新来读,对其中的一些关键计算过程也获得了更新清晰的了解,现整理分享出来,供有需要的同学参考。 VINS-MONO算法总结-徐胜攀.pdf资源-CSDN文库 对VINS-MONO的算法框架进

计算机建模| FIT3139 Computational Modelling and Simulation – PAPER 1

本次澳洲写主要为计算机建模相关的限时测试 Question 1 [10 marks = 5 + 5 ] This question is about errors and computer arithmetic. A) Determine an expression that approximates the condition number for the following functi

AIGC-CVPR2024best paper-Rich Human Feedback for Text-to-Image Generation-论文精读

Rich Human Feedback for Text-to-Image Generation斩获CVPR2024最佳论文!受大模型中的RLHF技术启发,团队用人类反馈来改进Stable Diffusion等文生图模型。这项研究来自UCSD、谷歌等。 在本文中,作者通过标记不可信或与文本不对齐的图像区域,以及注释文本提示中的哪些单词在图像上被歪曲或丢失来丰富反馈信号。 在 18K 生成图像 (R

【ISAC】paper_NOMA Empowered Integrated Sensing and Communication

NOMA Empowered Integrated Sensing and Communication. 文章目录 ModelCommunication ModelSensing ModelProblem Formulation Solution Model Dual-functional base station (BS) equipped with an N N N-ant