首页 > 其他分享 >[总结]2023-1-7B组模拟赛

[总结]2023-1-7B组模拟赛

时间:2023-01-09 10:56:19浏览次数:39  
标签:7B cdot dfrac bmod 2a 2023 4a 模拟 equiv

[总结]2023-1-7B组模拟赛

P0 前言

感觉比赛状态回来了,但是思维还没上来。

P1 心路历程

又是先全部看题。T1有点奇怪,没有多想。T2看到数据感觉有70pts的 \(n^2\) dp。T3准备好50pts最短路乱搞。T4明显有暴力35pts+循环节35pts,最后30pts没看出来。

先打T2。设状态 \(f(i,j)\) 为第i天能量为j的最大价值,转移显然 \(f(i,j)=\max(f(i-1,j)+j,f(i-1,j-1))-a[i]\)。就是昨天是否能量到达了j。注意一下如果\(f(i-1,j)\)或者\(f(i-1,j-1)\) 为负数则不能取负数那一个。初始化注意一开始的能量只能是L,大于L的不行。即\(f(0,L)=0,f(0,L+1\to L+n)=-\text{INF}\)。并且第二维显然是\(L\to L+n\),可以拿数组存实际数值,第二维存这个数值在这个数组的下标。

接着T1。看完样例显然当n=2时有解,又根据题目当\(a[i]=a[j]\) 时可以减少一个堆,就有两种方式进行操作。第一种,如果\(a[i]+[j]=2^x\),就while搞;第二种,如果有$a[i]=3 \cdot a[j] $ 或者 \(a[j]=3 \cdot a[i]\),搞i,j。当然,数据还可能没有这两种。那么就随机数乱搞。这些操作都要无限循环直到满足只剩一堆。

然后T3。太久没打priority_queue+Dij,有点慌。不过最后默写完了。还补了一个没有用dfs。

最后T4。我当然知道他有循环节,但是我居然不太会。(?)就是担心那种前面几个不是循环节的那种数列。打了个35pts的暴力,最后在那算,搞半天数学无果。

P2 赛后情况

T1、T2没问题,T3、T4爆0!

T4的模数没有模完整,T3输入问题!

我是个**,\(185 \to 100,\text{rank 8}\to\text{rank31}\)。

P3题目分析

T1

网上正解太骚,同学讲的还行。

考虑奇偶性。显然有偶数个石子数为奇数的堆。那么,不妨让每两个奇数堆进行操作,偶数堆不理。操作完后全体堆的石子数除以2。因为它们本质上是一样的。除完后显然还有奇数,继续这样做,直到只剩一堆或者说是只剩一个石子。

T2

贪心。考虑两种情况。一种是不够吃,一种是够吃。

先考虑后者。那么够吃有两种选择。第一种:升级。第二种:制造食物。所以什么时候升级、什么时候制造食物是一个需要考虑的问题。设当前是第x天,前x天都升级,后n-x都制造食物。显然这样做的答案为 \((L+x)(n-x)\)。其他题解说当\(L+x<n-x\)时就升级,否则就制造食物,我也不知道为啥。

再考虑前者。不够吃只能被迫制造食物。如果这一天制造完了后还不够,那么就需要前面升级的天制造食物。-1情况显然。

所以设add为当目前为止升级的天数,x为现在是第几天。那么第一种情况很简单,第二种情况就变成了\(L+add<n-x\)时升级。

T3

正解斜率优化dp。状态还算简单,设\(f(i)\)为到i城市的最小代价,则有 \(f(i)=\min_{j>i}\{f(j)+(j-i)\cdot a[i]+b[j]\}\)。这是倒推的做法,可以理解为所有的边反着建,从n城市推到1城市。

考虑j<k且选j点比选k点优。则有\(f(j)+(j-i)\cdot a[i]+b[j]<f(k)+(k-i)\cdot a[i]+b[k]\),化简,得\(f(j)+a[i]\cdot j+b[j]<f[k]+a[i]\cdot k+b[k]\)。再设\(g(i)=f(i)+b[i]\),带入得\(g(j)+a[i]\cdot j<g(k)+a[i]\cdot k\)。

