当前位置: 首页 > news >正文

P14510 夜里亦始终想念着你 miss 题解

验题人题解。

观察所有 \(\tt 0\) 的位置,容易发现 \(\forall i\),从左到右第 \(i\)\(\tt 0\) 所在位置的奇偶性是固定的。且任意一个这样的棋盘都能通过题面中的操作得到。

考察操作的可逆性,容易想到令每个 \(S\) 对应一个具有代表性的棋盘状态。

考虑构造这样的一个棋盘状态。在满足位置奇偶性正确的情况下,先令所有 \(\tt 0\) 尽量靠左。接下来从左到右考虑每个 \(\tt 0\) 的位置,若一个 \(\tt 0\) 所在的位置 \(i\in S\),则令这个 \(\tt 0\) 及其后面所有 \(\tt 0\) 都向右移动两格。若没有 \(\tt 0\) 被移出格子,则 \(S\) 合法。

容易使用线段树维护尽量靠左的情况下,最后一个 \(\tt 0\) 的位置,记为 \(p\)。记 \(\tt 0\) 的个数为 \(c\)。枚举最后一个 \(\tt 0\) 向右移动的次数 \(i\),容易得到答案:

\[\sum_{i=0}^{\lfloor\frac{n-p}2\rfloor}2^{n-c-i}{c+i-1\choose c-1} \]

\(m=\lfloor\frac{n-p}2\rfloor\),则答案为:

\[\begin{aligned}&\sum_{i=0}^{m}2^{n-c-i}{c+i-1\choose c-1}\\ =&2^{n-c-m-1}\sum_{i=0}^{m}2^{m-i+1}{c-1+i\choose c-1}\\ =&2^{n-c-m-1}\sum_{i=c}^{m+c}{m+c\choose i}\\ =&2^{n-c-m}\left(2^{m+c}-\sum_{i=0}^{c-1}{m+c\choose i}\right)\\ =&2^{n}-2^{n-c-m}\sum_{i=0}^{c-1}{m+c\choose i}\\\end{aligned} \]

问题转化为组合数下标前缀和,容易想到莫队。由于操作是单点修改,\(c\)\(m\) 的变化量都是 \(\mathcal O(1)\) 级别的,不用莫队,暴力求变化量即可。时间复杂度 \(\mathcal O(q\log n)\)

参考代码:

#include<bits/stdc++.h>
#define ll long long
#define mxn 500003
#define md 1000000007
#define pb push_back
#define mkp make_pair
#define ld long double
#define umap unordered_map
#define rep(i,a,b) for(int i=a;i<=b;++i)
#define rept(i,a,b) for(int i=a;i<b;++i)
#define drep(i,a,b) for(int i=a;i>=b;--i)
#define pq priority_queue
using namespace std;
ll power(ll x,int y){ll ans=1;for(;y;y>>=1){if(y&1)ans=ans*x%md;x=x*x%md;}return ans;
}
struct node{int l,r,x;
}t[mxn<<2];
struct asker{int a,b,i;
}d[mxn];
int n,q,c,tt,now;
char s[mxn];
ll f[mxn<<1],f1[mxn<<1],fac[mxn<<1],ifac[mxn<<1],ans[mxn],s1[mxn],s2[mxn];
node operator+(node x,node y){return {min(x.l,y.l),max(x.r,y.r),x.x+y.x+(x.r&&y.l<=n?((x.r^y.l)&1?1:2):0)};
}
void build(int p,int l,int r){if(l==r){if(s[l]=='0')t[p]={l,l,0};else t[p]={n+1,0,0};return;}int mid=(l+r)>>1;build(p<<1,l,mid);build(p<<1|1,mid+1,r);t[p]=t[p<<1]+t[p<<1|1];
}
void upd(int p,int x,int l,int r){if(l==r){if(s[l]=='0')t[p]={l,l,0};else t[p]={n+1,0,0};return;}int mid=(l+r)>>1;if(x<=mid)upd(p<<1,x,l,mid);else upd(p<<1|1,x,mid+1,r);t[p]=t[p<<1]+t[p<<1|1];
}
void init(int n){f[0]=f1[0]=1;rep(i,1,n)f[i]=f[i-1]*2%md,f1[i]=f1[i-1]*500000004%md;fac[0]=1;rep(i,1,n)fac[i]=fac[i-1]*i%md;ifac[n]=power(fac[n],md-2);drep(i,n,1)ifac[i-1]=ifac[i]*i%md;
}
inline ll C(int n,int m){if(n<m||m<0)return 0;return fac[n]*ifac[m]%md*ifac[n-m]%md;
}
void get(int m,int c){s2[now]=f[n]%md;d[++tt]={m+c+1,c,now};s1[now]=(md-f1[m+c])*f[n-1]%md;
}
void solve(){if(!c){ans[now]=f[n];return;}int p=(t[1].l&1?1:2)+t[1].x;get((n-p)>>1,c-1);
}
signed main(){scanf("%d%d%s",&n,&q,s+1);rep(i,1,n)if(s[i]=='0')c++;init(n<<1);build(1,1,n);rep(i,0,q)s1[i]=1,s2[i]=0;now=0;solve();int x;rep(i,1,q){scanf("%d",&x);if(s[x]=='1')c++;else c--;s[x]^=1;upd(1,x,1,n);now=i;solve();}int l=0,r=0;ll vl=1;rep(i,1,tt){while(l<d[i].a)vl=(vl*2-C(l,r))%md,l++;while(r>d[i].b)vl=(vl-C(l,r))%md,r--;while(l>d[i].a)vl=(vl+C(l-1,r))*500000004%md,l--;while(r<d[i].b)vl=(vl+C(l,r+1))%md,r++;ans[d[i].i]=vl;}rep(i,0,q){cout<<((ans[i]*s1[i]+s2[i])%md+md)%md<<'\n';}return 0;
}
http://www.jsqmd.com/news/43842/

