题意:给出衣服裤子鞋子的数目,有一些衣服和裤子,裤子和鞋子不能搭配,求最终的搭配方案总数
wa点很多,我写wa了很多次,代码能力需要进一步提升
1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #include<cstring> 5 #include<cmath> 6 #include<queue> 7 #include<map> 8 using namespace std; 9 #define MOD (365*60*60*24) 10 const double eps=1e-5; 11 #define cl(a) memset(a,0,sizeof(a)) 12 #define ts printf("***** "); 13 const int MAXN=1015; 14 int n,m,tt; 15 int tot[MAXN]; 16 char s1[100],s2[100]; 17 int c[MAXN][MAXN],b[MAXN][MAXN]; 18 int main() 19 { 20 int i,j,k; 21 #ifndef ONLINE_JUDGE 22 freopen("1.in","r",stdin); 23 #endif 24 while(scanf("%d%d%d",&n,&m,&k)!=EOF) 25 { 26 if(n==0&&m==0&&k==0) break; 27 int p; 28 scanf("%d",&p); 29 cl(tot); 30 cl(c),cl(b); 31 int num1,num2; 32 for(i=0;i<p;i++) 33 { 34 scanf("%s%d%s%d",s1,&num1,s2,&num2); 35 if(strcmp(s1,"clothes")==0) 36 { 37 c[num1][num2]=1; //说明不能一起 38 } 39 else 40 { 41 if(b[num1][num2]==0) 42 { 43 b[num1][num2]=1; 44 tot[num1]++; 45 } 46 } 47 } 48 int sum=0; 49 for(i=1;i<=n;i++) 50 { 51 for(j=1;j<=m;j++) 52 { 53 if(c[i][j]==0) 54 { 55 sum+=(k-tot[j]); 56 } 57 } 58 } 59 printf("%d ",sum); 60 } 61 }