#4346. 御神体

题意
内存限制:512 MiB
时间限制:4000 ms

> 再往前走就是隐世了,要想回到这个世界,必须留下你最重要的东西来交换。

小`H`来到了一个神秘的世界。在这个世界中,所有的事物都是交错的。

要想从这个世界中逃出,小`H`需要回答 $q$ 个问题。

对于每一个问题,都有两个值 $ n_i , m_i $,你需要计算出下面这个式子的值:

$$\sum _{i=0}^{n_i} \sum _{j=0}^{m_i} \binom{i}{j} [i+j \equiv 0 \bmod 2] \pmod {998244353}$$

在这个式子中,$\binom{i}{j}$ 表示从 $i$ 个物品中选出 $j$ 个物品的方案数。

$n \leq 10^6$ && $q \leq 10^4$ || $n \leq 10^5$ && $q \leq 10^5$
题解

考虑杨辉三角

对于一列,隔一个取的和,我们可以通过列方程组解出

对于一行,隔一个取的和,可以通过上一行的前缀和得到

设询问的答案为 $f_{n,m}$ ,若计算出了 $f_{n,m}$ ,则可以 $O(1)$ 计算出 $f_{n+1,m}$,$f_{n-1,m}$,$f_{n,m+1}$,$f_{n,m-1}$

莫队即可

考虑到块的大小 $L$ ,发现效率可表示为 $qL+\frac{n^2}{L}$ 可得当L取 $\sqrt{\frac{n^2}{q}}$ 时最优秀

代码

#include <bits/stdc++.h>
#define I inline
#define _(d) while(d(isdigit(c=getchar())))
using namespace std;char c;
I int Rd(){int x;_(!);x=c^48;_()x=(x<<3)+(x<<1)+(c^48);return x;}
const int N=1e6+5,P=998244353,i2=499122177;
int Q,jc[N],ny[N],b[N],B,ans[N],s0,s1,s2,s,ax,l,r;
struct O{int n,m,id;}q[100005];
I int K(int x,int y){
    int A=1;
    for (;y;y>>=1,x=1ll*x*x%P)
        if (y&1) A=1ll*A*x%P;
    return A;
}
I int C(int x,int y){
    if (x<y || y<0) return 0;
    return 1ll*jc[x]*ny[y]%P*ny[x-y]%P;
}
I int X(int x){if (x>=P) x-=P;return x;}
I bool cmp(O A,O B){
    return b[A.n]==b[B.n]?A.m<B.m:b[A.n]<b[B.n];
}
I void inc(){
    s=X(s+s2);if ((l+r+1)&1) s=X(s+P-C(l,r));
    s2=X(X(s2+s2)+P-C(l,r));l++;
    if (l&1) s1=X(s1+C(l,r));else s0=X(s0+C(l,r));
}
I void dec(){
    if (l&1) s1=X(s1-C(l,r)+P);else s0=X(s0-C(l,r)+P);
    l--;s2=1ll*X(s2+C(l,r))*i2%P;
    s=X(s-s2+P);if ((l+r+1)&1) s=X(s+C(l,r));
}
I void add(){
    r++;int t0=s0,t1=s1,z=C(l+1,r+1);s2=X(s2+C(l,r));
    if (l&1) s0=1ll*(z-t0+P)*i2%P,s1=1ll*(z+t0)*i2%P;
    else s0=1ll*(z+t1)*i2%P,s1=1ll*(z-t1+P)*i2%P;
    if (r&1) s=X(s+s1);else s=X(s+s0);
}
int main(){
    Q=Rd();for (int i=1;i<=Q;i++)
        q[i].n=Rd(),q[i].m=Rd(),q[i].id=i,
        ax=max(ax,max(q[i].n,q[i].m));
    B=(int)sqrt(1ll*ax*ax/Q)+1;
    jc[0]=1;for (int i=1;i<N;i++)
        jc[i]=1ll*i*jc[i-1]%P;
    ny[N-1]=K(jc[N-1],P-2);
    for (int i=N-1;i;i--)
        ny[i-1]=1ll*i*ny[i]%P;
    for (int i=0;i<=ax;i++) b[i]=i/B+1;
    sort(q+1,q+Q+1,cmp);
    for (int i=1;i<=Q;i++){
        if (b[q[i].n]!=b[q[i-1].n] || i<2){
            l=r=s1=0;s=s0=s2=1;
            while(l<q[i].n) inc();
            while(r<q[i].m) add();
        }
        while(l<q[i].n) inc();while(l>q[i].n) dec();
        while(r<q[i].m) add();ans[q[i].id]=s;
    }
    for (int i=1;i<=Q;i++) printf("%d\n",ans[i]);
    return 0;
}

原文地址:https://www.cnblogs.com/xjqxjq/p/10684201.html

时间: 2024-08-03 09:06:55

#4346. 御神体的相关文章

JZOJ 4230. 淬炼神体 (Standard IO)

题目 Description 王仙女将你提供的答案填在<葵花宝典>上,突然,宝典发出耀眼的白光,一股强大的吸力瞬间将仙女吸入宝典中.一阵眩晕过后,仙女发现自己来到了一个浮岛上,四周的半空中也有许多大小不一的浮岛,他抬头一看,空中浮现着这样一句话:欲要成神,必先成就神体.每座浮岛都有一定的淬炼肉体的功效,但你只能选择恰好K座来淬炼你的肉体.最终你的神体有多强,就看你的造化了.仙女看了看手中的宝典,发现上面浮现着这些浮岛的信息,每座浮岛上有两个数字.仙女研究了一会儿终于明白了,原来,每来到一座浮岛

