HDU 4451 Dressing
2016-01-27 20:01
337 查看
先从衣服处理到裤子,在从裤子处理到鞋子
#include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <queue> #include <vector> #include <cmath> #include <map> #include <string> using namespace std; const int maxn=1000+10; long long A[maxn][maxn]; long long B[maxn][maxn]; long long ans1[maxn],ans2[maxn]; char s1[1000],s2[1000]; int x,y; int n,m,k,p; int main() { while(~scanf("%d%d%d",&n,&m,&k)) { if(!n&&!m&&!k) break; scanf("%d",&p); memset(ans1,0,sizeof ans1); memset(ans2,0,sizeof ans2); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) A[i][j]=0; for(int i=1;i<=m;i++) for(int j=1;j<=k;j++) B[i][j]=0; for(int i=1; i<=p; i++) { scanf("%s",s1); scanf("%d",&x); scanf("%s",s2); scanf("%d",&y); if(strcmp("clothes",s1)==0) A[x][y]=1; else if(strcmp("pants",s1)==0) B[x][y]=1; } for(int j=1; j<=m; j++) { long long sum=0; for(int i=1; i<=n; i++) { if(A[i][j]==0) sum=sum+1; } ans1[j]=sum; } for(int j=1; j<=k; j++) { long long sum=0; for(int i=1; i<=m; i++) { if(B[i][j]==0) { sum=sum+ans1[i]; } } ans2[j]=sum; } long long ans=0; for(int i=1; i<=k; i++) ans=ans+ans2[i]; printf("%lld\n",ans); } return 0; }
相关文章推荐
- 【React Native开发】React Native控件之ProgressBarAndroid进度条讲解(12)
- 有盟分享一些错误日记
- svn——'svn'不是内部或外部命令,也不是可运行的程序或批处理文件
- 算法
- HDU 4442 Physical Examination
- 九度oj 1078,1113,1176 二叉树
- SSH免密码登陆远程服务器
- 学习笔记1
- Win7上React Native Android开发环境搭建
- PHP小函数
- 图像处理——目标检测与前背景分离
- 16. 3Sum Closest(47.2%)
- 位、字节、字、KB、MB关系
- HDOJ 1398 Square Coins
- MySQL行级锁、表级锁、页级锁详细介绍
- Linux 设备驱动中的并发控制
- 第三十一篇:SOUI布局之相对于特定兄弟窗口
- 用python实现算法之——选择排序
- Codeforces Round #339 (Div. 1):(613A)
- HDU 1232 - 畅通工程