UVa 11806 拉拉队(容斥原理)】的更多相关文章

https://vjudge.net/problem/UVA-11806 题意: 在一个m行n列的矩形网格里放k个相同的石子,有多少种方法?每个格子最多放一个石子,所有石子都要用完,并且第一行.最后一行.第一列.最后一列都得有石子. 思路: 如果考虑各种情况的话很复杂,设满足第一行没有石子的方案集为A,最后一行没有石子的方案集为B,第一列没有石子的方案集为C,最后一列没有石子的方案集为D,全集为S. 一个容斥原理的公式就可以解答出来,用二进制来枚举方案集的组合. #include <iostre…
题目链接:https://uva.onlinejudge.org/external/118/11806.pdf 题意: n行m列的矩阵上放k个棋子,其中要求第一行,最后一行,第一列,最后一列必须要有.有多少种放法: 分析: 要是没有那个条件,就直接是C(n*m,k)了,其实也可以转换过来. 设满足“第一行没有棋子”的方案数为A,“最后一行没有棋子”的方案数B,C,D: 然后用容斥原理可以求出. 这里用二进制表示这16种组合:满足偶数个条件为+: #include <bits/stdc++.h>…
题意 一个n*m的区域内,放k个啦啦队员,第一行,最后一行,第一列,最后一列一定要放,一共有多少种方法. 思路 设A1表示第一行放,A2表示最后一行放,A3表示第一列放,A4表示最后一列放,则要求|A1∧A2∧A3∧A4| 由容斥原理可知|∪Ai| = Σ|Ai| - Σ|Ai∧Aj| + -- (+-)|Ai∧Aj∧--∧Ak|. 再由德摩根定律得:∧Ai = Cu(∪Cu(Ai)),所以|∧Ai| = S - |∪Cu(Ai)|.(Cu表示集合的非) 然后令A表示不放第一行,B表示不放最后一…
UVA.11806 Cheerleaders (组合数学 容斥原理 二进制枚举) 题意分析 给出n*m的矩形格子,给出k个点,每个格子里面可以放一个点.现在要求格子的最外围一圈的每行每列,至少要放一个点,并且放在角上的点,同时算那个角所在的行和所在的列.不允许剩下点,求总共的方案数量,结果对1000007取模. 数据范围2 ≤ M,N ≤ 20,K ≤ 500. 考虑到要求组合数目,首先就需要预处理500以内的组合数.正向求解可能有些困难,这样考虑: 不管三七二十一,先求解出所有情况的总和,即C…
// uva 11806 Cheerleaders // // 题目大意: // // 给你n * m的矩形格子,要求放k个相同的石子,使得矩形的第一行 // 第一列,最后一行,最后一列都必须有石子. // // 解题思路: // // 容斥原理,我们这样考虑,如果只是n * m放石子,那么最后的结果 // 就是C(n*m,k).我们设A为第一行不放石头的总数,B为最后一行不放石子 // 的总数,C为第一列不放石子的总数,D为最后一列不放石子的总数.则问题 // 转化为在全集S中,求不在A,B,…
自己写的代码: #include <iostream> #include <stdio.h> #include <string.h> /* 题意:相当于在一个m*n的矩形网格里放k个相同的石子,问有多少种方法? 限制条件:每个格子最多放一个石子,所有石子都要用完,并且第一行.最后一行.第一列.最后一列都得有石子. 思路: 直接求的话会比较麻烦,反过来想: 设总方案数为S,A={第一行没有石子},B={最后一行没有石子},C={第一列没有石子},D={最后一列没有石子}…
1.题意描述 本题大致意思是讲:给定一个广场,把它分为M行N列的正方形小框.现在给定有K个拉拉队员,每一个拉拉队员需要站在小框内进行表演.但是表演过程中有如下要求: (1)每一个小框只能站立一个拉拉队员: (2)广场的第一行,最后一行,第一列,最后一列都至少站有一个拉拉队员: (3)站在广场的四个角落的拉拉队员可以认为是同时占据了一行和一列. 2.思路分析: 本题如果直接枚举的话难度很大并且会无从下手.那么我们是否可以采取逆向思考的方法来解决问题呢?我们可以用总的情况把不符合要求的减掉就行了.…
In most professional sporting events, cheerleaders play a major role in entertaining the spectators. Their roles are substantial during breaks and prior to start of play. The world cup soccer is no exception. Usually the cheerleaders form a group and…
题意:给定一个n*m的棋盘,要放k个石子,要求第一行,最后一行,第一列,最后一列都有石子,问有多少种放法. 析:容斥原理,集合A是第一行没有石子,集合B是最后一行没有石子,集合C是第一列没有石子,集合D是最后一列没有石子,如果某一行或某一列, 没有,那么就相当于减少一行或者一列. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include <strin…
In most professional sporting events, cheerleaders play a major role in entertaining the spectators. Theirroles are substantial during breaks and prior to start of play. The world cup soccer is no exception.Usually the cheerleaders form a group and p…