尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

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

P14510 夜里亦始终想念着你 miss 题解
📅 发布时间:2026/6/18 22:46:13

验题人题解。

观察所有 \(\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;
}

相关新闻

  • 解码死锁的产生与解决
  • P9846 [ICPC 2021 Nanjing R] Paimons Tree
  • linux audio

最新新闻

  • 微信小程序地址选择器:数据驱动下的省市区三级联动架构解析
  • ComfyUI TTP Toolset未来 roadmap:即将支持的SD3模型与动态切片功能预览
  • S12Z BDC硬件握手协议:非侵入式调试与ACK脉冲机制详解
  • 2026年真空搅拌脱泡一体机深度选型:如何匹配最佳方案 - 速递信息
  • Pwndocker常见问题解决:libc版本兼容性与依赖库问题排查
  • 2026温州放心贵金属回收,CCIC 中检授权收黄金回收铂金回收白银回收持证实体门店 - 中安检金银铂钻回收

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号