\[g(j)+a[i]\cdot j<g(k)+a[i]\cdot k \\ -a[i]\cdot (k-j)<g[k]-g[j] \\ -a[i]<\dfrac{g[k]-g[j]}{k-j} \\ \dfrac{g[k]-g[j]}{k-j}>-a[i] \]

那么,左边就是过点\((k,g[k]),(j,g[j])\) 的斜率。斜率大于\(-a[i]\)说明j比k优。此时就可用单调队列来维护点集,需要一个最优点时二分即可。但我不知道为什么要用单调递减的队列。

T4

分为3个档,第一个暴力,第二个找循环节,第三个数学。

来说一下第三个。就是一个配方思想加上题目给的条件。

设 \(x=x_i,y=x_{i-1}\),则

\[\begin{align} x&=ay^2+by+c\\ x&=(ay^2+by+\dfrac{b^2}{4a})-\dfrac{b^2}{4a}+c\\ x&=a(y^2+\dfrac{b}{a}y+\dfrac{b^2}{4a^2})-\dfrac{b^2}{4a}+c\\ x&=a(y+\dfrac{b}{2a})^2-\dfrac{b^2}{4a}+c\\ x+\dfrac{b}{2a}&=a(y+\dfrac{b}{2a})^2+\dfrac{2b-b^2}{4a}+c\\ x+\dfrac{b}{2a}&=a(y+\dfrac{b}{2a})^2\\ a(x+\dfrac{b}{2a})&=[a(y+\dfrac{b}{2a})]^2 \end{align} \]

我们现在来仔细看一下这个式子\(a(x+\dfrac{b}{2a})=[a(y+\dfrac{b}{2a})]^2\),不放把 \(x=x_i,y=x_{i-1}\)带进去,得\(a(x_i+\dfrac{b}{2a})=[a(x_{i-1}+\dfrac{b}{2a})]^2\)。我们知道\(4ac=b^2-2b\),所以\(c=\dfrac{b^2-2b}{4a}\),而且\(x_{i-1}=ax_{i-2}^2+bx_{i-2}+c\),再带进去,得

