★实验任务

给定两个序列 a b,序列 a 原先是一个单调递增的正数序列,但是由于某些 原因,使得序列乱序了,并且一些数丢失了(用 0 表示)。经过数据恢复后,找 到了正数序列 b ,且序列 a 中 0 的个数等于序列 b 的个数,打算使用序列 b 恢 复序列 a 。 对于序列 a 来说,我们可以交换两个位置上的非零的数,并且可以交换任意 次。序列 b 同样也可以进行任意次交换。 现在要将序列 b 填充到序列 a 中的值丢失的位置上,序列 b 中的每个数只能 填充一次,问最后构成的序列是否是单调递增的,如果是,则输出填充后的序列, 否则输出-1。

★数据输入

输入给定 N M,表示序列 a 和序列 b 的长度。 第一行为序列 a ,第二行为 序列 b。 题目保证除了 0 以外的数,在序列 a 和 b 中只出现一次。 数据保证: 80%的数据,N, M <= 100 100%的数据,N, M <= 100000, 0 <= a[i] <= 100000, 0 < b[i] <= 100000

★数据输出

如果最后序列 a 是单调递增的,输出该序列,否则输出-1。

测试样例

输入:

4 2

0 11 0 15

1 12

输出:1 11 12 15

解题思路:直接对输入的a数组中的0的位置存储,然后b数组中先排序一次,计入位置之后进行比对就行了;我这题SO的超级委屈,因为我直接把几个10万级的数组放在了main函数里头,放在栽面就过了。

代码:

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cmath>
int num[100005], Zero[100005];
int temp[100005] = { 0 };
using namespace std;
int main()
{
int i = 0, j = 0, k = 0; int n, m, tmp, ok = 0;
cin >> n >> m;
for (i = 0; i < n; i++)
{
cin >> tmp;
if (tmp == 0)Zero[j++] = i;
else num[k++] = tmp;
}
for (i = 0; i < m; i++)
{
cin >> tmp; temp[tmp]++;
num[k++] = tmp;
}
sort(num, num + n);
for (i = 0; i < j; i++)
{
if (temp[num[Zero[i]]] == 1) { temp[num[Zero[i]]]--; ok = 1; }
else { ok = 0; break; }
}
if (ok == 1)
{
for (i = 0; i < n; i++)printf("%d%c", num[i], i != n - 1 ? ' ' : '\n');
}
else cout << "-1\n";
return 0; }

just_sort的更多相关文章

  1. HDU 6185 Covering 矩阵快速幂

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6185 题意:用 1 * 2 的小长方形完全覆盖 4 * n的矩形有多少方案. 解法:小范围是一个经典题 ...

  2. LOJ.116.[模板]有源汇有上下界最大流(Dinic)

    题目链接 http://blog.csdn.net/just_sort/article/details/75448403 有源汇有上下界网络流 通过添加一条(T->S,[0,INF])的边变成无 ...

  3. Benefit UVA - 11889(已知LCM和其中一个数,求另一个数)

    首先对于C不能整除A的状况肯定排除 然后得到B=C/A 然后取G=GCD(A,B) 如果G==1,那么此时B就是解 否则的话,就证明A,B,的最小公倍数肯定不是C,因为其最小公倍数是A*B/G 那么我 ...

  4. ABC050D/ARC066D Xor Sum

    题目链接 题目大意 可表为 $(a \xor b, a + b)$ 的二元组有多少个? $a, b$ 满足下列约束条件: ① $a, b$ 是非负整数: ② $a + b \le N$,$N$ 是给定 ...

  5. codeforces 920E(非原创)

    E. Connected Components? time limit per test 2 seconds memory limit per test 256 megabytes input sta ...

随机推荐

  1. Taming the asynchronous beast with ES7

    https://pouchdb.com/2015/03/05/taming-the-async-beast-with-es7.html We have a problem with promises ...

  2. vue中使用定时器时this指向问题

    在写一个很小的demo时,用的普通函数写法,没有用es6箭头函数,发现this变化了,后来查找到了问题所在: 箭头函数中的this指向是固定不变(定义函数时的指向),在vue中指向vue 普通函数中的 ...

  3. 详解 nginx location ~ .*\.(js|css)?$ 什么意思?

    语法规则: location [=|~|~*|^~] /uri/ { … } = 开头表示精确匹配 ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可.nginx不对url做编码,因 ...

  4. 牛客OI周赛3-提高组-B-1408[dp]

    题意 给你长度为 \(n\) 的两个排列 \(A,B\) 组成的序列,求最少的交换相邻数字的次数使得 \(A,B\) 分别有序. \(n\leq 2000\) . 分析 如果只有一个排列时最少交换次数 ...

  5. [JLOI2013]地形生成[组合计数]

    题意 \(n\) 元素各有一个高度 \(h\) 和关键数字 \(b\) .求有多少个下标序列和高度序列,满足对任意 \(i\),\(j< i\) 且 \(h_j < h_i\)的 \(j\ ...

  6. ASP.NET5之客户端开发:Grunt和Gulp构建工具在Visual Studio 2015中的高效的应用

    Grunt和Gulp是Javascript世界里的用来做自动压缩.Typescript编译.代码质量lint工具.css预处理器的构建工具,它帮助开发者处理客户端开发中的一些烦操重复性的工作.Grun ...

  7. CSS动画效果之animation

    Y(^o^)Y css动画大乱弹之animation. 概述 什么是animation呢?在回答这个问题之前,先要说明什么叫做@keyframe(关键帧).@keyframe算是一个动画模板.在其中, ...

  8. 简单可行的code review规则

    前言 曾经有一段垃圾代码放在我的面前,我没有拒绝,等我真正开始接手的时候我才后悔莫及,程序员最痛苦的事莫过于此! 每当接手别人的代码,都有一种想重新写一遍的感觉,等到别人再来接手你的代码时,同样的感觉 ...

  9. 修复bug有哪些更快的技术?做好这6点就够了

    你有没有想过为什么有时修复错误似乎比它应该花费更长的时间?当你终于找到问题时,事实证明你所需要的只是一个小小的改变.然而,花了很多时间才能找到正在发生的事情.这种情况比我想象的更频繁. 另一方面,当您 ...

  10. 自动化工具 fastmonkey

    Android Monkey 二次开发,实现高速点击的 Android Monkey 一.工具介绍: 1.本工具是testhome上 zhangzhao_lenovo开源出来的工具,源码暂时还未开源: ...