📄 1281.cpp
字号:
#include<cstdio>
#include<string>
int a[101][101],b[101],c[101],s[101];
int d,r,n;
int pp(int u){
int v;
for(v=0;v<r;v++)
if(s[v]==0&&a[u][v]==1){
s[v]=1;
if(c[v]==-1||pp(c[v])==1){
b[u]=v;c[v]=u;
return 1;
}
}
return 0;
}
void main()
{
int x,y,co,k=0,imp,i;
while(scanf("%d%d%d",&d,&r,&n)==3){
memset(a,0,sizeof(a));
memset(b,-1,sizeof(b));
memset(c,-1,sizeof(c));
for(i=0;i<n;i++){
scanf("%d%d",&x,&y);
a[x-1][y-1]=1;
}
co=0;
for(i=0;i<d;i++){
memset(s,0,sizeof(s));
co+=pp(i);
}
imp=0;
for(i=0;i<r;i++){
int t=c[i];
c[i]=-1;
a[t][i]=0;
memset(s,0,sizeof(s));
if(pp(t)==0){
c[i]=t;
imp++;
}
a[t][i]=1;
}
k++;
printf("Board %d have %d important blanks for %d chessmen.\n",k,imp,co);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -