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. YII与Ace Admin 的集成

    目录 一. 前言... 1 二.为什么要使用YII+ace. 1 三.新建YII模块... 1 四.如何修改模板... 3 五.注意的地方... 4 六.整合的不足之处... 4 一. 前言 yii- ...

  2. .Net页面缓存OutPutCachexian详解

    一 它在Web.Config中的位置 <system.web> <!--页面缓存--> <caching> <outputCacheSettings> ...

  3. classpath的总结

    转自:http://blog.csdn.net/javaloveiphone/article/details/51994268   版权声明:本文为博主原创文章,未经博主允许不得转载. 1.src不是 ...

  4. 少部分手机浏览器对于COOKIE支持不够导致服务端无法读取session的解决方案

    相信大家都遇到过这样的问题,有手机浏览器的问题导致服务端SESSION读取不正常,目前在项目中的解决方法是采取H5手机本地存储唯一KEY解决的 代码片段 //定义json格式字符串 var userD ...

  5. halcon与C#混合编程

    halcon源程序: dev_open_window(0, 0, 512, 512, 'black', WindowHandle)read_image (Image, 'C:/Users/BadGuy ...

  6. system.io.file创建

    在实际开发中,如果用的文件名不能确定位置.或名字.可以使用GUID类来命名函数.Guid 结构标识全局唯一标示符.其NewGuid结构可以初始化一个新历.该方法语法格式如下: public stati ...

  7. c#学习心得,慢慢添加,如果有错误希望大家留言,我刚开始学

    1.class类:相当于整个项目的一个功能性程序,为了阐述系统中某个对象的功能. 方法:相当于程序的一个功能部件.可以被其他方法或类调用?感觉这个问题有点复杂 c#框架结构:我目前接触到的 using ...

  8. js中使用控件名和数组下标方式获取控件的值时失败

    在做界面展示时涉及到表单行项目的增加和删除时,我们一帮都使用js的脚本实现表单行的增加和删除,那么在进行表单的提交的时我们会再页面上进行提交数据的初步校验,进行数据的初步校验时,就要动态获取控件的值. ...

  9. SQLite学习手册(目录)

    链接地址:http://www.cnblogs.com/stephen-liu74/archive/2012/01/22/2328757.html 在实际的应用中,SQLite作为目前最为流行的开源嵌 ...

  10. UVa202 Repeating Decimals

    #include <stdio.h>#include <map>using namespace std; int main(){    int a, b, c, q, r, p ...