匹配

(match.pas/match.c/match.cpp)

【题目描述】

到了新的学期,Mcx痛苦的发现通用技术课居然是有实验课的,这样的话他就不得不放弃写作业的想法而去做一件类似于搭积木的事情。一次实验课上,他发现所给的材料有许许多多的长积木,其中黄色的有n条,第i条的长度为Ai;蓝色的有m条,第j条的长度为Bj。于是他想:这些积木可以组成多少对导轨呢?每对导轨由一条黄色积木和一条蓝色积木组成,每条积木只能用一次。为了美观,当且仅当Ai – x <= Bj <= Ai + y的时候,两条积木才能组成一对导轨。x,y为给定的非负整数。

【题目输入】

第一行四个数n,m,x,y,具体含义见题目描述。

第二行n个数,第i个数表示第i条黄色积木的长度,每两个数之间有一个空格。

第三行m个数,第i个数表示第i条蓝色积木的长度,每两个数之间有一个空格。

【题目输出】

仅一行一个非负整数,表示所能组成的导轨对数的最大值。

【样例输入】

5 3 0 0

1 2 3 3 4

1 3 5

【样例输出】

2

【样例解释】

样例中x,y均为0,故只有当Ai=Bj的时候才能组成一对导轨。

方案为第一条黄色积木和第一条蓝色积木一组,第二条蓝色积木和第三或第四条黄色积木一组。

【数据范围】

50%的数据满足1 <= n , m <= 1000

100%的数据满足 1 <= n , m <= 100000

100%的数据满足 0 <= x , y , Ai , Bi <= 10^9

100%的数据满足,Ai与Bi一定为升序排列。

【Solution】

  千万别想复杂!!!!!千万别想复杂!!!!!千万别想复杂!!!!!

  首先用两个指针L、R分别指向黄色积木当前砖块和蓝色积木当前砖块,初始指向第一个积木。如果当前黄色积木符合蓝色积木要求,则记录答案并使LR指针都往后移一位。如果当前蓝色积木长度比当前黄色积木长度减X还要小,那么只后移R指针。如果当前蓝色积木长度比当前黄色积木长度加Y还要大,那么之后移L指针。

  AC代码:

 #include <cstdio>
int N,M,X,Y,L=,R=;
int ylw[],ble[];
long long ans;
int main(){
scanf("%d%d%d%d",&N,&M,&X,&Y);
for(int i=;i<=N;++i) scanf("%d",&ylw[i]);
for(int i=;i<=M;++i) scanf("%d",&ble[i]);
while(L<=N&&R<=N){
if(ble[R]>ylw[N]+Y||ble[M]<ylw[]-X) break;//特判掉极端情况
if(ble[R]>=ylw[L]-X&&ble[R]<=ylw[L]+Y) {++ans;++L;++R;continue;}
if(ble[R]<ylw[L]-X) {++R;continue;}
if(ble[R]>ylw[L]+Y) {++L;continue;}
++L; ++R;
}
printf("%I64d",ans);
return ;
}