\[\begin{align} a(x_i+\dfrac{b}{2a})&=[a(ax_{i-2}^2+bx_{i-2}+\dfrac{b^2-2b}{4a}+\dfrac{b}{2a})]^2\\ a(x_i+\dfrac{b}{2a})&=[a(ax_{i-2}^2+bx_{i-2}+\dfrac{b^2}{4a}]^2\\ a(x_i+\dfrac{b}{2a})&=[a^2(x_{i-2}+\dfrac{b}{2a})^2]^2\\ a(x_i+\dfrac{b}{2a})&=[a(x_{i-2}+\dfrac{b}{2a})]^{2\times2}\\ a(x_i+\dfrac{b}{2a})&=[a(x_{i-2}+\dfrac{b}{2a})]^4 \end{align} \]

我们仔细观察一下这两个东西:

\[a(x_i+\dfrac{b}{2a})=[a(x_{i-1}+\dfrac{b}{2a})]^2\\ a(x_i+\dfrac{b}{2a})=[a(x_{i-2}+\dfrac{b}{2a})]^4 \]

注意到右边的指数和下标有一种关系,具体来说,就是:

\[a(x_i+\dfrac{b}{2a})=[a(x_{i-p}+\dfrac{b}{2a})]^{2^p} \]

这个也可用归纳法证明。所以,可以得到

\[\begin{align} a(x_n+\dfrac{b}{2a})&=[a(x_0+\dfrac{b}{2a})]^{2^n}\\ x_n&=\dfrac{[a(x_0+\dfrac{b}{2a})]^{2^n}}{a}-\dfrac{b}{2a}\\ x_n&=a^{2^n-1}\cdot (x0+\dfrac{b}{2a})^{2^n}-\dfrac{b}{2a} \end{align} \]

但是指数太大会爆掉怎么办?题目给定m为质数,而又让你去模m,于是我们想到费马小定理:当\(m\)是质数时,并且\(m\nmid a\)时,则有\(a^{m-1}\equiv 1(\bmod m)\)。于是我们可得 \(a^{2^n-1}\equiv a^{(2^n-1) \bmod (m-1)} (\bmod m)\)。

可以假设\(a^{k(m-1)}\cdot a^{2^n-1-k(m-1)}=a^{2^n-1}\),其中\(k=\lfloor \dfrac{2^n-1}{m-1}\rfloor\)。我们知道\((p_1\cdot p_2)\bmod q=p1\bmod q\cdot p_2\bmod q\),于是\(a^{2^n-1}\bmod m=a^{k(m-1)}\bmod m\cdot a^{2^n-1-k(m-1)}\bmod m\),然后\(a^{k(m-1)}=[a^{(m-1)}]^k\)。根据同余定理:如果\(a\equiv b(\bmod q)\),那么\(a^k\equiv b^k(\bmod q)\);并且\(a^{m-1}\equiv 1(\bmod m)\),所以\([a^{m-1}]^k\equiv 1^k\equiv 1(\bmod m)\)。

所以\(a^{2^n-1}\bmod m=a^{2^n-1-k(m-1)}\bmod m\to a^{2^n-1}\equiv a^{2^n-1-k(m-1)}(\bmod m)\),根据余数的定义,\(2^n-1-k(m-1)\)就是\(2^n-1\bmod(m-1)\)。所以得到了\(a^{2^n-1}\equiv a^{(2^n-1) \bmod (m-1)} (\bmod m)\)。

P4 总结

题目都是打起来不难,想起来比较难。尤其是T4,推导和证明真的很难。下次要检查检查程序,不要再丢分了。并且要加强联系斜率优化的题目。

标签:7B,cdot,dfrac,bmod,2a,2023,4a,模拟,equiv
From: https://www.cnblogs.com/xmtxlym/p/17036326.html

相关文章

  • 2022年度总结 2023年度规划
    2022年计划1、完善爬虫项目;......
  • 2023年英文外链代发指南
    大家好,本期光算为大家分享一篇关于英文外链建设最全的指南,祝大家2023年外贸出海顺顺利利。本文由光算创作,内容如被删减或修改,属于剽窃行为,各位请酌情阅读。我们知道要做谷歌......
  • 数组模拟环形队列
    图示:代码:1importjava.util.Scanner;23publicclassRingQueueTest{4publicstaticvoidmain(String[]args){5//创建一个环形队......
  • 2023.1.9 学习
    一、优势相比传统的机械传感器,MEMS具有着巨大的竞争优势:1.MEMS传感器具有着体积小、重量轻、功耗低的特点。其内部结构可达微米甚至纳米量级。同时其内部的机械部件由于......
  • 2023/1/9 周报
    周报本周总结​ 这周有两天是出去找同学联络感情,所以有两天基本是没啥心思刷题的。然后这周也是namomocamp的开始,听这个camp总的来说收益很大,不过难度很高,需要花费很多......
  • 【LeetCode数组#5行为模拟】螺旋矩阵II
    螺旋矩阵II力扣题目链接(opensnewwindow)给定一个正整数n,生成一个包含1到n^2所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入:3输出:[[1,......
  • 2023.1-09 python基础
    列表常用方法append增加一个元素a.append('aaaa')extend增加多个a.extend([1,2,3,4,5,6])index检索,个人理解类似于findprint(a.index("is"))inset指定位置插入......
  • 2023
    2023.1.9周报本周总结:开始恢复正常。这周先半段在学数论,主要在推式子还有学一些奇奇怪怪的东西,看了很多文章,但写的题目比较少,主要是眼睛过题和总结。后半段就有点小摆,参......
  • UIAutomation.0.8.7B3.samples uia powershell 插件例子解析
     uiautomationpowershell插件例子解析  作者给出了示例,不过在中文版Windows上需要略微修改下。因为中文版的进程名名字跟程序名字可能不一样。作者给出里例子是按首......
  • 2023.1 做个开放的人
    主动做一个开放的人,对于看不懂的人或事,即使感觉不可理喻,也不会随意做出评判或否定,没有经过充分了解,你掌握的信息可能造成的不过是偏见。在与人交流中,学会倾听,而不是急于表......