3823: 定情信物

Time Limit: 10 Sec  Memory Limit: 128 MB
Submit: 108  Solved: 2
[Submit][Status]

Description

都说程序员找不到妹子,可是无人知晓,三生石上竟然还刻着属于小 E 的一笔。

那一天,小 E 穷尽毕生的积蓄,赠与了妹子一个非同寻常的定情信物。那是一个小

小的正方体,但透过它,可以看到过去,可以洞彻天机。

这份信物仿佛一只深邃的眼。当看透它看似简单的外表后,深邃的内心却最是可以

叩击人的灵魂的。不出所料,妹子果然被这个信物超越空间的美所吸引。

“易有太极,是生两仪,两仪生四象,四象生八卦。,八卦定吉凶,吉凶生大业。”

这句箴言在其上得到了完美的诠释。

是的,这正是一个超正方体。

小 E 告诉妹子,他的情意也如这份信物一样深厚。现在妹子想知道,小 E 对她的情

意究竟有几分?

我们知道,点动成线,线动成面,面动成体......即 n 维超立方体可看作由 n-1 维超

立方体沿垂直于它的所有的棱的方向平移得到的立体图形。

我们可以将点看作 0 维超立方体,将直线看作 1 维超立方体,将正方形看作 2 维超

立方体......依此类推。

任何一个 n 维超立方体(n>0)都是由低维的超立方体元素组成的:它的 n-1 维表面

是 n-1 维的超立方体,它的 n-2 维边缘是 n-2 维的超立方体,它的 n-3 维元素是 n-3 维的

超立方体......

小 E 对妹子的情意即为在他的定情信物——K 维超立方体中,含有每一维的元素个

数。由于元素个数可能较大,只需要输出它所包含的每一维元素个数模 P 后的异或和。

Input

两个整数 K、P,详见题目叙述。

Output

一个非负整数,表示小 E 的定情信物所包含的每一维元素个数模 P 后的异或和。注

意:异或和可能会大于 P。

Sample Input

input 1
3 7

Input 2

4 2333

Input 3

12 7723

Sample Output

Output1

3

Output 2

33

Output 3

360

Hint
对于样例2的解释:
一个三维超立方体含有 8 个零维元素、12 个一维元素、6 个二维元素、1 个三维

元素,模 7 后分别为 1,5,6,1,异或和为 1^5^6^1=3。

HINT

对于 100%的数据,N≤10^7,P 为 10^9 内的素数。
网上题解1mol多,基本没什么可以过5 3这组数据的。。。。
对于n维的情况,我们可以考虑k维元素的“向量”是由在n维的n个方向任选k个完全定义的,同样的向量有2^(n-i)个,所以是C(n,i)*2^i,yy一下求逆元的方法就行了。
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
#define MAXN 11000000
typedef long long qword;
int inv[MAXN];
int prime[1100000],topp=-1;
bool pflag[MAXN];
qword n,p;
qword pow_mod(qword x,qword y)
{qword ret=1;while (y){if (y&1)ret=ret*x%p;x=x*x%p;y>>=1;}return ret;
}
void init()
{inv[1]=1;for (int i=2;i<=n;i++){if (!pflag[i]){prime[++topp]=i;inv[i]=pow_mod(i,p-2);}for (int j=0;j<=topp && (qword)i*prime[j]<MAXN;j++){pflag[i*prime[j]]=true;inv[i*prime[j]]=(qword)inv[i]*inv[prime[j]]%p;if (i%prime[j]==0)break;}}
}
int main()
{freopen("input.txt","r",stdin);scanf("%lld%lld",&n,&p);qword x,y,z;int i,j,k;qword ans=0;init();x=1;y=1;ans^=x*y%p;int totp=0;for (i=1;i<=n;i++){x=x*2%p;z=n-i+1;while (z%p==0)totp++,z/=p;y=y*z%p;z=i;while (z%p==0)totp--,z/=p;y=y*inv[z%p]%p;ans^=totp?0:x*y%p;}printf("%lld\n",ans);
}

转载于:https://www.cnblogs.com/mhy12345/p/4191910.html

bzoj 3823: 定情信物 线性筛逆元相关推荐

  1. BZOJ 3823 定情信物 线性筛乘法逆元

    题目大意:n维多面体中有多少n-1维,n-2维,n-3维...1维元素,求他们的异或和并%p. 思路:考试题,当时做的时候不会线性筛乘法逆元,就得了70分... 算法和标程不太一样,标程好象是递推,但 ...

  2. BZOJ 3823: 定情信物

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

  3. [BZOJ 3823]定情信物

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

  4. BZOJ 3823 定情信物【脑推公式/找规律,线性求逆元,坑爹的数论题细节x

    如果用f[i][j]表示i维空间里的j维元素有多少个,有公式 f[i][j] = C(i,j) * 2^(i-j) --看题解似乎都是找规律的啊--sro mhy orz 考虑j维向量的方向有C(i, ...

  5. BZOJ 3823 定情信物 递推

    题目大意:定义点为零维元素,线为一维元素,面为二维元素,空间为三维元素,以此类推,求n维立方体中各维元素都有多少 令f[i][j]为i维立方体内j维元素的个数 考虑n维立方体中的i维元素,将n维立方体 ...

  6. [数学 找规律] BZOJ 3823 定情信物

    %%% zky http://blog.csdn.net/iamzky/article/details/42211705 加强数据,被卡出屎,不知道WA了几发 对比下列算式: (x+2)^0=1 (x ...

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

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

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

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

  9. 定情信物(bzoj 3823)

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

最新文章

  1. 博士毕业后,想继续科研,想进高校任教,需要什么条件呢?
  2. Server-U的批量用户创建
  3. 18. 编写FTP客户端程序
  4. SQL Server 入门复习(2008)图解
  5. eclipse设置和启动优化(转)
  6. matlab运行就是编译么,matlab编译运行c文件
  7. 开源数据库在平安的应用实践
  8. 情报使能 合作共赢 | TI INSIDE计划发布会即将开始
  9. Javascript ECMA-1(数据类型,字符串操作)
  10. ubuntu16 kickstart pxe 安装系统
  11. MySQL federated引擎试验
  12. 可视化编程软件有哪些好的推荐?
  13. 热腾腾的鸡汤,趁热。
  14. SQL练习(less-3)字符型注入 union联合查询
  15. 也谈分库分表在实际应用的实践
  16. HyperLynx(九)HDMI仿真实例
  17. Gradle sync failed: No variants found for ':app'. Check build files to ensure at least one varian...
  18. PHP项目接入钉钉企业免登,企业应用钉钉免钉流程(附代码)
  19. 树莓派GPIO和PWM控制教程
  20. LSM-Tree 的写放大写放大、读放大、空间放大RockDB、leveldb 写放大简单分析参考文档

热门文章

  1. Mysql workbench 基本查询语句
  2. 基于开源CNN的图像压缩算法
  3. python打开虚拟环境_python 启动虚拟环境
  4. Datastage入门+实例(易理解)
  5. 通过经纬度计算两点之间的距离的公式
  6. GitHub Desktop 出现“please upgrade your plan to create a new private repository”的解决办法
  7. 中兴telnet配置
  8. Cisco胖AP配置上网
  9. 淘宝店铺怎么提升访客量?哪些因素影响访客?
  10. 剑指 Offer 28. 对称的二叉树 -- 递归