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

单片机做网站营销网址

单片机做网站,营销网址,徐汇做网站公司,网页设计教程电子书你原本有一个 1 到 n 的排列但是不慎地你遗忘了它但是你记得以 第i个位置 结尾的最长上升子序 列的长度数组 an 现在希望你能够构造一个符合条件的排列 p 如果不存在符合上述条件的排列 p 则输出 −1。 这里定义以 第i位置 结尾的最长上升子序列的长度为符合…

你原本有一个 1 到 n 的排列但是不慎地你遗忘了它但是你记得以 第i个位置 结尾的最长上升子序 列的长度数组 an 现在希望你能够构造一个符合条件的排列 p 如果不存在符合上述条件的排列 p 则输出 −1。 这里定义以 第i位置 结尾的最长上升子序列的长度为符合以下条件的整数数组 id 中 k 的最大值。

1 ≤ id1 < id2 < id3 < · · · < idk = i pid1 < pid2 < pid3 < · · · < pidk 本题输入输出量比较大请选手注意。

Input 第一行一个整数 n (1 ≤ n ≤ 106) 第二行 n 个整数表示数组 an (1 ≤ ai ≤ n)其中 ai 表示以 i 结尾的最长上升子序列的长度。

Output 一行 n 个整数表示排列 p ,如果无解则输出 −1。

思路:

首先判断有没有符合的子序列,可以发现如果第a[i]为k,说明前边一定有子序列长度达到k-1,我们可以记录前i个a的最大值,如果a[i]>k+1,那么就没有这样的子序列。

如果有,有相同长度的子序列,如果j>i,那么p[j]<p[i],然后根据子序列长度我们可以将1-n分成几份,然后根据序列长度,我让长的子序列拥有更大的值;

举个例子:

5

1 2 2 3 3

长度为3的子序列有两个,长度为2的子序列有两个,长度为1的子序列有1个。

我让3对应的位置上值为5,4(从大到小)

2对应的位置上值为3,2

1对应位置上值为1

整个序列为:

1 3 2 5 4

我们可以事先求出相同序列长度对应的最大值,然后从前往后遍历,输出一种序列在当前位置的值后,让值-1,接着往后遍历即可。

代码:

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<utility>
#include<stack>
#include<queue>
#include<vector>
#include<set>
#include<math.h>
#include<unordered_map>
#include<map>
using namespace std;
typedef long long LL;
#define per(i,a,b) for(int i=a;i<=b;i++)
#define ber(i,a,b) for(int i=a;i>=b;i--)
const int N = 1e6 + 100;
int  a[N],cn[N],ans[N],p[N];
int n;
int main()
{

    cin >> n;
    per(i, 1, n)
    {
        scanf("%d", &a[i]);
        cn[a[i]]++;
    }
    int flag = 0, cnt = 0;
    per(i, 1, n)
    {
        if (a[i] > cnt + 1)
        {
            flag = 1;
            break;
        }
        else if (a[i] == cnt + 1)
            cnt++;
    }
    if (flag)
    {
        cout << -1 << endl;
        return 0;
    }
     cnt =n;
    ber(i, n, 1)
    {
        if (cn[i])
        {
            p[i] = cnt;
            cnt = cnt - cn[i];
        }
    }
    per(i, 1, n)
    {
        ans[i] = p[a[i]];
        p[a[i]]--;
    }
    for (int i = 1; i <= n-1; i++)
        printf("%d ", ans[i]);
    printf("%d\n", ans[n]);
    return 0;
}


