just_sort
★实验任务
给定两个序列 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的更多相关文章
- HDU 6185 Covering 矩阵快速幂
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6185 题意:用 1 * 2 的小长方形完全覆盖 4 * n的矩形有多少方案. 解法:小范围是一个经典题 ...
- LOJ.116.[模板]有源汇有上下界最大流(Dinic)
题目链接 http://blog.csdn.net/just_sort/article/details/75448403 有源汇有上下界网络流 通过添加一条(T->S,[0,INF])的边变成无 ...
- Benefit UVA - 11889(已知LCM和其中一个数,求另一个数)
首先对于C不能整除A的状况肯定排除 然后得到B=C/A 然后取G=GCD(A,B) 如果G==1,那么此时B就是解 否则的话,就证明A,B,的最小公倍数肯定不是C,因为其最小公倍数是A*B/G 那么我 ...
- ABC050D/ARC066D Xor Sum
题目链接 题目大意 可表为 $(a \xor b, a + b)$ 的二元组有多少个? $a, b$ 满足下列约束条件: ① $a, b$ 是非负整数: ② $a + b \le N$,$N$ 是给定 ...
- codeforces 920E(非原创)
E. Connected Components? time limit per test 2 seconds memory limit per test 256 megabytes input sta ...
随机推荐
- 大数据入门:Maven项目的创建及相关配置
目录 Maven项目的创建及相关配置 一.Maven的介绍 1.Maven是什么: 2.Maven作用: 3.Maven项目的目录结构: 4.Maven的三点坐标: 5.maven的pom文件: 6. ...
- WPF中使用WindowChrome美化窗口过程中的一个小问题
WPF中使用WindowChrome美化窗口,在园子里有几篇不错的文章,我也是参考练习过程中发现的问题,并记录下来. 在看过几篇教程后,给出的窗口很多出现这样一个问题,如果设置了窗口标题栏的高度大于默 ...
- Gson转换复杂对象报错【类型强转错误】
一.问题: 项目里遇到一个需求,规则文件下载后,导入本地解析. 采用的方案是:获取复杂对象,使用谷歌Gson转换为字串保存为文件下载,客户端读取文件,解析字串,反解对象 遇到的问题:传输的对象是一个嵌 ...
- CF 700 E. Cool Slogans
E. Cool Slogans 链接 题意: 给定一个字符串S,从中选出k个子串a[1],a[2]...a[k],满足a[i]在a[i+1]中出现了两次(可以重叠),求最大的k. 分析: 建出SAM, ...
- Gitlab+Jenkins学习之路(三)之gitlab权限管理--issue管理
1.创建Group,User,Project 创建一个组,组名为java Group path http://192.168.56.11/java Visibility Level: #为权限级别,一 ...
- Codeforces 914 C 数位DP+暴力打表+思维
题意 给出一个二进制数\(n\),每次操作可以将一个整数\(x\)简化为\(x\)的二进制表示中\(1\)的个数,如果一个数简化为\(1\)所需的最小次数为\(k\),将这个数叫做特殊的数, 问从\( ...
- java四舍五入
package com.clzhang.sample; import java.math.BigDecimal; import java.math.RoundingMode; import java. ...
- cogs 1330 [HNOI2008]玩具装箱toy
cogs 1330 [HNOI2008]玩具装箱toy 瞎扯,急忙AC的请跳过 感觉数据结构写的太多了有点晕=+ 发现还没学斜率优化+- 于是来学一学QwQ 上次这题打了个决策优化直接水过了..理论O ...
- jsp 中 , jq 获取当前所点击的 select 的 id 值的注意事项
因为是使用的 jstl 的 foreach ,所以每个 select 的 id 值都不同,要想在 change 方法中获取到 当前所点击的 select 的 id 值,需要注意的地方有: 1. 得到 ...
- [BZOJ4484][JSOI2015]最小表示[拓扑排序+bitset]
题意 给你一个 \(n\) 个点 \(m\) 条边的 \(\rm DAG\) ,询问最多能够删除多少条边,使得图的连通性不变 \(n\leq 3\times 10^4\ ,m\leq 10^5\) . ...