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;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/961765.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025 年 11 月钢塑复合管厂家推荐排行榜,PSP/衬塑/涂塑/工业/钢衬塑/化工防腐/高强度/缩合式/电磁双热熔钢塑复合管,钢塑复合管件公司推荐

2025 年 11 月钢塑复合管厂家推荐排行榜,PSP/衬塑/涂塑/工业/钢衬塑/化工防腐/高强度/缩合式/电磁双热熔钢塑复合管,钢塑复合管件公司推荐 行业背景与发展趋势 钢塑复合管作为现代工业管道系统的重要组成部分,凭借其…

COLMO洗衣机维修24小时售后服务点电话号码

COLMO洗衣机售后维修电话(24小时/各点)统一客服中心 COLMO洗衣机售后电话:400-1819-193 为了更好地为您提供米恩集成灶维修服务,我们特为您整理了详细的报修流程及常见故障处理方法,希望能为您带来便捷的服务体验。…

科烁集成灶维修服务丨24h在线报修

科烁集成灶全国各售后服务点网点热线号码-《今日汇总》 科烁集成灶售后电话:400-1819-193 为了更好地为您提供米恩集成灶维修服务,我们特为您整理了详细的报修流程及常见故障处理方法,希望能为您带来便捷的服务体验…

比方燃气灶售后维修-全国统一24小时400中心

比方燃气灶全市各区24小时售后服务点 比方燃气灶售后电话:400-1819-193 为了更好地为您提供米恩集成灶维修服务,我们特为您整理了详细的报修流程及常见故障处理方法,希望能为您带来便捷的服务体验。如需帮助,欢迎随…

CF 2070F Friends and Pizza

仍然不会集合幂级数相关。同学你的集合幂级数不过关。 这个题目的预期复杂度第一眼看着可能像是 \(\mathcal{O}(\operatorname{poly}(n)\ V)\),但是细想一下这样或许要跟背包有关,而背包不好表示出两人共选的限制。 …

上菱空调维修热线电话-24小时全国统一报修

上菱空调售后维修电话(24小时)全国统一售后服务 上菱空调售后电话:400-1819-193 为了更好地为您提供米恩集成灶维修服务,我们特为您整理了详细的报修流程及常见故障处理方法,希望能为您带来便捷的服务体验。如需帮…

openharmony部署ollama

需要的文件 通过网盘分享的文件:dot_ollama.tgz链接: https://pan.baidu.com/s/1MW-RgojiF7_R_xiswkMUBg?pwd=ug56 提取码: ug56 --来自百度网盘超级会员v7的分享通过网盘分享的文件:a.tgz链接: https://pan.baidu.…

【算法学习】AC自动机

AC自动机P5357 【模板】AC 自动机 字典树和 kmp 思想的结合。 先把模式串建成一个字符串。然后建立一个fail指针,将他连上失配时应退的尽可能近的节点。我是学习链接

华凌燃气灶全国各市服务点网点热线号码

华凌燃气灶售后维修-全国统一24小时400中心 华凌燃气灶售后电话:400-1819-193 为了更好地为您提供米恩集成灶维修服务,我们特为您整理了详细的报修流程及常见故障处理方法,希望能为您带来便捷的服务体验。如需帮助,…

20234320 2025-2026-1 《网络与系统攻防技术》实验四实验报告

20234320 2025-2026-1 《网络与系统攻防技术》实验四实验报告 1.实验内容 1.1 识别恶意代码的文件类型标识,进行脱壳与字符串提取。 1.2 使用IDA Pro静态或动态分析所给exe文件,找到输出成功信息的方法。 1.3 分析自…

102302139 尚子骐 数据采集与融合作业2

作业一1. 完整代码及运行结果点击查看代码 import requests from bs4 import BeautifulSoup import sqlite3 from datetime import datetime import logging# 配置日志 logging.basicConfig(level=logging.INFO, forma…

深入解析:Redis技术应用

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

6G网络通讯端到端结构

6G网络通讯端到端结构6G网络通讯端到端大结构6G网络通讯端到端结构,还未定型;个人理解供参考:以原有大通讯网络(如现有5G网等)为基础层,现有各类云为服务层,在最终用户和6G接入间增加了AI人工智能层。要达到的目…

万喜消毒柜售后维修中心服务热线电话(2025/已更新)

万喜消毒柜(维修)售后服务中心--报修欢迎您 万喜消毒柜售后电话:400-1819-193 为了更好地为您提供米恩集成灶维修服务,我们特为您整理了详细的报修流程及常见故障处理方法,希望能为您带来便捷的服务体验。如需帮助,…

20232426 2025-2026-1 《网络与系统攻防技术》实验四实验报告

一、实验目标(内容)恶意代码文件类型标识、脱壳与字符串提取 使用IDA Pro静态或动态分析crackme1.exe与crakeme2.exe,寻找特定输入,使其能够输出成功信息 分析一个自制恶意代码样本rada,并撰写报告 取证分析实践二…

HTTP 的方法和状态码 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

华凌燃气灶维修全国各售后号码《今日汇总》

华凌燃气灶售后维修服务热线-号码2025已更新(受理/派单 华凌燃气灶售后电话:400-1819-193 为了更好地为您提供米恩集成灶维修服务,我们特为您整理了详细的报修流程及常见故障处理方法,希望能为您带来便捷的服务体验…

通过远程桌面连接Windows实例, 提示“为安全考虑, 已锁定该用户帐户, 原因是登录尝试或密码更改尝试过多”

问题现象 使用远程桌面、Workbench或者Windows APP等工具远程登录Windows实例时,提示“为安全考虑,已锁定该用户帐户,原因是登录尝试或密码更改尝试过多”或类似错误。 一、锁定根本原因安全策略触发账户保护机制系…

P12504 「ROI 2025 Day1」树上的青蛙

树上最大匹配对数,考虑贪心。怎么感觉题解都没有很讲明白复杂度优化的过程,也可能是我太蠢了。 \(d\) 为偶数的情况 \(d\to d-1\) 没有影响,所以只讨论 \(d\) 为奇数。 假设 \(lca(u,v)=w\),\(V_i=\{u|dep_u=i\}\)…

重练算法(代码随想录版) day6 - 哈希表part1

day5周日休息一天 今日刷题量:8 当前刷题总量:33 Easy: 20 Mid: 12 Hard: 1 Day 6 基础理论 1.哈希表通常用来判断一个元素是否出现在集合里,牺牲空间来换时间。 2.通过哈希函数得到索引,将元素存储在索引对应的位…