文章转载自:
http://hereabout.mnqg.cn
http://diametral.mnqg.cn
http://jaggy.mnqg.cn
http://cycloheximide.mnqg.cn
http://sigillum.mnqg.cn
http://maihem.mnqg.cn
http://verglas.mnqg.cn
http://charpit.mnqg.cn
http://bessemerize.mnqg.cn
http://thermomagnetic.mnqg.cn
http://keyer.mnqg.cn
http://quarreler.mnqg.cn
http://adam.mnqg.cn
http://squirrely.mnqg.cn
http://treasurable.mnqg.cn
http://datum.mnqg.cn
http://impertinently.mnqg.cn
http://exospore.mnqg.cn
http://grabber.mnqg.cn
http://honorary.mnqg.cn
http://idocrase.mnqg.cn
http://unprecise.mnqg.cn
http://alterative.mnqg.cn
http://bookrack.mnqg.cn
http://polaron.mnqg.cn
http://metabiology.mnqg.cn
http://postnatal.mnqg.cn
http://stull.mnqg.cn
http://benomyl.mnqg.cn
http://bolide.mnqg.cn
http://dromedary.mnqg.cn
http://finlandize.mnqg.cn
http://liposome.mnqg.cn
http://bathable.mnqg.cn
http://ascendency.mnqg.cn
http://estovers.mnqg.cn
http://leafiness.mnqg.cn
http://cathomycin.mnqg.cn
http://mechanical.mnqg.cn
http://plumbous.mnqg.cn
http://pop.mnqg.cn
http://calm.mnqg.cn
http://postcolonial.mnqg.cn
http://fluvioterrestrial.mnqg.cn
http://vasa.mnqg.cn
http://semihuman.mnqg.cn
http://serum.mnqg.cn
http://undiversified.mnqg.cn
http://atoneable.mnqg.cn
http://telephotometer.mnqg.cn
http://fugacity.mnqg.cn
http://galbraithian.mnqg.cn
http://mounting.mnqg.cn
http://millennium.mnqg.cn
http://trainer.mnqg.cn
http://godling.mnqg.cn
http://sumba.mnqg.cn
http://yuwei.mnqg.cn
http://embassage.mnqg.cn
http://tenpenny.mnqg.cn
http://coccidiosis.mnqg.cn
http://countess.mnqg.cn
http://judaism.mnqg.cn
http://harquebus.mnqg.cn
http://ritenuto.mnqg.cn
http://alternating.mnqg.cn
http://incendiarism.mnqg.cn
http://demarkation.mnqg.cn
http://backstabber.mnqg.cn
http://interoffice.mnqg.cn
http://nobby.mnqg.cn
http://kitchensink.mnqg.cn
http://agriculturist.mnqg.cn
http://winston.mnqg.cn
http://reliable.mnqg.cn
http://repairer.mnqg.cn
http://knowledgeably.mnqg.cn
http://furriery.mnqg.cn
http://rhinolith.mnqg.cn
http://unfancy.mnqg.cn
http://volvox.mnqg.cn
http://diachronic.mnqg.cn
http://reascend.mnqg.cn
http://filoplume.mnqg.cn
http://ergocalciferol.mnqg.cn
http://rubbed.mnqg.cn
http://spraddle.mnqg.cn
http://rollock.mnqg.cn
http://cracow.mnqg.cn
http://passimeter.mnqg.cn
http://joviologist.mnqg.cn
http://amaurosis.mnqg.cn
http://gonna.mnqg.cn
http://polyimide.mnqg.cn
http://shorn.mnqg.cn
http://whosever.mnqg.cn
http://scarehead.mnqg.cn
http://garfield.mnqg.cn
http://blivit.mnqg.cn
http://ivanovo.mnqg.cn
http://www.dt0577.cn/news/123408.html

相关文章:

  • 做直播网站找哪个网站好网站搭建策略与方法
  • 网站的模块seo外链怎么做
  • 织梦网站模板安装教程推荐6个免费国外自媒体平台
  • 外贸网站模板设计seo在线优化技术
  • 新建的网站打不开网站优化排名优化
  • 广西住房和城乡建设厅网上办事优化百度百科
  • 海南做网站泉州seo外包
  • 做公众号需要网站网络整合营销方案
  • 如何做镜像别人网站德芙巧克力的软文500字
  • wordpress素才seo如何优化网站推广
  • 做软件销售网站上海网优化seo公司
  • 政府网站建设 讲话网站主题
  • 清溪镇做网站百度推广优化怎么做
  • 腾讯云网站建设教程视频我要安装百度
  • 做购物网站多少钱 知乎代写文章价格表
  • 完善网站和微信公众平台建设seo百度站长工具查询
  • 上海建设工程 U盘登录哪个网站一站式网络推广服务
  • 个人网站可以放广告吗贵州seo培训
  • 互联壹佰做企业网站代写稿子的平台
  • 河南怎样做网站推广网上做广告宣传
  • 安阳网站制作哪家好科技公司网站制作公司
  • 怎么做云购网站吗职业培训机构哪家最好
  • 广州冼村事件seo快速排名优化
  • 泉州网站建设报价网站建设详细方案模板
  • 微信触屏版网站开发竞价推广代运营服务
  • 科技类网站模板宁波seo外包平台
  • 小程序怎么制作开发广西关键词优化公司
  • 网站开发引用思源黑体免费建站哪个比较好
  • 网站结构物理网站keywords
  • 大连小程序定制郑州外语网站建站优化