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

P11362 [NOIP2024] 遗失的赋值 题解

P11362 [NOIP2024] 遗失的赋值 题解
📅 发布时间:2026/6/19 17:12:50
P11362 [NOIP2024] 遗失的赋值 题解

P11362 [NOIP2024] 遗失的赋值 题解

题目链接

我的博客

前言

笔者在考场上隐约感觉到了什么,感知到T2要比T1简单?但是T2一定是一道数学题,因此笔者使劲推了 \(1\) 个小时的式子,最终因为心态直接崩掉,遗憾离场。

直到现在笔者才鼓起勇气,重新征服一下这道题。发现其实真的不难想,确实是一道绿题。这告诉我们——真的心态很重要。。。

补提参考

思路

考虑一个区间内可以放下 \(x\) 个二元限制组合法的方案数,记为 \(F(x)\)。

考虑二元限制的第一个数与左端点相同。此时下一个数也一定有限制。这一种情况有 \(v\) 种可能,下一个数就是 \(F(x-1)\)。因此这类情况总方案数为 \(v \times F(x-1)\)

考虑二元限制的第一个数与左端点不同。因为 \(v > 1\),所以第二个数一定有方法和第二个二元限制的第一个数不同。所以,只要后面的每次不和二元限制的第一个数相同,都一定有方法把这个区间所有数全部填上。剩下的二元限制方案数为 \((v^2)^{(x-1)}=v^{2x-2}\),第一个数的方案数为 \(v \times (v-1)\),相乘得到 \(v \times (v-1) \times v^{2x-2}=v^{2x}-v^{2x-1}\)。

以上两种情况相加记为最终答案。

\[F(x)=v \times f(x-1) + v^{2x}-v^{2x-1} \]

边界为 \(F(1)=v^2-v+1\),即二元限制的第一个数与左边的数不同的 \(v(v−1)\) 种情况,加上这两个数相同则右边的两个数也必须相同的 \(1\) 种情况。

将 \(F(x-1)\) 用 \(F(x-2)\) 代入得

\[F(x)=v^{2x}-v^{2x-1}+v \times (v^{2x-2}-v^{2x-3}+v \times F(x-2)) \\ F(x)=v^{2x}-v^{2x-1}+v^{2x-1}-v^{2x-2}+v^2 \times F(x-2) \\ F(x)=v^{2x}-v^{2x-2}+v^2 \times F(x-2) \]

将 \(F(x-2)\) 用 \(F(x-3)\) 代入得

\[F(x)=v^{2x}-v^{2x-2}+v^2 \times (v^{2x-4}-v^{2x-5}+v \times F(x-3)) \\ F(x)=v^{2x}-v^{2x-2}+v^{2x-2}-v^{2x-3}+v^3 \times F(x-3) \\ F(x)=v^{2x}-v^{2x-3}+v^3 \times F(x-3) \]

于是我们得到了

\[F(x)=v^{2x}-v^{2x-k}+v^k \times F(x-k) \]

代入 \(k=x-1\) 得到

\[F(x)=v^{2x}-v^{2x-x+1}+v^{x-1} \times F(1) \\ F(x)=v^{2x}-v^{x+1}+v^{x-1} \times (v^2-v+1) \\ F(x)=v^{2x}-v^{x+1}+v^{x+1}-v^x+v^{x-1} \\ F(x)=v^{2x}- v^x+v^{x-1} \]

最终答案是每两个限制之间的区间的情况数相乘。还需要乘上开头区间和结尾区间的值。

考虑开头。没有左端点的限制,所以可以直接 \(v^{2x}\)。

考虑结尾。没有右端点的限制,也可以直接 \(v^{2x}\)。

代码

const ll mod=1e9+7;
const int N=1e5+10;
int T;
ll n,m,v;
struct node{ll c,d;
}a[N];
bool cmp(node &A,node &B){return A.c<B.c;}//按照输入的下标排序
ll qsm(ll a,ll b){//快速幂,不知道为啥脑子抽抽打成了qsm,将错就错吧ll res=1ll;while(b){if(b&1) res=res*a%mod;a=a*a%mod;b>>=1;}return res;
}
ll F(ll x){//计算F(x)函数ll ans=qsm(v,2*x)%mod;ans=(ans-qsm(v,x)+mod)%mod;//别忘了+modans=(ans+qsm(v,x-1))%mod;return ans%mod;
}
void solve(){ll ans=0ll;n=Read();m=Read();v=Read();for(int i=1;i<=m;i++){a[i].c=Read();a[i].d=Read();}sort(a+1,a+m+1,cmp);ans=qsm(v,2*(a[1].c-1));//开头for(int i=2;i<=m;i++){if(a[i].c==a[i-1].c){if(a[i].d!=a[i-1].d){//不合法puts("0");return ;}else continue;}ans=ans*F(a[i].c-a[i-1].c)%mod;}ans=ans*qsm(v,2*(n-a[m].c))%mod;//结尾printf("%lld\n",ans);return ;
} 
signed main(){	T=Read();while(T--){solve();//多测函数好}return 0;
}

相关新闻

  • CF 2070F Friends and Pizza
  • 上菱空调维修热线电话-24小时全国统一报修
  • 102302139 尚子骐 数据采集与融合作业2

最新新闻

  • 昆明全品类贵金属回收指南,金价实时更新,线下靠谱门店汇总清单 - 奢侈品回收评测
  • 沪上贵金属变现干货汇总:2026 五大黄金回收连锁门店全维度评测 - 奢侈品回收测评
  • 从零开发Java面试刷题作战APP:架构重构、模块闭环、技术栈选型全方案
  • 洪湖上门回收黄金哪家放心 2026大盘行情与避坑全攻略 - 润富黄金回收
  • 曲靖哪里回收黄金靠谱 2026六月实测三家实体门店无套路 - 润富黄金回收
  • 2026苏州黄金回收门店梯队测评,个人闲置黄金变现优选与避雷完整指南 - 奢侈品交易观察员

日新闻

  • 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 号