【NOIP模拟赛】【乱搞AC】【贪心】【模拟】匹配的更多相关文章

  1. [NOIP模拟赛][并没有用二分][乱搞AC]

    圆圈舞蹈 [问题描述] 熊大妈的奶牛在时针的带领下,围成了一个圆圈跳舞.由于没有严格的教育,奶牛们之间的间隔不一致. 奶牛想知道两只最远的奶牛到底隔了多远.奶牛A到B的距离为A顺时针走和逆时针走,到达 ...

  2. 【NOIP模拟赛】【乱搞AC】【奇技淫巧】【乘法原理】回文串计数

    回文串计数 (calc.pas/calc.c/calc.cpp) [题目描述] 虽然是一名理科生,Mcx常常声称自己是一名真正的文科生.不知为何,他对于背诵总有一种莫名的热爱,这也促使他走向了以记忆量 ...

  3. 【NOIP模拟赛】就 反悔贪心

    biubiu~~~ 这道题,考场上上来就dp然后发现怎么优化也不行.............最后发现是贪心............. 正解:带反悔的贪心,原理是,假设我们现在得到了取i个的最优解那么我 ...

  4. 5.5 省选模拟赛 B Permutation 构造 贪心

    LINK:Permutation 对于这种构造神题 我自然是要补的.为啥就我没想出来哇. 30分还是很好写的 注意8!实际上很小 不需要爆搜 写bfs记录状态即可.至于判断状态是否出现与否 可以开ma ...

  5. 6.29 省选模拟赛 坏题 AC自动机 dp 图论

    考场上随手构造了一组数据把自己卡掉了 然后一直都是掉线状态了. 最后发现这个东西不是subtask -1的情况不多 所以就没管无解直接莽 写题有点晚 故没调出来.. 考虑怎么做 容易想到建立AC自动机 ...

  6. [CSP-S模拟测试]:字符交换(贪心+模拟)

    题目传送门(内部题136) 输入格式 输入文件第一行为两个正整数$n,k$,第二行为一个长度为$n$的小写字母字符串$s$. 输出格式 输出一个整数,为对字符串$s$进行至多$k$次交换相邻字符的操作 ...

  7. NOI.AC: NOIP2018 全国模拟赛习题练习

    闲谈: 最后一个星期还是不浪了,做一下模拟赛(还是有点小虚) #30.candy 题目: 有一个人想买糖吃,有两家商店A,B,A商店中第i个糖果的愉悦度为Ai,B商店中第i个糖果的愉悦度为Bi 给出n ...

  8. NOIp模拟赛二十八

    (这是NOIp模拟赛?应该是NOI模拟赛不小心加了个p) 嗯,假装这是正经的NOIp模拟赛,从今天开始也写写题解吧(这几天被虐的惨惨) 今日情况:8+50+0=58 A题输出样例,B题正解写挂,C题不 ...

  9. [NOI.AC省选模拟赛3.30] Mas的童年 [二进制乱搞]

    题面 传送门 思路 这题其实蛮好想的......就是我考试的时候zz了,一直没有想到标记过的可以不再标记,总复杂度是$O(n)$ 首先我们求个前缀和,那么$ans_i=max(pre[j]+pre[i ...

随机推荐

  1. python_ 运算符与分支结构

    # 运算符与分支结构 ### 运算符 - 赋值运算符 - 用'='表示,左边只能是变量. - 算术运算符 - +.-.*:加.减.乘 - /:除法运算,结果是浮点数 - //:除法运算,结果是整数 - ...

  2. 哈希UVALive 6326 Contest Hall Preparation

                              Encrypting passwords is one of the most important problems nowadays, and y ...

  3. J2EE的十三个技术——EJB之实体Bean

    概述: 实体Bean与会话Bean不同,实体Bean是持久的,即使应用程序结束,它仍然存在.它允许共享访问,具有主键. 组成: 1)本地(Local)接口 本地访问EJB,只有在EJB与客户在同一个应 ...

  4. Hexo-设置阅读全文

    最近使用Hexo搭建了自己的博客,并且使用了简洁但是强大的NexT主题.这里介绍一下NexT主题下设置在首页显示一篇文章的简介,在简介后面提供一个链接阅读全文来进入文章的详情页.效果请看 我的小窝 在 ...

  5. java值转递?引用传递?

    值传递是传递的是原值的副本,引用传递传递的是原值. 在Java中,如果是基本数据类型,传递的是该参数字面量值的拷贝.如果是引用数据类型,传递的是该参数所引用对象在堆中地址的拷贝. swap(int a ...

  6. C# 在子窗体调用父窗体的值(转)

    1.在父窗体中 public delegate void SetVisiableHandler();//定义委托类型 注意此委托定义在namespace下一级,在form类外 private void ...

  7. select下拉框右对齐,去掉箭头,替换箭头

    右对齐 select{ width:auto; direction: rtl; } select option { direction: ltr; } 去掉箭头(不设置背景色会有灰色背景) selec ...

  8. noip 瑞士轮 ————归并排序解法

    背景 在双人对决的竞技性比赛,如乒乓球.羽毛球.国际象棋中,最常见的赛制是淘汰赛和循环赛.前者的特点是比赛场数少,每场都紧张刺激,但偶然性较高.后者的特点是较为公平,偶然性较低,但比赛过程往往十分冗长 ...

  9. Dinic算法学习&&HDU2063

    http://www.cnblogs.com/SYCstudio/p/7260613.html 看这篇博文懂了一点,做题再体会体会吧 找了好久都没找到一个好用的模板…… 我也是佛了..最后决定用峰神的 ...

  10. 语音提示辅助类MySoundAlertUtil

    package com.jlb.scan.util; import android.content.Context; import android.media.AudioManager; import ...