讨论 / 很简单,,,,,,,
花叶 2017-06-30 01:51:26
点我顶贴 收藏 删除
#include<cstdio>

#include<iostream>

using namespace std;

int n,ru[201],stackh[101],top=0,g[101][101],m[201][201],qw[101][101];

int w=0,p[101],k=0,qe[10001],mn=0,flag=1;

int main()

{

cin>>n;

for(int i=1;i<=n;i++)

{

cin>>g[i][1]>>g[i][2]>>g[i][3]>>g[i][4];

}

for(int i=1;i<=n;i++)

{

cin>>m[i][1]>>m[i][2];

for(int j=1;j<=n;j++)

{

if(m[i][1]<=g[j][2]&&m[i][1]>=g[j][1]&&m[i][2]>=g[j][3]&&m[i][2]<=g[j][4])

{

ru[i]++;

qw[j][i]=1;

}

}

}

for(int i=1;i<=n;i++)

{

if(ru[i]==1)

{

stackh[++top]=i;

for(int j=1;j<=n;j++)

{

if(qw[j][i]==1)

{

qe[i]=j;

}

}

}

}

while(top>0)

{

int y=stackh[top];

p[qe[y]]=y;

w++;

qw[qe[y]][y]=0;

top--;

for(int i=1;i<=n;i++)

{

if(qw[qe[y]][i]==1)

{

ru[i]--;

qw[qe[y]][i]=0;

if(ru[i]==1)

{

stackh[++top]=i;

for(int j=1;j<=n;j++)

{

if(qw[j][i]==1)

{

qe[i]=j;

}

}

}

}

}

}

if(w!=n)

{

cout<<"None";

}

else

for(int i=1;i<=n;i++)

{

if(k<n)

{

char j='A'+k;

cout<<j;

k++;

}

cout<<p[i];

cout<<endl;

}

return 0;

}

#1 求败@2017-06-30 01:51:59
回复 删除
沙发
#2 高天昊@2017-06-30 01:52:12
回复 删除
哈哈哈
#3 花叶@2017-06-30 01:52:23
回复 删除
回复 #1 求败:地板

查看更多回复
提交回复