今天我刚刚学了一个新的语句,map语句
关于map语句,得先从一道题讲起:
这道题名字叫比赛恢复(race),具体的题目我就不知道了,只不过他有两种写法:一个60分,一个100分,我们先看60分的:
#include<bits/stdc++.h>
using namespace std;
struct race
{
long long id,jn;
}a[100010];
int main()
{
// freopen("race.in","r",stdin);
// freopen("race.out","w",stdout);
long long n,minn=INT_MAX,k,l;
cin>>n;
for(int i=2;i<=n+1;i++)
{
cin>>a[i].id>>a[i].jn;
}
a[1].id=1;
a[1].jn=1000000000;
for(int i=2;i<=n+1;i++)
{
for(int j=1;j<i;j++)
{
if(abs(a[i].jn-a[j].jn)<minn)
{
k=a[j].id;
minn=abs(a[i].jn-a[j].jn);
l=j;
}
else if(abs(a[i].jn-a[j].jn)==minn)
{
if(a[j].jn<a[l].jn)
{
k=a[j].id;
minn=abs(a[i].jn-a[j].jn);
l=j;
}
}
}
cout<<a[i].id<<" "<<k<<endl;
minn=INT_MAX;
k=0;
l=0;
}
// fclose(stdin);
// fclose(stdout);
return 0;
}
这里应用了结构体(struct)(我以后会讲)来解答,但它不是最完美的,这时候就要map语句了
这两句是关键,下面我即将打两个map定义,其中iterator是专用名词,因为在bits/stl_iterator_base_types.h里面有一个关键点:
struct iterator
{
typedef _Category iterator_category;
typedef _Tp value_type;
typedef _Distance difference_type;
typedef _Pointer pointer;
typedef _Reference reference;
};
map是这样定义的:
map<int,int>player;
map<int,int>::iterator up,dw;
//一定得加 #include<map>
至于完整的100分程序,请见网址:
https://download.csdn.net/download/cppxj12345/86759093
谢谢支持!!!
好了,今天就到这里了,再见!