相关文章:

  • 2025年11月高温轴承工厂排行榜,高温轴承公司推荐,耐高温轴承供应厂家,耐高温轴承源头厂家-骄铭轴承
  • B4185 [中山市赛 2024/科大国创杯小学组 2023] 倍数子串/子串 题解
  • 20251117 - Manacher
  • Prufer序列和Cayley定理
  • 完整教程:PB级数据洪流下的抉择:从大数据架构师视角,深度解析时序数据库选型与性能优化(聚焦Apache IoTDB)
  • 软件工程学习日志2025.11.18
  • 11.14 事务的四大特性 并发事务问题
  • SQL逻辑查询语句执行顺序
  • 解码死锁的产生与解决
  • uniapp的rich-text在渲染长数字与长字母时不换行
  • 头部厂商易路AI HR实战解析:从人海战术到智能闭环的合规跃迁
  • 【微信小程序 + 登录流程】微信小程序授权登录完整流程,一篇搞定!(含代码实现) - 详解
  • linux auto
  • 记录相关的操作
  • P9846 [ICPC 2021 Nanjing R] Paimons Tree
  • linux audio
  • 不同方向的箭头符号
  • 11.13 表子查询 内连接补充 事务
  • Elasticsearch 7.17 集群添加账号密码
  • 深入解析:推荐给硬件工程师的技术书籍
  • 全球可观测厂商怎么选?2025年可观测性平台深度分析
  • 2025 ICPC 沈阳区域赛 游记
  • 在树莓派中配置X11桌面的HDMI配置
  • 2025年最新苗木批发基地综合实力排行榜单,国槐/樱花/红叶李/苗木/金叶复叶槭/红叶石楠/丝棉木/油松/白蜡/金叶女贞/紫薇种植推荐
  • 2025 最新移动厕所源头厂家推荐:千台设备储备 + 全国服务网点,国际测评认证优质品牌榜单工地临时/户外移动厕所出租/移动公厕租赁/出租移动厕所公司推荐
  • 透视数字世界:可观测平台如何破解企业智能运维困局
  • kotlin中HorizontalDivider() ModalBottomSheet background()
  • 2025 履带厂家最新推荐排行榜:聚焦高性能钢制履带与履带板,权威测评优选榜单履带板/履带钢/钢制履带/钢履带/履带型钢公司推荐
  • 11月18号
  • 2025 最新黄锈石实力厂家推荐排行榜:无辐射环保石材权威测评,光面 / 荔枝面 / 路沿石优质供应商精选黄锈石菠萝面/黄锈石滚石/黄锈石蘑菇石公司推荐