标签:none cstring 完成 演讲 label 时间 使用 之间 ble
★☆ 输入文件:slides.in
输出文件:slides.out
简单对比
时间限制:1 s 内存限制:128 MB
1 #include <cstring> 2 #include <cstdio> 3 4 int n,x,y,ans; 5 struct Node 6 { 7 int xmax,xmin,ymax,ymin; 8 }zm[27]; 9 10 bool vis[27]; 11 int rd[27],match[27],map[27][27]; 12 bool find(int u) 13 { 14 for(int v=1;v<=n;v++) 15 if(map[u][v]&&!vis[v]) 16 { 17 vis[v]=1; 18 if(!match[v]||find(match[v])) 19 { 20 match[v]=u; 21 return true; 22 } 23 } 24 return false; 25 } 26 27 inline void read(int &x) 28 { 29 x=0; register char ch=getchar(); 30 for(;ch>‘9‘||ch<‘0‘;) ch=getchar(); 31 for(;ch>=‘0‘&&ch<=‘9‘;ch=getchar()) x=x*10+ch-‘0‘; 32 } 33 34 int AC() 35 { 36 freopen("slides.in","r",stdin); 37 freopen("slides.out","w",stdout); 38 39 read(n); 40 for(int i=1;i<=n;i++) 41 read(zm[i].xmin),read(zm[i].xmax),read(zm[i].ymin),read(zm[i].ymax); 42 for(int i=1;i<=n;i++) 43 { 44 read(x),read(y); 45 for(int j=1;j<=n;j++) 46 if(zm[j].xmax>=x&&zm[j].xmin<=x&&zm[j].ymax>=y&&zm[j].ymin<=y) 47 map[i][j]=1,rd[j]++; 48 } 49 for(int i=1;i<=n;i++) 50 { 51 if(find(i)) ans++; 52 memset(vis,0,sizeof(vis)); 53 } 54 bool flag=0; 55 for(int i=1;i<=n;i++) 56 if(rd[i]<2) flag=1; 57 if(ans!=n||!flag) printf("None"); 58 else 59 { 60 for(int i=1;i<=n;i++) 61 { 62 printf("%c ",‘A‘+i-1); 63 printf("%d\n",match[i]); 64 } 65 } 66 return 0; 67 } 68 69 int Hope=AC(); 70 int main(){;}
标签:none cstring 完成 演讲 label 时间 使用 之间 ble
原文地址:http://www.cnblogs.com/Shy-key/p/7467446.html