VJ_Dressing_思维

Wangpeng has N clothes, M pants and K shoes so theoretically he can have N×M×K different combinations of dressing.
One day he wears his pants Nike, shoes Adiwang to go to school happily. When he opens the door, his mom asks him to come back and switch the dressing. Mom thinks that pants-shoes pair is disharmonious because Adiwang is much better than Nike. After being asked to switch again and again Wangpeng figure out all the pairs mom thinks disharmonious. They can be only clothes-pants pairs or pants-shoes pairs.
Please calculate the number of different combinations of dressing under mom’s restriction.

Input

There are multiple test cases.
For each case, the first line contains 3 integers N,M,K(1≤N,M,K≤1000) indicating the number of clothes, pants and shoes.
Second line contains only one integer P(0≤P≤2000000) indicating the number of pairs which mom thinks disharmonious.
Next P lines each line will be one of the two forms“clothes x pants y” or “pants y shoes z”.
The first form indicates pair of x-th clothes and y-th pants is disharmonious(1≤x≤N,1 ≤y≤M), and second form indicates pair of y-th pants and z-th shoes is disharmonious(1≤y≤M,1≤z≤K).
Input ends with “0 0 0”.
It is guaranteed that all the pairs are different.

Output

For each case, output the answer in one line.

Sample

Inputcopy Outputcopy
2 2 2 0 2 2 2 1 clothes 1 pants 1 2 2 2 2 clothes 1 pants 1 pants 1 shoes 1 0 0 0
8 6 5
// VJ_Dressing_思维
#include<bits/stdc++.h>
using namespace std;
#define int long longconst int N=1111;
int ab[N],bc[N];
char s1[N],s2[N];signed main()
{int a,b,c,n,x,y,ans;while( ~scanf("%lld%lld%lld",&a,&b,&c ) && ( a+b+c ) ){ans=a*b*c;memset( ab,0,sizeof( ab ) );memset( bc,0,sizeof( bc ) );scanf("%lld",&n );while( n-- ){scanf("%s %lld %s %lld",s1,&x,s2,&y );if( s1[0]=='c' )    { ab[y]++; ans+=bc[y]-c; }      // y_is_belse                { bc[x]++; ans+=ab[x]-a; }      // x_is_b}printf("%lld\n",ans );}return 0;
}
// 01 推导公式// 抽象实例化 暴力确定实例的结果 由果导因 猜测公式// a(3) b(4) c(5)// n(5)// ab12    //// ab22// bc23    //// bc24// bc25// 2*3 重复// 02 降低时间复杂度// 保存+遍历 时间复杂度太高 // 解决: 有没有一边读取一边计算的方法?// 最终的去重 是cnt_b1 cnt_b2的数量积 // 那么每次cnt++ 实际上就是对cnt'进行了去重 (cnt cnt'是对立面)

VJ_Dressing_思维相关推荐

  1. 揭富人与穷人21个不同思维 看富豪如何脱颖而出

    <富人是怎么想的>(How Rich People Think)的作者Steve Siebold曾在近30年里采访世界各地的富豪,看究竟是什么让富豪从普通人中站出来. 他发现这和金钱基本没 ...

  2. 学习,思维三部曲:WHAT、HOW、WHY

    学习技术的三部曲:WHAT HOW WHY 我把学习归类为三个步骤:What.How.Why.经过我对周围同事和朋友的观察,大部分感觉自己技术没有提高的人,都仅仅停留在What阶段.下面我把这三个步骤 ...

  3. Linux架构思维导图

    Linux架构思维导图 GUI(Graphical User Interface,图形用户界面) Linux 学习路径 软件框架 Linux 桌面介绍 FHS:文件系统目录标准 Linux 需要特别注 ...

  4. github 思维导图开元软件_画思维导图记笔记的工具软件

    思维导图是很多人在做笔记的时候都会用到的一种记录方式,使用思维导图可以简单有效的表达发散性思维,能够协助人们在各种因素间平衡展开思考,从而提升自己笔记的含金量和工作效率,有没有画思维导图记笔记的工具软 ...

  5. 大数据概念思维导图_思维导图|数据化风控(信用评分建模教程)

    本文将按<数据化风控--信用评分建模教程>行文逻辑,并结合相关参考材料,为大家梳理本书涉及的重点知识,也算是自己读书笔记分享.有需要的同学可先收藏.点赞,以便回顾学习和吸收,当然,如果愿意 ...

  6. puml绘制思维导图_如何用ProcessOn画出漂亮的思维导图

    说到绘制思维导图,很多人可能都知道XMind,但不一定了解ProcessOnProcessOn - 免费在线作图,实时协作,总以为后者绘制流程图很强大,殊不知其在思维导图方面也有很强大的功能. 好工具 ...

  7. 计算机思维采用抽象和分解,凤凰机器人----什么是计算思维?凤凰机器人的编程课中是如何体现它的?...

    对于生活在科技和智能自动化时代的孩子们来说,理解计算机的思维方式,运用计算思维去解决生活中的问题,被认为和听.说.读.写.算一样,是每个人必备的思维能力.然而,到底什么才是计算思维呢? 计算思维是一种 ...

  8. tp3 普通模式url模式_《终身成长》:三个步骤打造成长型思维模式,普通人也可以成功...

    罗伯特很小是一个聪明的孩子,父母以他为傲,经常夸奖他,对他表达爱.结果他没有考上一个纽约第1名的幼儿园,父母就不像以前那样对他了,不会再经常表达爱,夸奖他,对他就越来越冷淡,他在父母眼里是一个失败者, ...

  9. 大学计算机思维导图_我学计算机,也会修电脑

    "你学啥专业?" "计算机科学." "帮我修电脑吧." "--" 现实中-- 金融专业的被问炒股 土木专业的被问装修 天 ...

最新文章

  1. Azure SQL Database (19) Stretch Database 概览
  2. Linux 基础命令——比较两个文件内容的不同
  3. win 2008 控制共享文件夹大小_win10如何一键网络共享
  4. 2019年1月29日
  5. 常见Java面试题 在Queue中poll()和remove()有什么区别?
  6. HDFS的API操作-小文件的合并
  7. linux命令deploy_linux命令:du 命令
  8. 蚂蚁金服生产级 Raft 算法库存储模块剖析 | SOFAJRaft 实现原理
  9. BZOJ 2287 POJ Challenge 消失之物
  10. navigationItem和navigationBar相关性
  11. 为什么要有事件循环机制(Event Loop)
  12. matlab绘制三维机翼,三维机翼某一断面的压力系数X-Y曲线绘制——使用tecplot的extract功能...
  13. Java实现Map转List
  14. 收据模板 纯css+html
  15. IDEA离线安装插件
  16. 简单的使用Python处理Excel数据文件
  17. C语言 生成随机数 srand用法 伪随机函数rand srand需不需要重新播种问题 srand该不该放在循环里
  18. 2020-10-16
  19. 手机上安装ubuntu
  20. PVE安装ros系统

热门文章

  1. Neeto - 我所期待的MD编辑器
  2. 蘑菇街CEO陈琪上市致辞:科技是生产力 美丽也是生产力
  3. FreeSwitch学习一
  4. 14. UVM概述【路】【uvm红宝书】
  5. Windows 版Oracle Database 19c 下载安装步骤
  6. 怎么在Linux上安装打印机驱动
  7. k3cloud设置汇总行
  8. python爬取知乎回答并进行舆情分析:舆情分析部分
  9. 关于多重继承时继承顺序的一点体会
  10. 前端常见面试题:js去除空格的三种方法