想象一下一个n维超立方体折跃到n+1维的过程(我是不是星际玩多了-_-)

先把这个n维超立方体复制一份,然后在没对对应点之间连线

那么如果f[i][j]表示i维超立方体中j维元素的数量的话,由上面的过程容易看出f[i][j]=f[i-1][j]*2+f[i-1][j-1]

由归纳法不难证明形如若有f[i][j]=f[i-1][j]*c+f[i-1][j-1]的递推式,且f[0][0]=1的话,那么f[i][j]=c^(i-j)*C(i,j)

也就是(x+c)^i展开后x的j次方项的系数

那么我们就能O(n)推出n维超立方体中每一维元素的个数了

注意有n>p的情况,记录一下组合数中p出现了多少次即可

这么个破题写了半个晚上,我也真是傻了个逼

#include<iostream>
#include<cstring>
#include<ctime>
#include<cmath>
#include<algorithm>
#include<iomanip>
#include<cstdlib>
#include<cstdio>
#include<map>
#include<bitset>
#include<set>
#include<stack>
#include<vector>
#include<queue>
using namespace std;
#define MAXN 10000010
#define MAXM 1010
#define ll long long
#define eps 1e-8
#define MOD 1000000007
#define INF 1000000000
int n,p;
int ine[MAXN];
int f[MAXN],c[MAXN];
ll ans;
int cp;
int main(){int i;scanf("%d%d",&n,&p);ine[0]=ine[1]=1;for(i=2;i<=n;i++){ine[i]=(ll)(p-p/i)*ine[p%i]%p;}for(i=1;i<=n;i++){if(!(i%p)){c[i]=c[i/p]+1;f[i]=f[i/p];}else{f[i]=i;}}ll now=1;ll ni2=p+1>>1;for(i=1;i<=n;i++){(now*=2)%=p;}ans=now;for(i=1;i<=n;i++){(now*=ni2)%=p;(now*=ine[f[i]%p])%=p;cp-=c[i];(now*=f[n-i+1])%=p;cp+=c[n-i+1];if(!cp){ans^=now;}}printf("%lld\n",ans);return 0;
}/**/

BZOJ3823 定情信物相关推荐

  1. BZOJ3823 : 定情信物

    n维超立方体有$2^{n-i}C_n^i$个i维元素,于是$O(n)$预处理出1到n的逆元,再$O(n)$计算即可. 注意Trick:P可能小于n,所以要将数字表示成$a\times P^b$的形式. ...

  2. 【bzoj3823】【定情信物】【递推】

    Description 都说程序员找不到妹子,可是无人知晓,三生石上竟然还刻着属于小 E 的一笔. 那一天,小 E 穷尽毕生的积蓄,赠与了妹子一个非同寻常的定情信物.那是一个小 小的正方体,但透过它, ...

  3. [BZOJ 3823]定情信物

    题面 定情信物 题解 这题主要考高中物理和数学. 首先定义 \(f[i][j]\) 表示 \(i\) 维超立方体中第 \(j\) 维元素的数量,根据实际意义,我们可以推出递推式: \(f[i][j]= ...

  4. 大概是全网最详细的Electron ipc 讲解(三)——定情信物传声筒port

    希沃ENOW大前端 公司官网:CVTE(广州视源股份) 团队:CVTE旗下未来教育希沃软件平台中心enow团队 「本文作者:」 前言 本系列共有以下几个章节: 主进程与渲染进程的两情相悦 渲染进程与渲 ...

  5. BZOJ 3823: 定情信物

    Description 都说程序员找不到妹子,可是无人知晓,三生石上竟然还刻着属于小 E 的一笔. 那一天,小 E 穷尽毕生的积蓄,赠与了妹子一个非同寻常的定情信物.那是一个小 小的正方体,但透过它, ...

  6. 定情信物(bzoj 3823)

    Description 都说程序员找不到妹子,可是无人知晓,三生石上竟然还刻着属于小 E 的一笔. 那一天,小 E 穷尽毕生的积蓄,赠与了妹子一个非同寻常的定情信物.那是一个小 小的正方体,但透过它, ...

  7. bzoj 3823: 定情信物 线性筛逆元

    3823: 定情信物 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 108  Solved: 2 [Submit][Status] Descript ...

  8. 3823: 定情信物【递推】【线性筛逆元】【带推导过程】

    ** Description ** 都说程序员找不到妹子,可是无人知晓,三生石上竟然还刻着属于小 E 的一笔. 那一天,小 E 穷尽毕生的积蓄,赠与了妹子一个非同寻常的定情信物.那是一个小 小的正方体 ...

  9. 【BZOJ3823】【East!模拟赛_Round5T1】定情信物 推公式+线性筛逆元(推公式法比出题人简)

    题解1: 我们定义点为0维元素.线为1维元素.面为2维元素-- 既然一个低维超方体在对应新轴上平移得到高一维的超方体,比如二维超方体为一个面,然后沿新出现的z轴拓展,那么一个低维元素就会增加一维变成高 ...

最新文章

  1. JVM中垃圾收集算法
  2. Android system server之WatchDog看门狗分析
  3. 【数字图像】数字图像处理博客汇总
  4. Net EF框架+ MySql示例
  5. 为easyui添加多条件验证
  6. oracle 不包含某个单词,SQL SELECT WHERE字段包含单词
  7. 《MySQL DBA修炼之道》——1.7 MySQL复制架构
  8. python 进度条_6种酷炫Python运行进度条
  9. 49. NAT 服务器
  10. Atitit.收银系统模块架构attilax 总结
  11. Alexa查询名词解释
  12. size of的用法总结
  13. SaaS第一,股价暴涨,25年的金蝶迎来第二春
  14. 移动硬盘数据错误循环冗余检查,要怎么恢复资料
  15. Web3即将到来,我们做了什么?
  16. 查快递,如何按发货城市筛选快递单号
  17. 呼叫中心中继网关参数选型
  18. 2020年金属非金属矿山(露天矿山)主要负责人考试报名及金属非金属矿山(露天矿山)主要负责人考试资料
  19. 手把手教你用c语言编写网络病毒
  20. CSR:SSL证书的孵化器

热门文章

  1. ERROR ITMS-90062: This bundle is invalid. The value for key CFBundleShortVersionString [1.2] ...
  2. 基于skimage的数字图像处理——频域滤波(傅里叶变换)
  3. docker 集群的优点
  4. 数据库事务隔离级别有哪些?
  5. setOnClickListener报空指针异常问题汇总
  6. 软件系统测试方法方案,软件测试方法及系统技术方案
  7. swoole的官网怎么学习。彻底理清swoole架构
  8. 影院在线售票云平台(仿猫眼电影,附SpringBoot项目源码) 系统功能实现
  9. 高通量筛选检测方法-分子篇
  10. nginx 变量使用