正解:构造

解题报告:

传送门!

是的灵巧还在写构造,,,不知道484我做题太慢的缘故我感觉我做了好久的构造了然而一半的题目都没做完QAQ

要哭出来了QAQ

然后说下这题的解法,开始花了这——么的时间也没有get,,,然后听psj又讲了遍才发现是我傻逼了,,,

这题的解法趴,大概是这样的

首先对于这种取余的,一般来说看到之后第一反应就要想到商=0或者商=1,这样比较好做

那这道题中是商=1,也就是说我们只要Ai=Ai+1+Bi

再加上这题是个环

看到环你难道没有断环为链的冲动嘛

所以就找一个i,然后一路按照我们刚才求的式子推过去就好了

那剩下的唯一一个问题就是,我们怎么保证推一圈推回来之后A依然是合法的呢

思考怎么样会是合法的鸭

只要保证Ai%Ai+1=Bi就成

显然从上面求的那个式子可以发现A是单调增的了

那就结果会是Ai+1是max然后Ai是min,那就Ai=Bi

所以我们只要找一个地方断开,断开的值A就=B就好了

另外一个鸭,如果要合法就还要保证余数<=除数是趴

那我们怎么保证余数<=除数啊!

现在我们已经知道Ai=Bi并且Ai是min了

那只要Bi是max就成立辣!

好了那就做完了!只是剩几个细节交代一下

1)  如果Bi的前一个Bi-1也是max怎么办,那样就会导致余数=除数就非法了嘛

那我们就改一下变成i-1=i,好辣

那如果再往前推一个,就继续往前走

那如果Bi全部相等呢

那就不成立了嘛,比较显然?(唯一一个例外就是,B全部=0那就只要A全部相等就好辣!

2)  还有一个是,不想写了回家写咕咕咕

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define rp(i,x,y) for(register ll i=x;i<=y;++i) const ll N=;
ll n,a[N],b[N],stp,nw; inline ll read()
{
char ch=getchar();ll x=;bool y=;
while(ch!='-' && (ch>'' || ch<''))ch=getchar();
if(ch=='-')ch=getchar(),y=;
while(ch>='' && ch<='')x=(x<<)+(x<<)+(ch^''),ch=getchar();
return y?x:-x;
} int main()
{
n=read();rp(i,,n){b[i]=read();if(b[i-]<b[i] && i!= && b[i]!=)stp=i;}if(b[n]<b[] && b[]!=)stp=;nw=stp-;a[stp]=b[stp];
if(!stp)
{
if(b[]==){printf("YES\n");rp(i,,n)printf("1 ");}
else printf("NO\n");
return ;
}
while(nw!=stp)
{if(nw<)nw=n,a[nw]=a[]+b[nw];else a[nw]=a[nw+]+b[nw];--nw;}
printf("YES\n");rp(i,,n)printf("%lld ",a[i]);
return ;
}

这儿是WA在了第五个点的代码QwQ

CF1028E Restore Array 构造的更多相关文章

  1. Codeforces 1028E Restore Array 构造

    我发现我构造题真的不会写, 想了好久才想出来.. 我们先把n = 2, 所有数字相等, 所有数字等于0的都特判掉. 找到一个b[ i ] > b[ i - 1 ]的位置把它移到最后一个位置, 并 ...

  2. Codeforces Round #181 (Div. 2) A. Array 构造

    A. Array 题目连接: http://www.codeforces.com/contest/300/problem/A Description Vitaly has an array of n ...

  3. CodeForces 404C Restore Graph (构造)

    题意:让人构造一个图,满足每个结点边的数目不超过 k,然后给出每个结点到某个结点的最短距离. 析:很容易看出来如果可能的话,树是一定满足条件的,只要从头开始构造这棵树就好,中途超了int...找了好久 ...

  4. Codeforces 1028E. Restore Array

    题目直通车:http://codeforces.com/problemset/problem/1028/E 解法:设原数组为ar[],求ar中的最大值的下标ins,依次向前遍历一遍,每一个答案值都为前 ...

  5. 原生JS:Array对象详解

    Array对象 本文参考MDN做的详细整理,方便大家参考[MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/ ...

  6. Object类型与Array类型

    总结--JS中的引用类型: Object类型,Array类型,Boolean类型,Number类型,String类型,Date类型, Function类型,RegExp类型,单体内置对象(Global ...

  7. C++ Built-In Array 的语义

    C++ 编译花了大量精力使得class和原始类(primitive types)的用法一致.比如array的应用: A a[100]:// A is class int b[100]: 虽然a是用户定 ...

  8. 二 Array 数组常用操作方法

    数组链接 Array 构造上的方法 一.Array.from() Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable) ...

  9. 07--STL序列容器(Array)

    一:Array了解 array<T,N> 模板定义了一种相当于标准数组的容器类型.它是一个有 N 个 T 类型元素的固定序列.除了需要指定元素的类型和个数之外,它和常规数组没有太大的差别. ...

随机推荐

  1. <UIKit>关于剪贴板共享数据

     http://blog.sina.com.cn/s/blog_45e2b66c010102h9.html 上面这篇文章将剪贴板的使用方法基本上已经讲清楚了,参考这篇文章,再加上一个使用剪贴板共享数据 ...

  2. OpenCV学习:OpenCV文件一览

    了解一些OpenCV代码整体的模块结构后,再重点学习自己感兴趣的部分,会有一种一览众山小的感觉~ Come on! C:\OpenCV\opencv\build\include文件夹下包含两个文件夹: ...

  3. go-study

    package (包) 一个目录下面所有的.go文件的包名必须相同. 包名一般和目录名相同(是约定, 不是强制), 包名都小写 main包是一个特殊的包名, 在main包中, 必须包含func mai ...

  4. MVC 5 视图之公用代码

    一.公共模板 1.@RenderBody() 在网站公用部分通过一个占位符@RenderBody()来为网站独立部分预留一个位置.然后私有页面顶部通过@{Layout="公用模板路径&quo ...

  5. JAVA语言基础内部测试题(50道选择题)

    JAVA语言基础内部测试题 选择题(针对以下题目,请选择最符合题目要求的答案,针对每一道题目,所有答案都选对,则该题得分,所选答案错误或不能选出所有答案,则该题不得分.)(每题2分) 没有注明选择几项 ...

  6. osgEarth2.8添加模型

    #include <osgEarthDrivers/model_simple/SimpleModelOptions> SimpleModelOptions modelOptions; mo ...

  7. iOS Xcode制作模板类

    转载请注明出处http://blog.csdn.net/uxyheaven/article/details/48419963 为什么要定义模板类 遵守代码规范可以提高代码可读性, 降低后期维护成本. ...

  8. @ResponseBody将集合数据转换为json格式并返回给客户端

    spring-mvc.xml: <beans xmlns:mvc="http://www.springframework.org/schema/mvc" > <m ...

  9. 程序启动-Runloop

    0 从程序启动开始到view显示: start->(加载framework,动态静态链接库,启动图片,Info.plist,pch等)->main函数->UIApplicationM ...

  10. c#图片生成png格式和原图不同

    下面这种,会生成和原图类似的图片,png格式的图片该是空的地方仍旧是空的