首页 > 其他分享 >C. Restore the Array - 构造 + 思维

C. Restore the Array - 构造 + 思维

时间:2023-04-25 22:56:46浏览次数:36  
标签:Restore 思维 int cin 构造 数组 Array

题意:

  对于长度为n的数组a,存在长度为n-1的数组b有b[i]=max(a[i],a[i+1]),t组测试数据,给出n和b数组,构造a数组。

分析:

  对b数组相邻两元素反过来求最小值,看了codeforces中题解证明感觉很明了。有以下三种分类:

  1. a[1] = b[1]

  2.a[i]=min(b[i-1,b[i])

  3.a[n-1]=b[n-1]

代码:

#include <bits/stdc++.h>

#define endl '\n'

using namespace std;

const int N=2e5+10;

int b[N];
vector<int> a;

void solve()
{
    int t;
    cin>>t;
    while(t--)
    {
        a.clear();
        int n;
        cin>>n;
        for(int i=0;i<n-1;i++) cin>>b[i];
        a.push_back(b[0]);
        for(int i=1;i<n-1;i++) a.push_back(min(b[i-1],b[i]));
        a.push_back(b[n-2]);
        for(int i=0;i<a.size();i++) cout<<a[i]<<' ';
        cout<<'\n';
    }
}

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    
    solve();
    
    return 0;
}

 

标签:Restore,思维,int,cin,构造,数组,Array
From: https://www.cnblogs.com/yaowww/p/17354213.html

相关文章

  • 以市场需求为中心--以客户为中心--经营者思维
    物竞天择,适者生存。对于企业来说是产品与服务的竞争,作出裁决的天就是用户。用户选择的企业才能最终胜出。企业活下去的根本来看,企业要有利润,但利润只能从客户那里来。 技术最终是为人服务的,先进的技术如果没人用,最终也会扔进历史的垃圾桶。先进技术应该是贴近人类需求的。远......
  • jdk并发包 CopyOnWriteArrayList源码分析
    CopyOnWriteArrayList是jdk1.5并法包里面用于处理高并发下,读多写少的情况下,降低锁等待的集合类。下面对该类实现做一个简要的分析1,首先CopyOnWriteArrayList是实现了List接口,对=List接口的相关方法进行了实现。2,下面的它的add方法,会首先加锁,然后copy原List内部的数组,然后对新数组长......
  • java.lang.NoClassDefFoundError: org/apache/commons/io/output/UnsynchronizedByteA
    java.lang.NoClassDefFoundError:org/apache/commons/io/output/UnsynchronizedByteArrayOutputStream  一、问题现象在导出Excel过程中,程序报错如下:Exceptioninthread"main"java.lang.NoClassDefFoundError:org/apache/commons/io/output/UnsynchronizedByteArra......
  • 在JavaScript的if判断中,关于数组Array的相关思考
    结论:在if判断中,无法直接使用Array转Boolean的方法判断数组是否为空数组letarray=[];//中间进行N步操作之后//...if(array){ console.log("数组为空数组");}if(array==[]){ console.log("数组为空数组");}if(array==0){ console.log("数组为空数组");}if(array......
  • hihoCoder Challenge 28 异或问题 思维
    Givenasequencea[1..n],youneedtocalculatehowmanyintegersSsatisfythefollowingconditions:(1).0≤S<260(2).Foreveryiin[1,n-1],(a[i]xorS)≤(a[i+1]xorS)InputOnthefirstlinethereisonlyoneintegernOnthesecondlinethere......
  • web前端pdf.js预览pdf实例创建报错:Array. prototype` contains unexpected enumerable
    使用pdf.min.js是预览pdf文件,但是在实例化时异常报错,下面是实例化的代码varloadingTask=window.pdfjsLib.getDocument(url);console.log(loadingTask);this.pageNum=1;this.pageRendering=false;this.pageNumPending=null;loadingTask.promise.then((pdfDoc_)=>......
  • Array对象
      ......
  • 逻辑思维
    我在阅读《金字塔原理》时,书中经常会提到逻辑思维这个词,那什么是逻辑思维?逻辑思维,就是人们在认识事物的过程中,借助于概念、判断、推理等思维形式,能动地反映客观现实的理性认识过程,是人们把握具体事物的本质规律,认识客观世界的思维方式。 参考文章:https://zhuanlan.zhihu.com/p......
  • array_map与array_walk的区别
    1、array_map的用法是array_map(函数名,数组),而array_walk的用法是array_walk(数组,函数名);2、array_map里面的函数可以是自定义函数,也可以是php自带的函数,比如trim去除空格等。而array_walk里面的函数只能是自定义的函数3、array_map不可以改变原函数的值,会获取到新的数组。arra......
  • ArrayList的遍历方式与fail-fast
    遍历方式普通for循环遍历for(inti=0;i<arrayList.size();i++){System.out.println(arrayList.get(i));}推荐使用普通for循环,效率最高。Iterator迭代Iterator<Integer>iterator=arrayList.iterator();while(iterator.hasNext()){System.out.println(itera......