LOJ6358 前夕
上来4的倍数又要交集恰好 单位根反演+二项式反演定了(
具体推柿子放下面了qwq
$g(n) = \sum_{i=n}^N f(i) \binom{i}{n} \\g(n) = \binom{N}{n} (2^{2^{N-n}}-1) \\f(n) = \sum_{i=n}^N \binom{i}{n} (-1)^{n-i} g(i) \\ ans = \sum_{n=0}^N [n\%4==0] f(n) \\ans= \sum_{n=0}^N \sum_{j=0}^3 w_4^{nj} f(n) \\ans= \sum_{n=0}^N \sum_{i=n}^N \sum_{j=0}^3 w_4^{nj}(-1)^{i-n}g(i)\binom{i}{n}\\ans= \sum_{i=0}^N (-1)^i g(i) \sum_{n=0}^i \sum_{j=0}^3 w_4^{nj} (-1)^n \binom{i}{n}\\ans= \sum_{i=0}^N (-1)^i g(i) \sum_{j=0}^3 (-w_4^{j}+1)^i$
里面那个-1是为了方便处理空集(不然空集可能加上可能被容斥掉了x)
然后憨憨hywn发现自己不会快速求$2^{2^{N-n}}$ 被大爹suncb教了一发...直接每次平方就好了...我可能是个sbx
于是就做完啦
(第一次推完这么长柿子好感动)
//Love and Freedom.
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
#define ll long long
#define inf 20021225
#define mdn 998244353
#define G 3
#define inv4 748683265ll
using namespace std;
int read()
{
int s=,t=; char ch=getchar();
while(ch<''||ch>''){if(ch=='-') t=-; ch=getchar();}
while(ch>='' && ch<='') s=s*+ch-'',ch=getchar();
return s*t;
}
int ksm(int bs,int mi)
{
int ans=;
while(mi)
{
if(mi&) ans=1ll*ans*bs%mdn;
bs=1ll*bs*bs%mdn; mi>>=;
}
return ans;
}
#define N 10000001
int w[][],fac[N],inv[N],g[N];
int C(int n,int m){return n<m?:1ll*fac[n]*inv[m]%mdn*inv[n-m]%mdn;}
int main()
{
int n=read(); int Wn=ksm(G,(mdn-)/); int ans=;
for(int i=;i<;i++) w[i][]=;
for(int i=;i<;i++) w[i][]=(-ksm(Wn,i)++mdn)%mdn;
fac[]=;
for(int i=;i<=n;i++) fac[i]=1ll*fac[i-]*i%mdn;
inv[n]=ksm(fac[n],mdn-);
for(int i=n;i;i--) inv[i-]=1ll*inv[i]*i%mdn;
g[n]=;
for(int i=n;i;i--) g[i-]=1ll*g[i]*g[i]%mdn;
for(int i=;i<=n;i++)
{
int val=;
for(int j=;j<;j++)
(val+=w[j][])%=mdn,w[j][]=1ll*w[j][]*w[j][]%mdn;
(ans+=1ll*(g[i]-)*C(n,i)%mdn*(i&?mdn-:)%mdn*val%mdn*inv4%mdn)%=mdn;
}
printf("%d\n",ans+);
return ;
}
LOJ6358 前夕的更多相关文章
- iPhone 6 被盗记录二【写在315前夕:苹果售后福州直信创邺在没有三包的情况下帮小偷翻新、助力小偷换机销赃!无视王法。让人震惊,痛心,憎恨!消费者很受伤很无奈】
投诉公司: 北京直信创邺数码科技有限公司 标题: 写在315前夕:苹果售后在没有三包的情况下帮小偷翻新.助力小偷换机销赃!无视王法.让人震惊,痛心,憎恨!消费者很受伤很无奈 期望: 还我手机,或者赔 ...
- [黑金原创教程] FPGA那些事儿《设计篇 III》- 图像处理前夕·再续
简介 一本为入门图像处理的入门书,另外还教你徒手搭建平台(片上系统),内容请看目录. 注意 为了达到最好的实验的结果,请准备以下硬件. AX301开发板, OV7670摄像模块, VGA接口显示器, ...
- 开源前夕先给大家欣赏一下我用C语言开发的云贴吧 网站自动兼容-移动、手机、PC自动兼容云贴吧
开源前夕先给大家欣赏一下我用C语言开发的移动.手机.PC自动兼容云贴吧 - 涨知识属马超懒散,属虎太倔强.十二生肖全了!-转自云寻觅贴吧 转: 涨知识属马超懒散,属虎太倔强.十二生肖全了! -转自云寻 ...
- 开源前夕先给大家赞赏一下我用C语言开发的云贴吧 站点自己主动兼容-移动、手机、PC自己主动兼容云贴吧
开源前夕先给大家赞赏一下我用C语言开发的移动.手机.PC自己主动兼容云贴吧 - 涨知识属马超懒散,属虎太倔强.十二生肖全了!-转自云寻觅贴吧 转: 涨知识属马超懒散,属虎太倔强.十二生肖全了! -转自 ...
- 双十二前夕爆京东12G数据泄露的真相是什么
今天早上手机上推送出京东12g数据泄漏的消息,随即搜了下网上的相关新闻,感觉舆论又一次的干了一件惊天地的事情,到底京东的哪所谓的12G的用户信息数据有没有泄漏?舆论为什么齐刷刷的在12月11日突然间爆 ...
- Power BI Q&A终于在圣诞前夕盼到
相信跟所有的数据分析师们一样,赶上年底和年初都是非常忙的时候,即使赶上哪天运气好不加班每天回到家吃完饭恨不得倒在床上就美美的睡上一觉.本人也是如此,正直疲惫之际,尹相志在微博上把我一圈,说Power ...
- SNF.CodeGenerator代码生成器前夕-代码生成器初始配置
如果你是第一次使用SNF快速开发平台的话,第一次运行代码生成器的话,可以需要以下信息来帮助你快速进行配置和使用. 代码生成器在使用之前有几个地方需要配置,如果是第一次登录会提示无授权,弹出一个框填入授 ...
- 【纪念】NOIP2018前夕——一些想说的话
刚刚复习了一下相关的内容,决定一会儿就洗洗睡了.在睡觉之前,决定写点东西. 有的时候真的很迷茫,选择了一条超过自己能力范围的路,每天挣扎在各种各样难题的面前,文化成绩一落千丈……在从前觉得这一切都是有 ...
- [黑金原创教程] FPGA那些事儿《设计篇 II》- 图像处理前夕·续
简介 一本为入门图像处理的入门书,另外还教你徒手搭建平台(片上系统),内容请看目录. 注意 为了达到最好的实验的结果,请准备以下硬件. AX301开发板, OV7670摄像模块, VGA接口显示器, ...
随机推荐
- html5绘图笔记纪要
在html5之前,前端是无法再html页面上动态绘制图片 html5新增了一个canvas元素,相当于一个画布,可以获取一个CanvasRenderingContext2D对象 CanvasRende ...
- 【Qt开发】如何将内存图像数据封装成QImage V1
如何将内存图像数据封装成QImage 当采用Qt开发相机数据采集软件时,势必会遇到采集内存图像并进行处理(如缩放.旋转)操作.如果能够将内存图像数据封装成QImage,则可以利用QImage强大的图像 ...
- django 的 一对多的关系
USERINFO 用户详情表 USERTYPE 用户类别表 UserType是父表,UserInfo是子表, user_type 是 关联字段 就是新增资源的时候,又对数据库重新查询一遍,太消耗资源了 ...
- Mysql常用时间函数的用法和应用
/* ---1)整型时间戳转换为date的格式(yyyymmdd, yyyy年mm月dd)--*/ , '%Y%m%d' ); -- 20090806 , '%Y年%m月%d' ); -- 2009年 ...
- MySQL-快速入门(8)存储过程、存储函数
1.存储过程 1>创建存储过程:create procedure create procedure sp_name ([in | out | inout] param_name type) [c ...
- 修改SpringBoot启动时的默认Banner图案
1.在src/main/resources下新建banner.txt,在文件中加入要显示的图案即可: 2.生成图案的网站: http://patorjk.com/software/taag/ http ...
- Lucky Boy
Lucky Boy Problem Description Recently, Lur have a good luck. He is also the cleverest boy in his sc ...
- 洛谷 P1631 序列合并(优先队列)
传送门 解题思路 首先读入a.b数组后,sort一遍(从小到大),然后把a[1]+b[1],a[2]+b[1],a[3]+b[1]……a[n]+b[1]全部加入一个优先队列q(小根堆). 然后从一到n ...
- 剑指offer-栈的压入、弹出序列-栈和队列-python
题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压 ...
- 【学习总结】快速上手Linux玩转典型应用-第5章-远程连接SSH专题
课程目录链接 快速上手Linux玩转典型应用-目录 目录 1. 认识SSH 2. 服务器安装SSH服务 3. 客户端安装SSH工具 4. 客户端链接SSH服务 5. SSH config 6. SSH ...