poj 4451 Dressing 一个小模拟 金华regional
cou[],cou1[]分别记录clothes 和shoe的重复次数,自己花一下图就好啦
#include<iostream>#include<cstdio>#include<memory.h>#define M 1005using namespace std;char a[20],b[20];int cou[M],te[M][M],te1[M][M],cou1[M];int main(){ // freopen("in.txt","r",stdin); int n,m,k,p,x,y;// printf("%d\n",(1<<31)); while(~scanf("%d%d%d",&n,&m,&k),n+m+k){ scanf("%d",&p); memset(cou,0,sizeof(cou)); memset(cou1,0,sizeof(cou1)); for(int i=0;i<=1000;i++) for(int j=0;j<=1000;j++) {te[i][j]=0;te1[i][j]=0;} int sum=n*m*k; while(p--){ scanf("%s%d%s%d",a,&x,b,&y); if(a[0]=='c'){ if(te[x][y]==0){ cou[y]++; sum-=k; sum+=cou1[y]; te[x][y]=1;//去重 } } if(a[0]=='p'){ if(te1[x][y]==0){ cou1[x]++; sum-=n; sum+=cou[x]; te1[x][y]=1;//去重 } } } printf("%d\n",sum); }}