Codeforces 161A Dress'em in Vests!
2016-07-29 18:49
447 查看
题意:
给你n<=1e5个a[i]和m<=1e5个b[i]和x、y,每个a[i]有个适配范围(a[i]-x,a[i]+y),每个b[i]如果在某个a[i]范围内即可适配而且只适配一次,问你最多能有几个b[i]适配。
思路:
先将a、b排个序,然后枚举a[i]和b[j]如果能适配就i++,j++,如果b[j]<a[i]-x那么说明b[j]对后面的a[i]也都不能适配(因为我们已经将a按从小到大排了)就j++,否则i++。
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int MAX=1e5+5;
int n,m,x,y,ans[MAX];
struct Node{
int s,id;
}a[MAX],b[MAX];
bool cmp(Node a,Node b){
return a.s<b.s;
}
int main(){
scanf("%d%d%d%d",&n,&m,&x,&y);
for(int i=1;i<=n;i++){
scanf("%d",&a[i].s);
a[i].id=i;
}
for(int i=1;i<=m;i++){
scanf("%d",&b[i].s);
b[i].id=i;
}
sort(a+1,a+1+n,cmp);
sort(b+1,b+1+m,cmp);
int j=1,cnt=0;
memset(ans,-1,sizeof(ans));
for(int i=1;i<=n;i++){
while(b[j].s<a[i].s-x&&j<=m) j++;
if(a[i].s-x<=b[j].s&&a[i].s+y>=b[j].s){
ans[i]=j;
j++;
cnt++;
}
if(j>m) break;
}
printf("%d\n",cnt);
for(int i=1;i<=n;i++){
if(ans[i]!=-1) printf("%d %d\n",i,ans[i]);
}
return 0;
}
给你n<=1e5个a[i]和m<=1e5个b[i]和x、y,每个a[i]有个适配范围(a[i]-x,a[i]+y),每个b[i]如果在某个a[i]范围内即可适配而且只适配一次,问你最多能有几个b[i]适配。
思路:
先将a、b排个序,然后枚举a[i]和b[j]如果能适配就i++,j++,如果b[j]<a[i]-x那么说明b[j]对后面的a[i]也都不能适配(因为我们已经将a按从小到大排了)就j++,否则i++。
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int MAX=1e5+5;
int n,m,x,y,ans[MAX];
struct Node{
int s,id;
}a[MAX],b[MAX];
bool cmp(Node a,Node b){
return a.s<b.s;
}
int main(){
scanf("%d%d%d%d",&n,&m,&x,&y);
for(int i=1;i<=n;i++){
scanf("%d",&a[i].s);
a[i].id=i;
}
for(int i=1;i<=m;i++){
scanf("%d",&b[i].s);
b[i].id=i;
}
sort(a+1,a+1+n,cmp);
sort(b+1,b+1+m,cmp);
int j=1,cnt=0;
memset(ans,-1,sizeof(ans));
for(int i=1;i<=n;i++){
while(b[j].s<a[i].s-x&&j<=m) j++;
if(a[i].s-x<=b[j].s&&a[i].s+y>=b[j].s){
ans[i]=j;
j++;
cnt++;
}
if(j>m) break;
}
printf("%d\n",cnt);
for(int i=1;i<=n;i++){
if(ans[i]!=-1) printf("%d %d\n",i,ans[i]);
}
return 0;
}
相关文章推荐
- await and async
- Python多进程编程
- Android笔记 week3.1之"自定义控件"
- 加密会话(SSL)Cookie 中缺少 Secure 属性
- Django集成已有的数据库和应用
- 生命周期
- Android Studio 引用和生成aar
- POJ1050 To the Max
- lnmp_for_shop123_latest.tar.gz光年服务器 环境 安装
- 利用bash自动化重复操作
- SQL学习笔记(1)
- 关于没有登录wifi的网络连接问题
- 在mac上搭建python环境
- LVS+Keepalived实现高可用集群
- Python 数学运算
- 微信、手机页面禁止页面下拉
- 判断一个单向链表是否有环
- 解决unzip不能解压windows创建的zip文件问题
- php 小知识点
- POJ2488 A Knight's Journey