CF1896C Matching Arrays 题解
题目简述
给定两个长度为
题目分析
遇到这种可行性问题,首先考虑做出最优解,以此来判断是否无解。
接下来,可以思考最优解如何构造,我们利用贪心思想,将
代码
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
int T,n,b[N],x,ans[N];
struct Num
{
int num,id;
}a[N];
bool cmp1(Num i,Num j)
{
return i.num>j.num;
}
bool cmp2(Num i,Num j)
{
return i.num<j.num;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cin>>T;
while(T--)
{
int f=0;
cin>>n>>x;
for(int i=1;i<=n;i++)
{
cin>>a[i].num;
a[i].id=i;
}
for(int i=1;i<=n;i++)
{
cin>>b[i];
}
sort(a+1,a+1+n,cmp1);
sort(b+1,b+1+n);
sort(a+1,a+1+x,cmp2);
for(int i=1;i<=x;i++)
{
if(a[i].num>b[i])
{
ans[a[i].id]=b[i];
}
else f=1;
}
sort(a+x+1,a+1+n,cmp2);
for(int i=x+1;i<=n;i++)
{
if(a[i].num<=b[i])
{
ans[a[i].id]=b[i];
}
else f=1;
}
if(f==1)
{
cout<<"No\n";
}
else
{
cout<<"Yes\n";
for(int i=1;i<=n;i++)
{
cout<<ans[i]<<" ";
}
cout<<"\n";
}
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具