[线段树] Jzoj P4231 寻找神格

Description 淬炼完神体,王仙女被传送到了遥远处一座没有神雷的浮岛上,发现浮岛上除了一扇门以外什么都没有.他来到门前,发现上面写着这样一段话:一个神出了拥有强大的神体外,还需要一枚神格.然而,想要获得神格没那么简单,除了有实力外还需要有运气.曾经有一个人叫金(jin)字(zi)塔(da),他的神体很强,很壮,可是他根本没有运气,所以最后神格拒绝了他.打开这扇门,你将会进入一个神格创造的空间,在那里,神格将会问你一些问题来测试你解决问题的能力,当然,它的问题将会很难,在你答不出来的时候你

哲学笔记:之:天道性命

========================================================================== ><><><><><><><>天地之根<><>大本大源<><>天地之心<><><><><><><>< ===============

黄帝内经

中医的书很多,但是经典只有两部,一部就是<黄帝内经>,大家看就是这本书,一本就是<伤寒论>.这两本书是非常重要的经典,我先介绍一下什么叫经,经,大家看这个"经"是由什么组成的.古代的经是这样写的(繁体),那么经这边是丝线,也有人认为这个经(另一种繁体),它的原始意象应该是什么呢?应该是脐带,脐带其实在我们人生命当中是很重要的一个东西,你出生以后才切断那个脐带,它是连接先天和后天一个东西,所以它是一个根本性的东西.那么什么叫经呢?我们如果看过织布的话,或者是看过地

《上古天真论》第二讲文字版

上古天真论篇第二讲 主讲:徐文兵  主持:梁  冬 播出时间:2008-12-20  23:00—24:00     经文:食饮有节,起居有常,不妄作劳,故能形与神俱,而尽其天年,度百岁乃去.今时之人不然也,以酒为浆,以妄为常,醉以入房,以欲竭其精,以耗散其真,不知持满,不时御神,务快其心,逆于生乐,起居无节,故半百而衰也. 梁:辅佐中国文化,发扬光大,大家好我的梁东,在我面前的是我非常尊敬的厚朴中医学堂的堂主徐文兵老师. 徐:梁东好,听众朋友们,大家好! 梁:大家好!我们计划,从新发现中医太美

《上古天真论》第十四讲文字版

上古天真论篇第十四讲 主讲:徐文兵  主持:梁  冬 播出时间:2009-03-14  23:00—24:00 经文:季以恬愉为务,以自得为功,形体不敝,精神不散,亦可以百数.其次有贤人者,法则天地,象似日月,辨列星辰,逆从阴阳,分别四时,将从上古合同于道,亦可使益寿而有极时. 梁冬:是的,重新发现中医太美,大家好!欢迎收听在这么晚,晚上十一点,坚持收听国学堂之重新发现中医太美,非常感谢!也同时呢,感谢我们今天的徐老师来到我们今天的演播室,徐老师你好!徐文兵:梁冬好!听众朋友们大家好!梁冬:是的

张至顺道长羽化登仙+说修行(道经每日清修)

http://blog.sina.com.cn/s/blog_6d2b8a320102voqc.html 标签: 道教 三清四御 张至顺道长羽化登仙 清静金光 救世 分类: 道教经典录 张至顺羽化登仙+说修行 道经每日清修 米晶子张至顺道长羽化登仙享年104岁 (道教之音) 2015年7月28日,农历乙未年六月十三,米晶子张至顺道长羽化登仙,享年104岁. 2015年7月28日,农历乙未年六月十三,张至顺真人羽化登仙,享年104岁.老真人预知时至,中午吩咐弟子以香汤沐浴,穿新净衣.嘱咐门人,虔诚

图解八部金刚功

道家功法图解八部金刚功(张至顺道长演示) <金刚功>历史悠久.据师传,早在唐代已有雏形.到宋代,许多宫观已在推广.经元.明至清代早期,已普及到民间,有的历名为<八段锦>.随着各门派.各人之修炼.心法与动作有所变化.我们现传的金刚功,是按内部师承称八部金刚功(又称外八部),在心法.顺序.招式动作上,与八段锦都有很大的不同. 现抄录比较如下: 金刚功功法的排列顺序,深含妙理.首先从通"利三焦".发动全身的气机开始.然后,逐个脏腑锻炼.以哪一脏腑为先呢? <黄帝

正月の決意 1

硯 「すずり」 砚,砚台 擦れる 「こすれる」 摩擦,蹭.互相摩擦 半紙 「はんし」 日本纸 毛筆 「もうひつ」 毛笔 御神酒 「おみき」 供神的酒 奠基仪式上喝的酒 徳利 「とくり」 酒壶.(酒などを入れる陶製?金属製などの.口の細い容器.銚子.とっくり.) 盃 「さかずき」 酒杯 毛玉 「けだま」 起球.毛织物或毛针织物上由毛的一部分形成的小球 賽銭 「さいせん」 香资,香钱 ラクダ 织物)驼绒 股引 「ももひき」 日本传统裤装 宮司 「ぐうじ 」 宫司(日本神社中掌管祭祀的职位) 本殿 「