课上洛谷刷题第二天

今天,主讲老师有事去了,换了个代课老师来上课。

但是有些同学这就开始八卦了起来:

本来这个班的主讲老师并不是现在的主讲老师的,可是原来的主讲老师有事,找了个代课老师来上课。

第二节课,同学们依然没有见到他们的主讲老师代课老师说他去谈恋爱不知道干嘛了,自己就变成了主教老师

而这节课主教老师又有事去了,会不会也是去谈恋爱不知道干嘛了呢?

咳咳,回归正题。

代课老师今天又让我们做二分。

首先是第一题:洛谷1571:眼红的Medusa

地址放这,想看跳转一下https://www.luogu.com.cn/problem/P1571

这题思路大致是这样的:

先遍历查找第一个数组,再在第二个数组里面二分查找与第一个数组相同的元素,如果找到了就输出

切记,必须sort一下第二个数组,否则二分不了

但是,第一个数组就没必要sort了,因为是直接遍历的

上第一次CE代码

#include
#include
using namespace std;
int n,m;
long long a[100001]={0},b[100001]={0};
int main(){cin>>n>>m;for(int i=0;i>a[i];for(int j=0;j>b[j];sort(b,b+m);for(int i=0;i=1){int mid=(l+r)/2;if(a[i]b[mid]) l=mid+1;else{cout<

CE原因:main函数括号有前无后

再上“稻花香里说丰年,听取WA声一片”之代码

#include
#include
using namespace std;
int n,m;
long long a[100001]={0},b[100001]={0};
int main(){cin>>n>>m;for(int i=0;i>a[i];for(int j=0;j>b[j];sort(b,b+m);for(int i=0;i1){int mid=(l+r)/2;if(a[i]b[mid]) l=mid+1;else{cout<

错误原因我先不说,等会你对比一下AC代码

//AC  
#include
#include
using namespace std;
int n,m;
long long a[100001]={0},b[100001]={0};
int main(){cin>>n>>m;for(int i=0;i>a[i];for(int j=0;j>b[j];sort(b,b+m);for(int i=0;i=l){int mid=(l+r)/2;if(a[i]b[mid]) l=mid+1;else{cout<

如果你能在半分钟内找到两者之区别,你应该能进那江苏某综艺频道——————《最强大脑》了,指不定还能为中国再度获得脑王奖杯

 

第十四行,l也能等于r啊!!!!!!!!!!!

冷静,冷静。。。。。。

接着就是第二题,也是今日刷题最后一题1678 烦恼的高考志愿

所以题目背景是认真的的吗?

题目提供者洛谷,身后还有一群小姑娘等着和他约会

说明洛谷的创作者是个渣男!!!

好啦,来分析一下这道题。

不满度最小是什么啊?就是temp=a-lower_bound(a,a+m,b[i]);然后不满度=min(abs(a[temp]-b[i]),abs(a[temp-1]-b[i]));

这里用了lower_bound,表示的是a[0]到a[m-1]里第一个大于等于b[i]的地址,如果没有返回数组末地址。

顺便说下upper_bound,格式一样,意思只是大于等于变成了大于

上第一次WA代码

#include
using namespace std;
int n,m,sum=0;
int a[100001],b[100001];
int main(){cin>>m>>n;for(int i=0;i>a[i];for(int j=0;j>b[j];sort(a,a+n);for(int i=0;i

WA原因:两个特例

特例一:当lower_bound返回数组末地址时,要特判

特例二:当a都是大于b[i]的,要特判

大神仙还别急着喷,先看完。

上第二次WA代码

#include
using namespace std;
int n,m,sum=0;
int a[100001],b[100001];
int main(){cin>>m>>n;for(int i=0;i>a[i];for(int j=0;j>b[j];sort(a,a+m);for(int i=0;i

WA原因:特判1根本不需要

大神仙们现在舒服了吧。。。

上代码

#include
using namespace std;
int n,m,sum=0;
int a[100001],b[100001];
int main(){cin>>m>>n;for(int i=0;i>a[i];for(int j=0;j>b[j];sort(a,a+m);for(int i=0;i

AC了

怒气值:0%

怒气值:20%

怒气值:30%

怒气值:50%

怒气值:70%

怒气值:90%

怒气值:100%

What the f**k?Mo**erfu**er it!!!!!!

对不起对不起,爆了点粗口。。。

好啦,今天的刷题课堂就结束了,我们下次再见!

对了,下次再见可能要很久了。。。

话说主教老师是和谁谈啊?


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章