bzoj2339[HNOI2011]卡农 dp+容斥
2339: [HNOI2011]卡农
Time Limit: 10 Sec Memory Limit: 128 MB
Submit: 842 Solved: 510
[Submit][Status][Discuss]
Description
可以把集合视作有序的,当做排列做,最后再 /m!
设f[i]表示选出i个集合的合法方案
选出了(i-1)个集合后,最后一个集合是唯一确定的
总数就是A(2^n - 1,i-1)
但是最后确定的集合可能使方案不合法,有两种情况
1.最后确定的集合为空,这种情况的方案数=f[i-1]
2.最后确定的集合和之前确定的集合重复,因为有重复,所以删去这两个重复的集合,
依旧满足所有元素出现偶数次的性质, 这种情况的方案数 =f[i-2]*(2^n-1-(i-2))
ans就可以计算了
还有一种理解方式,理解成无序的,用组合搞
推荐blog http://blog.csdn.net/dflasher/article/details/51615325
#include<iostream> #include<cstdio> #define N 1000010 #define P 100000007 using namespace std; long long n,m,p[N],f[N],temp; long long power(long long a,long long b) { long long ans(1); for(long long i=b;i;i>>=1,(a*=a)%=P) if(i&1)(ans*=a)%=P; return ans; } void pre() { p[0]=1; for (long long i=1;i<=m;i++) p[i]=(p[i-1]*((temp-i+1+P)%P))%P; } int main() { scanf("%lld%lld",&n,&m); temp=power(2,n);temp--; if (temp<0) temp+=P; pre(); for (long long i=3;i<=m;i++) f[i]=((p[i-1]-f[i-1]-f[i-2]*(i-1)%P*(temp-(i-2))%P)+P)%P; temp=1; for (long long i=1;i<=m;i++) (temp*=i)%=P; (f[m]*=power(temp,P-2))%=P; cout<<f[m]; }
转载于:https://www.cnblogs.com/wsy01/p/8026172.html
bzoj2339[HNOI2011]卡农 dp+容斥相关推荐
- BZOJ2339: [HNOI2011]卡农(dp 容斥)
题意 从$1 - n$中任意选择一些数,选$m$次构成$m$个集合 保证: 集合不为空 任意两个集合不相同 集合内各个元素xor起来等于0 Sol 神仙题Orz 我看到两种做法,一种是洛谷题解上的直接 ...
- [BZOJ2339][HNOI2011]卡农
[BZOJ2339][HNOI2011]卡农 试题描述 输入 见"试题描述" 输出 见"试题描述" 输入示例 见"试题描述" 输出示例 见& ...
- P3214 [HNOI2011] 卡农 题解
P3214 [HNOI2011] 卡农 文章目录 代码 题解 前言 正文 要素 代码 #include <bits/stdc++.h> using namespace std;#defin ...
- P5405-[CTS2019]氪金手游【树形dp,容斥,数学期望】
前言 话说在LojLojLoj下了个数据发现这题的名字叫fgofgofgo 正题 题目链接:https://www.luogu.com.cn/problem/P5405 题目大意 nnn张卡的权值为1 ...
- [HNOI2011] 卡农 题解
众所周知卡农是一种复调音乐的写作技法,小余在听卡农音乐时灵感大发,发明了一种新的音乐谱写规则. 他将声音分成 nn 个音阶,并将音乐分成若干个片段.音乐的每个片段都是由 11 到 nn 个音阶构成的和 ...
- CF296B dp\容斥
传送门 文章目录 题意: 思路: 题意: n≤1e5n\le1e5n≤1e5 思路: 求方案数基本就是考虑dpdpdp了,看到nnn这么大可以考虑一下分情况讨论的dpdpdp状态. 设f[i][j]f ...
- [CQOI2012] 局部极小值(状压DP + 容斥 + 搜索)
problem luogu-P3160 solution 这么小的数据范围,非暴力不状压.暴力 O(28!)O(28!)O(28!) 呵呵呵可以拉走了. 我们不妨从小到大填数字,这样如果局部极小值点还 ...
- AT4352-[ARC101C] Ribbons on Tree【dp,容斥】
正题 题目链接: https://www.luogu.com.cn/problem/AT4352 https://atcoder.jp/contests/arc101/tasks/arc101_c 题 ...
- bzoj 1042: [HAOI2008]硬币购物(dp+容斥)
1042: [HAOI2008]硬币购物 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2555 Solved: 1537 [Submit][St ...
最新文章
- [摘录]代码优化规则
- 计算机教室要配备空调吗,孩子们教室里的空调 到底要不要装?能不能装?
- 【网友的】《一个程序猿的生命周期》读后感
- 项目管理怎样游刃有余
- flink网页端提交pr-修改文档报错
- Mysql - 安装与配置
- mysql递归查询 缓存_MySQL-递归查询方法解析
- Ubuntu更换gnome桌面环境后不能root登录
- c mysql 双主复制_mysql双主复制及使用keepalived作高可用的配置详解
- 接口测试--ApiPost组成介绍
- Winform—C#读写config配置文件
- JQuery表单验证插件EasyValidator
- time.c 的Java实现(从timestamp计算年月日时分秒等数值)
- RTCM协议阅读——RTCM数据解析
- JavaScript键盘鼠标监听功能
- Yang‘s 不等式与 Cauchy-Schwarz 不等式
- iOS 中常用的几个关键字的用法
- 动态修改esxi虚拟机的CPU和内容
- 修改过----AtCoder Beginner Contest 190 D	Staircase Sequences(唯一分解求因子数)
- 枯燥的生活需要每日情话