【HDU 4451 Dressing】水题,组合数

有衣服、裤子、鞋数量分别为n,m,k,给出p对不和谐的衣-裤或裤-鞋搭配,问一共有多少种和谐的衣裤鞋的搭配。

全部的组合有Cn1Cm1Ck1种。

设p对中有p1对衣-裤,p2对裤-鞋,则不和谐的搭配共有p1*Ck1+p2*Cn1种,但有被重复计算两次的搭配共p3对,它们引用了同一裤。设裤 i 在p1被引用 li 次,在p2被引用 ri 次,则p3=∑(1*Cli1Cri1)。所以答案为n*m*k-p1*k-p2*n+p3

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <set>
 4 using namespace std;
 5 
 6 int n,m,k;
 7 typedef pair<int,int> P;
 8 P pants[1005];//i号pant被p1引用first次,被p2引用second次
 9 int p,p1,p2,p3;
10 int ans;
11 
12 int main()
13 {
14     freopen("4451.txt","r",stdin);
15     while(scanf("%d%d%d",&n,&m,&k)!=EOF)
16     {
17         if(n==0&&m==0&&k==0) break;
18         ans=n*m*k;
19         memset(pants,0,sizeof(pants));
20         p1=p2=p3=0;
21         scanf("%d",&p);
22         char s1[10],s2[10];
23         int n1,n2;
24         for(int i=0;i<p;i++)
25         {
26             scanf("%s",s1);
27             scanf("%d",&n1);
28             scanf("%s",s2);
29             scanf("%d",&n2);
30             if(s1[0]=='c')
31             {
32                 p1++;
33                 pants[n2].first++;
34             }else if(s1[0]=='p')
35             {
36                 p2++;
37                 pants[n1].second++;
38             }
39         }
40         for(int i=1;i<=m;i++)
41         {
42             p3+=pants[i].first*pants[i].second;
43         }
44         ans-=p1*k+p2*n-p3;
45         printf("%d\n",ans);
46     }
47     return 0;
48 }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
校园悬赏任务平台对字典管理、论坛管理、任务资讯任务资讯公告管理、接取用户管理、任务管理、任务咨询管理、任务收藏管理、任务评价管理、任务订单管理、发布用户管理、管理员管理等进行集中化处理。经过前面自己查阅的网络知识,加上自己在学校课堂上学习的知识,决定开发系统选择小程序模式这种高效率的模式完成系统功能开发。这种模式让操作员基于浏览器的方式进行网站访问,采用的主流的Java语言这种面向对象的语言进行校园悬赏任务平台程序的开发,在数据库的选择上面,选择功能强大的Mysql数据库进行数据的存放操作。校园悬赏任务平台的开发让用户查看任务信息变得容易,让管理员高效管理任务信息。 校园悬赏任务平台具有管理员角色,用户角色,这几个操作权限。 校园悬赏任务平台针对管理员设置的功能有:添加并管理各种类型信息,管理用户账户信息,管理任务信息,管理任务资讯公告信息等内容。 校园悬赏任务平台针对用户设置的功能有:查看并修改个人信息,查看任务信息,查看任务资讯公告信息等内容。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。项目管理页面提供的功能操作有:查看任务,删除任务操作,新增任务操作,修改任务操作。任务资讯公告信息管理页面提供的功能操作有:新增任务资讯公告,修改任务资讯公告,删除任务资讯公告操作。任务资讯公告类型管理页面显示所有任务资讯公告类型,在此页面既可以让管理员添加新的任务资讯公告信息类型,也能对已有的任务资讯公告类型信息执行编辑更新,失效的任务资讯公告类型信息也能让管理员快速删除。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值