HDU4451Dressing(计数)

题目链接

题目大意:给你N件衣服, M条裤子, K双鞋子,如今有P个不合理的的搭配(衣服和裤子或者裤子和鞋子),要求不用P中不理的搭配方式来将衣服裤子鞋子三件搭配起来有多少种方案。

解题思路:本来仅仅要给一个不合理的搭配方案的话,那么就是用总的搭配数目减掉2.可是可能会有衣服1 裤子1 ,裤子1 鞋子1这种不合里搭配,那么衣服1 裤子1 鞋子1就多减了一次。由于这里都是由裤子来关联的,那么就将每条裤子不能搭配的衣服和鞋子的数目都记录下来,最后枚举一边裤子,一边累计(N - 和这条裤子不搭的衣服数目)

(K - 和这条裤子不搭的鞋子)

代码:

#include <cstdio>
#include <cstring> const int maxn = 1e3 + 5;
int vis1[maxn][maxn], vis2[maxn][maxn];
int c[maxn], s[maxn]; int main () { int N, M, K, P;
int a, b;
char str1[10], str2[10];
while (scanf ("%d%d%d", &N, &M, &K) && (N || M ||K)) { memset (vis1, 0, sizeof (vis1));
memset (vis2, 0, sizeof (vis2));
memset (c, 0, sizeof (c));
memset (s, 0, sizeof (s)); scanf ("%d", &P);
for (int i = 0; i < P; i++) {
scanf ("%s%d%s%d", str1, &a, str2, &b);
if (str1[0] == 'c' && str2[0] == 'p') { if (!vis1[a][b]) {
vis1[a][b] = 1;
c[b]++;
}
} if (str1[0] == 'p' && str2[0] == 's') {
if (!vis2[a][b]) {
vis2[a][b] = 1;
s[a]++;
}
}
} int ans = 0;
for (int i = 1; i <= M; i++)
ans += (N - c[i]) * (K - s[i]);
printf ("%d\n", ans);
}
return 0;
}

HDU4451Dressing(计数)的更多相关文章

  1. 计数排序(counting-sort)——算法导论(9)

    1. 比较排序算法的下界 (1) 比较排序     到目前为止,我们已经介绍了几种能在O(nlgn)时间内排序n个数的算法:归并排序和堆排序达到了最坏情况下的上界:快速排序在平均情况下达到该上界.   ...

  2. Objective-C内存管理之引用计数

    初学者在学习Objective-c的时候,很容易在内存管理这一部分陷入混乱状态,很大一部分原因是没有弄清楚引用计数的原理,搞不明白对象的引用数量,这样就当然无法彻底释放对象的内存了,苹果官方文档在内存 ...

  3. 最小生成树计数 bzoj 1016

    最小生成树计数 (1s 128M) award [问题描述] 现在给出了一个简单无向加权图.你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的最小生成树.(如果两颗最小生成树中至少有一 ...

  4. swift学习笔记5——其它部分(自动引用计数、错误处理、泛型...)

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

  5. [LeetCode] Count and Say 计数和读法

    The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ...

  6. C++ 引用计数技术及智能指针的简单实现

    一直以来都对智能指针一知半解,看C++Primer中也讲的不够清晰明白(大概是我功力不够吧).最近花了点时间认真看了智能指针,特地来写这篇文章. 1.智能指针是什么 简单来说,智能指针是一个类,它对普 ...

  7. css-列表或标题的多级计数

    利用css实现多级计数,比如1/1.1/1.1.1这种层层嵌套的计数,主要利用到counter-reset/counter-increment/counter/content/:before. 一.标 ...

  8. csv 中 数值被自动转换成科学计数法 的问题 excel打开后数字用科学计数法显示且低位变0的解决方法

    保存在csv中的 013812345678,前面的0会被去掉,后面是科学计数法显示.保存成 col1,="013812345678" 即可. 注意,分隔符逗号后面直接接“=”等号. ...

  9. 用uniq来处理文件重复数据--交集,差集,计数等(转)

    经常有这样的需求:两个文本文件要求取重复的行或只取不重复的,简单的情况下用sort和uniq来处理是非常方便的: 利用现存两个文件,生成一个新的文件 取出两个文件的并集(重复的行只保留一份) 取出两个 ...

随机推荐

  1. Linux学习之挂载

    linux的系统组织方式是——整个系统从根开始,按树形目录依次向下逐渐扩大,分类存放不同用途的文件,/读作“斜线”,英文slash:当其写作一个路径时,第一个/表示根,即root,其他的/表示路径分割 ...

  2. TinyFox 部署在CentOS7 中测试使用

    一:TinyFox介绍 TinyFox 是一款支持OWIN标准的WEB应用的高性能的HTTP服务器,是Jexus Web Server的"姊妹篇".TinyFox本身的功能是htm ...

  3. JavaScriptの例

    Dateのオブジェクト: <html> <head> <title>Date Object Example</title> </head> ...

  4. svn和ftp的区别

    svn和ftp的区别是: ftp修该文件后就会替换原来的内容无法恢复.如果要回复,还需要自己在替换前做备份.如果遇到多人同时操作同一文件就会很头疼.且无法对相应修改进行记录. svn可以将你每一次的修 ...

  5. python 学习之Windows 下的编码处理!

    问题1: Non-ASCII character '\xe9' in file 问题原因:程序编码上出现问题 解决方法:在程序头部加上代码 #-*- coding: UTF-8 -*- 设置代码编码为 ...

  6. SQL调优日志--内存问题

    SQL调优日志--内存问题排查入门篇   概述 很多系统的性能问题,是由内存导致的.内存不够会导致页面频繁换入换出,IO队列高,进而影响数据库整体性能. 排查 内存对数据库性能非常重要.那么我当出现问 ...

  7. css hr 设置

    http://www.sovavsiti.cz/css/hr.html http://adamculpepper.net/blog/css/hr-tag-css-styling-cross-brows ...

  8. NYOJ 527 AC_mm玩dota

    AC_mm玩dota 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 大家都知道AC_mm比较喜欢玩游戏,特别是擅长war3这款经典游戏.某天AC_mm来到了VS平台上 ...

  9. Highlight On Mouseover Effect With JQuery

    How to get the xpath by clicking an html element How to get the xpath by clicking an html element Qu ...

  10. linux之screen命令

    linux平台下想同时运行多个操作,执行多个程序或命令:命令行就一个,要想同时执行多个命令如何操作? 一个screen命令即可: Centos操作系统默认没有安装screen: 安装方法: Cento ...