首页 > 其他分享 >C. Matching Arrays

C. Matching Arrays

时间:2024-05-01 10:55:56浏览次数:14  
标签:Arrays ea id int ealst blst include Matching

链接:https://codeforces.com/problemset/problem/1896/C
洛谷:https://www.luogu.com.cn/problem/CF1896C
这题疑似有点水了?为什么还有绿题hhhh
思路:结构体+排序
首先对a,b各自排序:取b的下x和a的上x比较,如果可以(指ai>bi),那么进入二阶段;如果不行,那么直接输出no。
二阶段:取b的上n-x和a的下n-x比较,如果可以(指ai<=bi)那么输出yes,并且根据id重排序,输出每个b;否则输出no;
代码:

#include<iostream>
#include<vector>
#include<algorithm>
#include<math.h>
#include<sstream>
#include<string>
#include<string.h>
#include<iomanip>
#include<stdlib.h>
#include<map>
#include<queue>
#include<limits.h>
#include<climits>
#include<fstream>
#include<stack>
#include<set>
typedef long long ll;
using namespace std;
const int N = 2e5 + 10;
struct ea
{
	ll a, b, id;
	ea() { a = b = id = 0; }
};
ll blst[N];
bool cmp_by_id(ea a, ea b)
{
	return a.id < b.id;
}
bool cmp_by_val(ea a, ea b)
{
	return a.a < b.a;
}
ea ealst[N];
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0), cout.tie(0);
	int t; cin >> t;
	while (t--)
	{
		int n; cin >> n;
		int x; cin >> x;
		memset(blst, 0, sizeof(blst));
		for (int i = 1; i <= n; i++)
		{
			ealst[i].id = i;
			cin >> ealst[i].a;
		}
		for (int i = 1; i <= n; i++)
		{
			cin >> blst[i];
		}
		sort(blst + 1, blst + 1 + n);
		sort(ealst + 1, ealst + 1 + n, cmp_by_val);
		bool isend = true;
		for (int i = 1; i <= x; i++)
		{
			if (ealst[n - x + i].a > blst[i])
			{
				ealst[n - x + i].b = blst[i];

			}
			else
			{
				isend = false;
				break;
			}
		}
		if (!isend);
		else
		{
			for (int i = 1; i <= n-x; i++)
			{
				if (ealst[i].a > blst[x + i])
				{
					isend = false; break;
				}
				else ealst[i].b = blst[x + i];
			}
		}
		if (!isend)
		{
			cout << "NO" << endl;
		}
		else
		{
			sort(ealst + 1, ealst + 1 + n, cmp_by_id);
			cout << "YES" << endl;
			for (int i = 1; i <= n; i++)cout << ealst[i].b << ' ';
			cout << endl;
		}
	}
	return 0;
}

标签:Arrays,ea,id,int,ealst,blst,include,Matching
From: https://www.cnblogs.com/zzzsacmblog/p/18169086

相关文章

  • Arrays类
    importjava.util.Arrays;publicclassDemo05{publicstaticvoidmain(String[]args){int[]a={111,2,5,6,999,7777,2,33,};//打印数组元素--Arrays.toString//System.out.println(Arrays.toString(a));//printArray(a);Arrays.sort(a);//数组进行排......
  • Codeforces 954I Yet Another String Matching Problem
    考虑到这个答案怎么算。能发现相当于是对应的字符间相连边,那么一个连通块中的字符就要变成同一个字符。于是一个连通块的代价就是\(sz-1\)。所以令有\(x\)个连通块,最后的代价就是\(|\Sigma|-x\)。考虑到因为\(|\Sigma|=6\),而\(B_6=203\)(贝尔数,\(B_n\)意义为大......
  • CF1165E Two Arrays and Sum of Functions 题解
    题目简述已知两个长度均为$n$的数组$a$和$b$。给定一个函数:$f(l,r)=\sum\limits_{l\lei\ler}a_i\cdotb_i$。你的任务是对数组$b$中的元素以任意的顺序重新排序,使$\sum\limits_{1\lel\ler\len}f(l,r)$的值最小。题目分析我们首先进行化简,发现题......
  • Java入门基础知识第八课(数组)——冒泡排序、Arrays工具类
    前面二白讲了关于数组的概念、语法以及简单的输入输出,实际上关于数组的知识还有很多,接下来咱们讲一下冒泡排序以及一些常用的Arrays工具类,需要记忆的知识很多,而且容易混淆。一、冒泡排序简介(原理)升序为例:从头开始,每次比较相邻两数小的交换到前面每轮结束后最大的数交换到......
  • Java中 Arrays.asList() 处理基本数据类型数组和包装类型数组的差异
    文章目录前言一、基本数据类型数组和包装类型数组的区别二、Arrays.asList()对这两种数组的处理方式总结前言在使用Java中的Arrays.asList()方法时,我们可能会发现它对基本数据类型数组和包装类型数组的处理方式存在一些差异。这种差异体现了Java在基本数据......
  • ERROR: No matching distribution found for pymcubes
    (pytorch3drecgan)ubuntu@ubuntu:~/lcx/3D-RecGAN-pytorch-masterv3$pipinstallpymcubesWARNING:Keyringisskippedduetoanexception:Failedtounlockthecollection!WARNING:Retrying(Retry(total=4,connect=None,read=None,redirect=None,status=None))......
  • LeetCode 2461. Maximum Sum of Distinct Subarrays With Length K
    原题链接在这里:https://leetcode.com/problems/maximum-sum-of-distinct-subarrays-with-length-k/description/题目:Youaregivenanintegerarray nums andaninteger k.Findthemaximumsubarraysumofallthesubarraysof nums thatmeetthefollowingconditi......
  • 集合:Arrays.asList() 和 new ArraysList()
     Arrays.asList和newArrayList在Java中都与集合有关,但是它们之间有一些重要的区别。概述1)Arrays.asList():T...是一个可变参数(varargs),接收任意参数后,会组合为一个数组。Arrays.asList("字符串列表.");//字符串列表Arrays.asList(2024)......
  • [20240325]FORCE_MATCHING_SIGNATURE与DML.txt
    [20240325]FORCE_MATCHING_SIGNATURE与DML.txt--//生产系统遇到1个FORCE_MATCHING_SIGNATURE重合的奇怪现象,一般情况都是相似的sql语句(没有使用绑定变量的sql语句),--//FORCE_MATCHING_SIGNATURE相同。--//实际上insert语句真实FORCE_MATCHING_SIGNATURE=0,但是在v$active_session......
  • [20240321]分析FORCE_MATCHING_SIGNATURE重合的奇怪情况.txt
    [20240321]分析FORCE_MATCHING_SIGNATURE重合的奇怪情况.txt--//生产系统遇到1个FORCE_MATCHING_SIGNATURE重合的奇怪现象,一般情况都是相似的sql语句(没有使用绑定变量的sql语句),--//FORCE_MATCHING_SIGNATURE相同。--//注:11g之前如果绑定变量与常量混合,会出现EXACT_MATCHING_SIGN......