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+容斥相关推荐

  1. BZOJ2339: [HNOI2011]卡农(dp 容斥)

    题意 从$1 - n$中任意选择一些数,选$m$次构成$m$个集合 保证: 集合不为空 任意两个集合不相同 集合内各个元素xor起来等于0 Sol 神仙题Orz 我看到两种做法,一种是洛谷题解上的直接 ...

  2. [BZOJ2339][HNOI2011]卡农

    [BZOJ2339][HNOI2011]卡农 试题描述 输入 见"试题描述" 输出 见"试题描述" 输入示例 见"试题描述" 输出示例 见& ...

  3. P3214 [HNOI2011] 卡农 题解

    P3214 [HNOI2011] 卡农 文章目录 代码 题解 前言 正文 要素 代码 #include <bits/stdc++.h> using namespace std;#defin ...

  4. P5405-[CTS2019]氪金手游【树形dp,容斥,数学期望】

    前言 话说在LojLojLoj下了个数据发现这题的名字叫fgofgofgo 正题 题目链接:https://www.luogu.com.cn/problem/P5405 题目大意 nnn张卡的权值为1 ...

  5. [HNOI2011] 卡农 题解

    众所周知卡农是一种复调音乐的写作技法,小余在听卡农音乐时灵感大发,发明了一种新的音乐谱写规则. 他将声音分成 nn 个音阶,并将音乐分成若干个片段.音乐的每个片段都是由 11 到 nn 个音阶构成的和 ...

  6. CF296B dp\容斥

    传送门 文章目录 题意: 思路: 题意: n≤1e5n\le1e5n≤1e5 思路: 求方案数基本就是考虑dpdpdp了,看到nnn这么大可以考虑一下分情况讨论的dpdpdp状态. 设f[i][j]f ...

  7. [CQOI2012] 局部极小值(状压DP + 容斥 + 搜索)

    problem luogu-P3160 solution 这么小的数据范围,非暴力不状压.暴力 O(28!)O(28!)O(28!) 呵呵呵可以拉走了. 我们不妨从小到大填数字,这样如果局部极小值点还 ...

  8. AT4352-[ARC101C] Ribbons on Tree【dp,容斥】

    正题 题目链接: https://www.luogu.com.cn/problem/AT4352 https://atcoder.jp/contests/arc101/tasks/arc101_c 题 ...

  9. bzoj 1042: [HAOI2008]硬币购物(dp+容斥)

    1042: [HAOI2008]硬币购物 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 2555  Solved: 1537 [Submit][St ...

最新文章

  1. [摘录]代码优化规则
  2. 计算机教室要配备空调吗,孩子们教室里的空调 到底要不要装?能不能装?
  3. 【网友的】《一个程序猿的生命周期》读后感
  4. 项目管理怎样游刃有余
  5. flink网页端提交pr-修改文档报错
  6. Mysql - 安装与配置
  7. mysql递归查询 缓存_MySQL-递归查询方法解析
  8. Ubuntu更换gnome桌面环境后不能root登录
  9. c mysql 双主复制_mysql双主复制及使用keepalived作高可用的配置详解
  10. 接口测试--ApiPost组成介绍
  11. Winform—C#读写config配置文件
  12. JQuery表单验证插件EasyValidator
  13. time.c 的Java实现(从timestamp计算年月日时分秒等数值)
  14. RTCM协议阅读——RTCM数据解析
  15. JavaScript键盘鼠标监听功能
  16. Yang‘s 不等式与 Cauchy-Schwarz 不等式
  17. iOS 中常用的几个关键字的用法
  18. 动态修改esxi虚拟机的CPU和内容
  19. 修改过----AtCoder Beginner Contest 190 D Staircase Sequences(唯一分解求因子数)
  20. 枯燥的生活需要每日情话

热门文章

  1. 灰盒测试—数据库软件
  2. 图像检索:几种基于纹理特征的图像检索算法
  3. 行人检测(Pedestrian Detection)资源
  4. 基于局部均方差相关信息的图像去噪及其在实时磨皮美容算法中的应用。
  5. 理解 Lua 的那些坑爹特性
  6. Android 开发之 ---- bootloader (LK)
  7. 增长黑盒:零代码基础做智能电商网站,不要重复发明轮子
  8. 如何使用Total Recorder录制网上的音乐,如何下载只能试听的歌曲
  9. Zend Studio实现移动程序开发一体化的秘密武器——CCM
  10. Tcpdump源码分析系列7:main函数