题目:![](https://img-blog.csdnimg.cn/9c675e9375ae4e1a8bbf8a5307753071.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6YOt5pmL6b6Z,size_20,color_FFFFFF,t_70,g_se,x_16)
思路分析:
可以利用链表的思维来实现
下面拿vector实现的一个不知道没什么爆0 不理解 望大佬指出!
代码实现:
/*
*@Author: GuoJinlong
*@Language: C++
*/
//#include <bits/stdc++.h>
/*
* __----~~~~~~~~~~~------___
* . . ~~//====...... __--~ ~~
* -. \_|// |||\\ ~~~~~~::::... /~
* ___-==_ _-~o~ \/ ||| \\ _/~~-
* __---~~~.==~||\=_ -_--~/_-~|- |\\ \\ _/~
* _-~~ .=~ | \\-_ '-~7 /- / || \ /
* .~ .~ | \\ -_ / /- / || \ /
* / ____ / | \\ ~-_/ /|- _/ .|| \ /
* |~~ ~~|--~~~~--_ \ ~==-/ | \~--===~~ .\
* ' ~-| /| |-~\~~ __--~~
* |-~~-_/ | | ~\_ _-~ /\
* / \ \__ \/~ \__
* _--~ _/ | .-~~____--~-/ ~~==.
* ((->/~ '.|||' -_| ~~-/ , . _||
* -_ ~\ ~~---l__i__i__i--~~_/
* _-~-__ ~) \--______________--~~
* //.-~~~-~_--~- |-------~~~~~~~~
* //.-~~~--\
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*
* 神兽保佑 永无BUG
*/
struct Point{
int x1,y1;
int x2,y2;
int ceil;//窗口编号
};
Point a[10];
int main(){
int N,M,j;
cin>>N>>M;
for(int i=0;i<N;++i){
cin>>a[i].x1>>a[i].y1>>a[i].x2>>a[i].y2;
a[i].ceil=(i+1);
}//初始化
for(int i=0;i<M;++i){
bool flag=false;
int x,y,index=0;
cin>>x>>y;
for(j=0;j<N;++j){
if(x<=a[j].x2&&x>=a[j].x1&&y<=a[j].y2&&y>=a[j].y1){
flag=true;
index=j;
}
}
if(flag){
cout<<a[index].ceil<<endl;
if(index==N-1);//本身在顶层
else{
Point temp=a[index];
for(int k=index;k<N-1;++k)
a[k]=a[k+1];
a[N-1]=temp;
}
}
else
cout<<"IGNORED"<<endl;
}
return 0;
}
/*
*@Author: GuoJinlong
*@Language: C++
*/
//#include <bits/stdc++.h>
/*
* __----~~~~~~~~~~~------___
* . . ~~//====...... __--~ ~~
* -. \_|// |||\\ ~~~~~~::::... /~
* ___-==_ _-~o~ \/ ||| \\ _/~~-
* __---~~~.==~||\=_ -_--~/_-~|- |\\ \\ _/~
* _-~~ .=~ | \\-_ '-~7 /- / || \ /
* .~ .~ | \\ -_ / /- / || \ /
* / ____ / | \\ ~-_/ /|- _/ .|| \ /
* |~~ ~~|--~~~~--_ \ ~==-/ | \~--===~~ .\
* ' ~-| /| |-~\~~ __--~~
* |-~~-_/ | | ~\_ _-~ /\
* / \ \__ \/~ \__
* _--~ _/ | .-~~____--~-/ ~~==.
* ((->/~ '.|||' -_| ~~-/ , . _||
* -_ ~\ ~~---l__i__i__i--~~_/
* _-~-__ ~) \--______________--~~
* //.-~~~-~_--~- |-------~~~~~~~~
* //.-~~~--\
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*
* 神兽保佑 永无BUG
*/
const int MAX=100;
struct node {
int x1,y1,x2,y2;
int t;
int t1;
};
vector<node>v;
bool cmp(node a,node b){
return a.t1<b.t1;
}
int main(){
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++){
int x1,x2,y1,y2;
cin>>x1>>y1>>x2>>y2;
v.push_back({x1,y1,x2,y2,i+1,i});
}
int n1=n;
for(int i=n-1;i>=0;i--){
int x1,y1,x2,y2;
x1=v[i].x1;
x2=v[i].x2;
y1=v[i].y1;
y2=v[i].y2;
cout<<x1<<" "<<y1<<" "<<x2<<" "<<y2<<endl;
}
while (m--) {
int x,y;
cin>>x>>y;
int flag=1;
for(int i=n-1;i>=0;i--){
int x1,y1,x2,y2;
x1=v[i].x1;
x2=v[i].x2;
y1=v[i].y1;
y2=v[i].y2;
if(x>=x1&&x<=x2&&y>=y1&&y<=y2){
cout<<v[i].t<<endl;
v[i].t1=++n1;
flag=0;
break;
}
}
if(flag){
cout<<"IGNORED"<<endl;
}
sort(v.begin(),v.end(),cmp);
}
}