<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-CN"><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://kdk550.github.io/feed.xml" rel="self" type="application/atom+xml"/><link href="https://kdk550.github.io/" rel="alternate" type="text/html" hreflang="zh-CN"/><updated>2026-07-15T03:40:14+00:00</updated><id>https://kdk550.github.io/feed.xml</id><title type="html">magicat</title><subtitle>magicat 的个人技术博客，记录算法竞赛、数据结构、数学与 AI 工程实践。 </subtitle><entry><title type="html">RTX5060TI 配置Xinference</title><link href="https://kdk550.github.io/blog/2025/cnblogs-19161022/" rel="alternate" type="text/html" title="RTX5060TI 配置Xinference"/><published>2025-10-23T08:57:00+00:00</published><updated>2025-10-23T08:57:00+00:00</updated><id>https://kdk550.github.io/blog/2025/cnblogs-19161022</id><content type="html" xml:base="https://kdk550.github.io/blog/2025/cnblogs-19161022/"><![CDATA[<h1 id="rtx5060ti-配置xinference">RTX5060TI 配置Xinference</h1> <h2 id="cuda">CUDA</h2> <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="o">(</span>llama-factory<span class="o">)</span> D:<span class="se">\P\l</span>lm<span class="se">\L</span>LaMA-Factory&gt;nvcc <span class="nt">-V</span>
nvcc: NVIDIA <span class="o">(</span>R<span class="o">)</span> Cuda compiler driver
Copyright <span class="o">(</span>c<span class="o">)</span> 2005-2025 NVIDIA Corporation
Built on Wed_Apr__9_19:29:17_Pacific_Daylight_Time_2025
Cuda compilation tools, release 12.9, V12.9.41
Build cuda_12.9.r12.9/compiler.35813241_0

<span class="o">(</span>llama-factory<span class="o">)</span> D:<span class="se">\P\l</span>lm<span class="se">\L</span>LaMA-Factory&gt;nvidia-smi
Thu Oct 23 15:24:02 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 576.88                 Driver Version: 576.88         CUDA Version: 12.9     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                  Driver-Model | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|<span class="o">=========================================</span>+<span class="o">========================</span>+<span class="o">======================</span>|
|   0  NVIDIA GeForce RTX 5060 Ti   WDDM  |   00000000:01:00.0  On |                  N/A |
|  0%   38C    P0             24W /  180W |    2728MiB /  16311MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
</code></pre></div></div> <h2 id="配置环境和安装依赖">配置环境和安装依赖</h2> <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>conda create <span class="nt">-n</span> Xinference <span class="nv">python</span><span class="o">=</span>3.10.14
conda activate Xinference
pip <span class="nb">install</span> <span class="s2">"xinference[all]"</span>
pip uninstall torch torchvision torchaudio <span class="nt">-y</span>
pip3 <span class="nb">install </span>torch torchvision <span class="nt">--index-url</span> https://download.pytorch.org/whl/cu128 <span class="nt">--no-deps</span>
</code></pre></div></div> <h2 id="下载模型">下载模型</h2> <p>在这个网站自助 <a href="https://modelscope.cn/">https://modelscope.cn/</a></p> <h2 id="运行xinference">运行Xinference</h2> <p>windows不支持0.0.0.需要使用127.0.0.1 ip的方式</p> <p>xinference-local –host 0.0.0.0 –port 9997</p> <p>xinference-local –host 127.0.0.1 –port 9997</p> <p><a href="https://blog.csdn.net/TZfool/article/details/141167586" title="Windows下启动Xinference报错 RuntimeError: Cluster is not available after multiple attempts-CSDN博客">Windows下启动Xinference报错 RuntimeError: Cluster is not available after multiple attempts-CSDN博客</a></p>]]></content><author><name></name></author><category term="AI"/><summary type="html"><![CDATA[RTX5060TI 配置Xinference CUDA 配置环境和安装依赖 下载模型 在这个网站自助 运行Xinference windows不支持0.0.0.需要使用127.0.0.1 ip的方式 xinference-local --host 0.0.0.0 --port 9997 xinference-loca…]]></summary></entry><entry><title type="html">npu配置Xinference环境，并部署embedding和rerank模型</title><link href="https://kdk550.github.io/blog/2025/cnblogs-19161008/" rel="alternate" type="text/html" title="npu配置Xinference环境，并部署embedding和rerank模型"/><published>2025-10-23T08:32:00+00:00</published><updated>2025-10-23T08:32:00+00:00</updated><id>https://kdk550.github.io/blog/2025/cnblogs-19161008</id><content type="html" xml:base="https://kdk550.github.io/blog/2025/cnblogs-19161008/"><![CDATA[<p>在我司服务器上部署，但是尝试了其他文章的docker镜像，出现算子错误等问题，后面又用回</p> <p>参考文献<br/> <a href="https://blog.csdn.net/sccum/article/details/145995250">https://blog.csdn.net/sccum/article/details/145995250</a><br/> <a href="https://blog.csdn.net/qq_41994821/article/details/147223327">https://blog.csdn.net/qq_41994821/article/details/147223327</a><br/> <a href="https://ascend.readthedocs.io/zh-cn/latest/sources/sentence_transformers/install.html">https://ascend.readthedocs.io/zh-cn/latest/sources/sentence_transformers/install.html</a></p> <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>docker run <span class="nt">-it</span> <span class="nt">-d</span> <span class="nt">--net</span><span class="o">=</span>host <span class="nt">--shm-size</span><span class="o">=</span>20g  <span class="se">\</span>
  <span class="nt">--name</span> Xinf <span class="se">\</span>
  <span class="nt">--device</span> /dev/davinci4 <span class="se">\</span>
  <span class="nt">--device</span> /dev/davinci5 <span class="se">\</span>
  <span class="nt">--device</span> /dev/davinci_manager <span class="se">\</span>
  <span class="nt">--device</span> /dev/devmm_svm <span class="se">\</span>
  <span class="nt">--device</span> /dev/hisi_hdc <span class="se">\</span>
  <span class="nt">-v</span> /usr/local/dcmi:/usr/local/dcmi <span class="se">\</span>
  <span class="nt">-v</span> /usr/local/bin/npu-smi:/usr/local/bin/npu-smi <span class="se">\</span>
  <span class="nt">-v</span> /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ <span class="se">\</span>
  <span class="nt">-v</span> /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info <span class="se">\</span>
  <span class="nt">-v</span> /etc/ascend_install.info:/etc/ascend_install.info <span class="se">\</span>
  <span class="nt">-v</span> /root/.cache:/root/.cache <span class="se">\</span>
  <span class="nt">-v</span> /share/models/embedding/bge-reranker-v2-m3:/bge-reranker-v2-m3:ro <span class="se">\</span>
  <span class="nt">-p</span> 9997:9997 <span class="se">\</span>
  <span class="nt">-it</span> <span class="nv">$IMAGE</span> bash

<span class="c"># 终端1</span>
<span class="nb">export </span><span class="nv">XINFERENCE_ENDPOINT</span><span class="o">=</span>http://0.0.0.0:9997
xinference-local <span class="nt">--host</span> 0.0.0.0 <span class="nt">--port</span> 9997
<span class="c"># 终端2</span>
<span class="nb">export </span><span class="nv">XINFERENCE_ENDPOINT</span><span class="o">=</span>http://127.0.0.1:9997
<span class="c">## 本地下载重排序模型之后</span>
xinference launch <span class="nt">--model-name</span> bge-reranker-v2-m3 <span class="nt">--model-type</span> rerank <span class="nt">--model-path</span> /bge-reranker-v2-m3
</code></pre></div></div> <p>后面我直接通过打开<code class="language-plaintext highlighter-rouge">http://127.0.0.1:9997</code>配置embedding和rerank模型。</p>]]></content><author><name></name></author><category term="AI"/><summary type="html"><![CDATA[在我司服务器上部署，但是尝试了其他文章的docker镜像，出现算子错误等问题，后面又用回 参考文献 后面我直接通过打开 http://127.0.0.1:9997 配置embedding和rerank模型。]]></summary></entry><entry><title type="html">RTX 5060TI 部署llama-factory</title><link href="https://kdk550.github.io/blog/2025/cnblogs-19160805/" rel="alternate" type="text/html" title="RTX 5060TI 部署llama-factory"/><published>2025-10-23T07:25:00+00:00</published><updated>2025-10-23T07:25:00+00:00</updated><id>https://kdk550.github.io/blog/2025/cnblogs-19160805</id><content type="html" xml:base="https://kdk550.github.io/blog/2025/cnblogs-19160805/"><![CDATA[<p>搭建环境</p> <p>NVIDIA驱动略，CUDA略</p> <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="o">(</span>llama-factory<span class="o">)</span> D:<span class="se">\P\l</span>lm<span class="se">\L</span>LaMA-Factory&gt;nvcc <span class="nt">-V</span>
nvcc: NVIDIA <span class="o">(</span>R<span class="o">)</span> Cuda compiler driver
Copyright <span class="o">(</span>c<span class="o">)</span> 2005-2025 NVIDIA Corporation
Built on Wed_Apr__9_19:29:17_Pacific_Daylight_Time_2025
Cuda compilation tools, release 12.9, V12.9.41
Build cuda_12.9.r12.9/compiler.35813241_0

<span class="o">(</span>llama-factory<span class="o">)</span> D:<span class="se">\P\l</span>lm<span class="se">\L</span>LaMA-Factory&gt;nvidia-smi
Thu Oct 23 15:24:02 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 576.88                 Driver Version: 576.88         CUDA Version: 12.9     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                  Driver-Model | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|<span class="o">=========================================</span>+<span class="o">========================</span>+<span class="o">======================</span>|
|   0  NVIDIA GeForce RTX 5060 Ti   WDDM  |   00000000:01:00.0  On |                  N/A |
|  0%   38C    P0             24W /  180W |    2728MiB /  16311MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
</code></pre></div></div> <p>如果出现环境冲突，请尝试使用pip install –no-deps -e解决</p> <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>conda create <span class="nt">-n</span> llama-factory <span class="nv">python</span><span class="o">=</span>3.11.11
conda activate llama-factory
git clone https://github.com/hiyouga/LLaMA-Factory.git
<span class="nb">cd </span>LLaMA-Factory
pip <span class="nb">install</span> <span class="nt">-e</span> <span class="s2">".[metrics]"</span>
pip uninstall torch torchvision torchaudio <span class="nt">-y</span>
pip3 <span class="nb">install </span>torch torchvision <span class="nt">--index-url</span> https://download.pytorch.org/whl/cu128
pip <span class="nb">install </span>bitsandbytes

<span class="o">(</span>llama-factory<span class="o">)</span> D:<span class="se">\P\l</span>lm<span class="se">\L</span>LaMA-Factory&gt;python
Python 3.11.11 | packaged by Anaconda, Inc. | <span class="o">(</span>main, Dec 11 2024, 16:34:19<span class="o">)</span> <span class="o">[</span>MSC v.1929 64 bit <span class="o">(</span>AMD64<span class="o">)]</span> on win32
Type <span class="s2">"help"</span>, <span class="s2">"copyright"</span>, <span class="s2">"credits"</span> or <span class="s2">"license"</span> <span class="k">for </span>more information.
<span class="o">&gt;&gt;&gt;</span> import torch
<span class="o">&gt;&gt;&gt;</span> print<span class="o">(</span>torch.__version__<span class="o">)</span>    <span class="c"># '2.9.0+cu128'</span>
2.9.0+cu128
<span class="o">&gt;&gt;&gt;</span> print<span class="o">(</span>torch.cuda.is_available<span class="o">())</span>    <span class="c"># True</span>
True
</code></pre></div></div> <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>llamafactory-cli webui
</code></pre></div></div> <p><a href="http://localhost:7860/">http://localhost:7860/</a></p>]]></content><author><name></name></author><category term="AI"/><summary type="html"><![CDATA[搭建环境 NVIDIA驱动略，CUDA略 如果出现环境冲突，请尝试使用pip install --no-deps -e解决]]></summary></entry><entry><title type="html">XCPC最后的故事</title><link href="https://kdk550.github.io/blog/2024/cnblogs-18440950/" rel="alternate" type="text/html" title="XCPC最后的故事"/><published>2024-09-29T15:21:00+00:00</published><updated>2024-09-29T15:21:00+00:00</updated><id>https://kdk550.github.io/blog/2024/cnblogs-18440950</id><content type="html" xml:base="https://kdk550.github.io/blog/2024/cnblogs-18440950/"><![CDATA[<p>update：为了学弟的救赎，合作在2024年ICPC昆明和香港拿下铜和银</p> <p>最后在23年的桂林和济南拿下了两个铜牌，于24年5月在广州打了退役之战</p> <h1 id="end">end</h1> <p>换blog了 <a href="https://kdk550.github.io/">https://kdk550.github.io/</a></p>]]></content><author><name></name></author><category term="posts"/><summary type="html"><![CDATA[update：为了学弟的救赎，合作在2024年ICPC昆明和香港拿下铜和银 最后在23年的桂林和济南拿下了两个铜牌，于24年5月在广州打了退役之战 end 换blog了]]></summary></entry><entry><title type="html">三轮考核</title><link href="https://kdk550.github.io/blog/2023/cnblogs-17786697/" rel="alternate" type="text/html" title="三轮考核"/><published>2023-10-25T03:07:00+00:00</published><updated>2023-10-25T03:07:00+00:00</updated><id>https://kdk550.github.io/blog/2023/cnblogs-17786697</id><content type="html" xml:base="https://kdk550.github.io/blog/2023/cnblogs-17786697/"><![CDATA[<h1 id="三轮考核">三轮考核</h1> <p><a href="https://www.luogu.com.cn/blog/ezoixx130/codeforces-tutorial">Codeforces游玩攻略</a> : <a href="https://www.luogu.com.cn/blog/ezoixx130/codeforces-tutorial">https://www.luogu.com.cn/blog/ezoixx130/codeforces-tutorial</a></p> <p>考核标准：codeforces rating <span class="math inline">(\geq)</span> 1200</p> <p>任务 ：</p> <ol> <li>自行参加codeforces的div.2 3 4的比赛，并赛后补题</li> <li>设置组织为 Shaoguan University</li> <li>自行组织每周三，周六，周日下午的训练（我会告诉第1个人，接下来6个人轮流接手），在机房的提交记录可抵扣工作室打卡时长（2h）</li> <li>有事找我请假</li> <li>在工作室社交社交</li> <li>私发我全平台的题量</li> <li>把自己的codeforces昵称发到群里，<br/> 格式：姓名 codeforces昵称<br/> 例：t宝 tourist</li> <li>关于debug，不能运行：一段一段注释程序，直到能运行，即知道错误代码在何处；答案错误：在代码某处打印其变量的值；死循环：解决方法同“不能运行”。在很多情况下，打印变量，注释代码可以解决绝大多数场景的问题</li> <li>学习主要算法（暂时想到这么多）： <ol> <li>排序</li> <li>前缀和差分</li> <li>栈，队列</li> <li>搜索 dfs bfs</li> <li>存图，dfs bfs 遍历图</li> <li>二分查找，二分答案</li> <li>双指针算法</li> <li>快速幂</li> <li>最大公约数，最小公倍数</li> <li>分解质因数，埃式筛法，线性筛法</li> <li>逆元（会求就行）</li> </ol> </li> </ol> <p><img src="/assets/img/blog/cnblogs/ddc9dad2304af21bbc70cd091dad48307ed2ff4a82d0eabc4ac484b83ac9a1fd.png" alt="image"/></p>]]></content><author><name></name></author><category term="posts"/><summary type="html"><![CDATA[三轮考核 Codeforces游玩攻略 : 考核标准：codeforces rating \(\geq\) 1200 任务 ： 1. 自行参加codeforces的div.2 3 4的比赛，并赛后补题 2. 设置组织为 Shaoguan University 3. 自行组织每周三，周六，周日下午的训练（我会告诉第1个…]]></summary></entry><entry><title type="html">算法</title><link href="https://kdk550.github.io/blog/2023/cnblogs-17755661/" rel="alternate" type="text/html" title="算法"/><published>2023-10-10T12:29:00+00:00</published><updated>2023-10-10T12:29:00+00:00</updated><id>https://kdk550.github.io/blog/2023/cnblogs-17755661</id><content type="html" xml:base="https://kdk550.github.io/blog/2023/cnblogs-17755661/"><![CDATA[<ol> <li> <p>学习道路：</p> <ol> <li>通过第一学期的算法学习，顺利成为一名算法竞赛选手。</li> <li>学习目标 ：通过科学的方式学习算法，向 ACM-ICPC（是计算机类竞赛最有含金量的比赛）奖牌冲锋</li> <li>在第二学期参加比赛，比赛中学习，学习中比赛，其中每年能够有多次外出比赛的机会</li> </ol> <p>参加的主要赛事（A类赛事或企业认可度高的赛事）：</p> </li> </ol> <table> <thead> <tr> <th style="text-align: center">比赛</th> <th style="text-align: center">日期</th> <th style="text-align: center">赛制</th> </tr> </thead> <tbody> <tr> <td style="text-align: center">蓝桥杯</td> <td style="text-align: center">4/6月</td> <td style="text-align: center">OI</td> </tr> <tr> <td style="text-align: center">天梯赛</td> <td style="text-align: center">4月</td> <td style="text-align: center">IOI</td> </tr> <tr> <td style="text-align: center">广东省大学生程序设计竞赛</td> <td style="text-align: center">5月</td> <td style="text-align: center">ACM</td> </tr> <tr> <td style="text-align: center">国际大学生程序设计邀请赛 &amp; 中国大学生程序设计邀请赛</td> <td style="text-align: center">5月</td> <td style="text-align: center">ACM</td> </tr> <tr> <td style="text-align: center">睿抗</td> <td style="text-align: center">7/8月</td> <td style="text-align: center">IOI</td> </tr> <tr> <td style="text-align: center">百度之星</td> <td style="text-align: center">8/9月</td> <td style="text-align: center">ACM</td> </tr> <tr> <td style="text-align: center">国际大学生程序设计区域赛 &amp; 中国大学生程序设计分站赛</td> <td style="text-align: center">10/11月</td> <td style="text-align: center">ACM</td> </tr> </tbody> </table> <h2 id="c-with-stl-stringmapset">C with STL （string，map，set）</h2> <p><a href="https://oi-wiki.org/lang/">C++基础</a> 学习网址 ： <a href="https://oi-wiki.org/lang/">https://oi-wiki.org/lang/</a></p> <ol> <li>Hello, World!</li> <li>C，C++的输入输出</li> <li>变量</li> <li>运算</li> <li>流程控制语句</li> <li>高级数据类型</li> <li>函数</li> <li>string</li> <li>map，set(C++ 标准库 -&gt; STL容器 -&gt; 关联式容器)</li> </ol> <p>推荐的学习视频：<a href="https://www.icourse163.org/course/PKU-1001553023">程序设计与算法（一）C语言程序设计</a> ： <a href="https://www.icourse163.org/course/PKU-1001553023">https://www.icourse163.org/course/PKU-1001553023</a></p> <p>课后练习做他这个和我们都是一样的，但这个课程配套OJ太老了，还是推荐下面练习的题单</p> <p><img src="/assets/img/blog/cnblogs/e3e9413ef25af0ec7ab8b7c8f378d6e326524e84f5041c441c0794dcdb8b4ad7.png" alt="image"/></p> <p>红色圈起来的部分是和考核强相关的，没圈起来并不意味着不重要</p> <p><img src="/assets/img/blog/cnblogs/2cdae67364de313ea95db1f4ca0d011d079b1912e7b7529fbe8b3ac54807ed86.png" alt="image"/></p> <h2 id="位运算">位运算</h2> <p><a href="https://oi-wiki.org/math/bit/">位运算</a> 学习网址 ： <a href="https://oi-wiki.org/math/bit/">https://oi-wiki.org/math/bit/</a></p> <ol> <li>与、或、异或</li> <li>取反</li> <li>左移和右移</li> <li>复合赋值位运算符</li> <li>关于优先级</li> <li>位运算的应用 <ol> <li>有关 2 的幂的应用</li> <li>判断两非零数符号是否相同</li> <li>换两个数</li> <li>操作一个数的二进制位</li> </ol> </li> <li>*内建函数（选学）</li> </ol> <h2 id="排序">排序</h2> <p><a href="https://oi-wiki.org/basic/sort-intro/">排序</a> 学习网址 ：<a href="https://oi-wiki.org/basic/sort-intro/">https://oi-wiki.org/basic/sort-intro/</a></p> <ol> <li>冒泡排序</li> <li>归并排序</li> <li>桶排序</li> <li>快速排序</li> <li>排序相关 STL</li> <li>*排序应用</li> </ol> <p>Q ：排序的循环，递归都好抽象？我该如何快速掌握排序的算法？</p> <p>A： 学习算法的快速方法就是将程序每次的执行过程打印出来，看出其交换元素或递归区间的改变，详细见代码块。</p> <p>以冒泡排序为例，在学习其算法思想后，将每一阶段交换的位置及代码打印出来，或对着代码用纸笔模拟排序过程有助于掌握算法。</p> <p>Q ：好多排序呀！这么多排序算法竞赛真的用的上吗？要不要学那么多，哪个排序最快，是不是会一个就够了？</p> <p>A ： 各种排序都有其独特的应用场景，冒泡排序和归并排序经常处理有关逆序对的问题；归并排序和快速排序用到了分治，递归的思想，学习这个排序是为了初探分治，递归，让自己能写出具有分治和递归的算法；桶排序元素的值映射到数组下标上，在特定应用背景下和后面学习权值线段树中会用到；平时更多用到的是 <code class="language-plaintext highlighter-rouge">sort(a + 1, a + 1 + n);</code> ，这个功能很强大，对于string, pair,array,和重载了远算符的结构体也能进行排序，所以会在二轮考核的机试中考核 <code class="language-plaintext highlighter-rouge">sort();</code> ，笔试中考察能否正确描述冒泡排序，归并排序，桶排序，快速排序的思想。</p> <div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">#include</span> <span class="cpf">&lt;bits/stdc++.h&gt;</span><span class="cp">
</span>
<span class="k">using</span> <span class="k">namespace</span> <span class="n">std</span><span class="p">;</span>

<span class="kt">int</span> <span class="n">n</span> <span class="o">=</span> <span class="mi">5</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">a</span><span class="p">[</span><span class="mi">10</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="mi">0</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">};</span>
<span class="kt">int</span> <span class="nf">main</span><span class="p">()</span>
<span class="p">{</span>
    <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="s">"init array : "</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="s">" "</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="s">" "</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="s">" "</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="s">" "</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
    <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;=</span> <span class="n">n</span> <span class="o">-</span> <span class="n">i</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span>
            <span class="k">if</span><span class="p">(</span><span class="n">a</span><span class="p">[</span><span class="n">j</span><span class="p">]</span> <span class="o">&gt;</span> <span class="n">a</span><span class="p">[</span><span class="n">j</span> <span class="o">+</span> <span class="mi">1</span><span class="p">])</span>
            <span class="p">{</span>
                <span class="n">swap</span><span class="p">(</span><span class="n">a</span><span class="p">[</span><span class="n">j</span><span class="p">],</span> <span class="n">a</span><span class="p">[</span><span class="n">j</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]);</span>
                <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="s">"swap : "</span><span class="p">;</span>
                <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="s">"i : "</span><span class="o">&lt;&lt;</span><span class="n">i</span><span class="o">&lt;&lt;</span><span class="s">"  j  : "</span><span class="o">&lt;&lt;</span><span class="n">j</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
                <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="s">" "</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="s">" "</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="s">" "</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="s">" "</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
                <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
            <span class="p">}</span>
    <span class="p">}</span>
    <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="s">"end sort : "</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="s">" "</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="s">" "</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="s">" "</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="s">" "</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
    <span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div> <p><img src="/assets/img/blog/cnblogs/fbb3271bdf15708b3602c4420fa80d1ac4c72f1d0dfec586d44d08ce38107a08.png" alt="image"/></p> <h2 id="练习">练习</h2> <p><a href="https://www.luogu.com.cn/training/380528">题单</a> ：<a href="https://www.luogu.com.cn/training/380528">https://www.luogu.com.cn/training/380528</a></p> <p><a href="https://www.luogu.com.cn/training/391817#problems">思维题</a> : <a href="https://www.luogu.com.cn/training/391817#problems">https://www.luogu.com.cn/training/391817#problems</a></p> <p><a href="https://www.luogu.com.cn/training/385785#problems">模拟考核</a> : <a href="https://www.luogu.com.cn/training/385785#problems">https://www.luogu.com.cn/training/385785#problems</a></p> <p>注意！这个题单是动态更新的，对于题号CF或者AT开头的题目，需要你去题目来源网站注册账号，提交submit</p> <p>对于不会的题目，可以再想想，也可以看题解或者在群里面问。</p> <p><img src="/assets/img/blog/cnblogs/8b6c23d16ced04553770b22715600656219485f71d6d5d021b9627bdfdc2e570.png" alt="image"/></p> <p><img src="/assets/img/blog/cnblogs/a4cb6e5604b9873771c2e36d0dda5e3feb98566adce1ac9a7692fba41eee0b73.png" alt="image"/></p>]]></content><author><name></name></author><category term="posts"/><summary type="html"><![CDATA[1. 学习道路： 1. 通过第一学期的算法学习，顺利成为一名算法竞赛选手。 2. 学习目标 ：通过科学的方式学习算法，向 ACM-ICPC（是计算机类竞赛最有含金量的比赛）奖牌冲锋 3. 在第二学期参加比赛，比赛中学习，学习中比赛，其中每年能够有多次外出比赛的机会 参加的主要赛事（A类赛事或企业认可度高的赛事）： 比…]]></summary></entry><entry><title type="html">2022 China Collegiate Programming Contest (CCPC) Weihai Site EAJGCI</title><link href="https://kdk550.github.io/blog/2023/cnblogs-17745941/" rel="alternate" type="text/html" title="2022 China Collegiate Programming Contest (CCPC) Weihai Site EAJGCI"/><published>2023-10-07T03:41:00+00:00</published><updated>2023-10-07T03:41:00+00:00</updated><id>https://kdk550.github.io/blog/2023/cnblogs-17745941</id><content type="html" xml:base="https://kdk550.github.io/blog/2023/cnblogs-17745941/"><![CDATA[<h2 id="2022-china-collegiate-programming-contest-ccpc-weihai-site"><a href="https://codeforces.com/gym/104023">2022 China Collegiate Programming Contest (CCPC) Weihai Site</a></h2> <p>目录</p> <ul> <li><a href="/blog/2023/cnblogs-17745941/#2022-china-collegiate-programming-contest-ccpc-weihai-site">2022 China Collegiate Programming Contest (CCPC) Weihai Site</a></li> <li><a href="/blog/2023/cnblogs-17745941/#vp概况">VP概况</a></li> <li><a href="/blog/2023/cnblogs-17745941/#e---python-will-be-faster-than-c">E - Python Will be Faster than C++</a></li> <li><a href="/blog/2023/cnblogs-17745941/#a---dunai">A - Dunai</a></li> <li><a href="/blog/2023/cnblogs-17745941/#j---eat-sleep-repeat">J - Eat, Sleep, Repeat</a></li> <li><a href="/blog/2023/cnblogs-17745941/#g---grade-2">G - Grade 2</a></li> <li><a href="/blog/2023/cnblogs-17745941/#c---grass">C - Grass</a></li> <li><a href="/blog/2023/cnblogs-17745941/#-i---dragon-bloodline">I - Dragon Bloodline</a></li> </ul> <h2 id="vp概况">VP概况</h2> <p><img src="/assets/img/blog/cnblogs/8bb138d2221e7755775c574aef85590bda6b4441ae3842511f919034e1c48e74.png" alt="image"/><br/> <img src="/assets/img/blog/cnblogs/9e2b3b3d4d713ef187c715dd7a818f461a4d38e4afa409a5e9209035e959d259.png" alt="image"/><br/> <img src="/assets/img/blog/cnblogs/08902e30b9e5e8df39e411a8c76257fa3813dba7e72d5c4a92d352ebc7787da0.png" alt="image"/></p> <p>这场我一年之前做过，然后就没有去补题，今年重新和新队友们做做这场，开局还算顺利地过了两个签到，然后就是三道铜牌题，曾经一度卡题一个半小时，然后我做出了J，队友做出了数学和计算几何，在正赛算是可以拼手速拿到铜，但还不够，还要多多补题，其实VP的时候C可以写出来的，下蛋就真的不会了</p> <h2 id="e---python-will-be-faster-than-c"><a href="https://codeforces.com/gym/104023/problem/E">E - Python Will be Faster than C++</a></h2> <p>模拟，存在 <span class="math inline">(a_{n - 1} \geq a_n)</span> 无解，其余模拟即可</p> <div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">const</span> <span class="kt">int</span> <span class="n">N</span> <span class="o">=</span> <span class="mf">1e7</span> <span class="o">+</span> <span class="mi">20</span><span class="p">;</span>
 
<span class="kt">int</span> <span class="n">a</span><span class="p">[</span><span class="n">N</span><span class="p">];</span>
<span class="kt">void</span> <span class="nf">solve</span><span class="p">()</span>
<span class="p">{</span>       
    <span class="kt">int</span> <span class="n">n</span><span class="p">,</span> <span class="n">k</span><span class="p">;</span>   <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">n</span><span class="o">&gt;&gt;</span><span class="n">k</span><span class="p">;</span>
    <span class="kt">int</span> <span class="n">i</span><span class="p">;</span>
    <span class="k">for</span><span class="p">(</span><span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
        <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
    <span class="kt">int</span> <span class="n">cnt</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
    <span class="n">i</span> <span class="o">=</span> <span class="n">n</span><span class="p">;</span>
    <span class="k">while</span><span class="p">(</span><span class="o">++</span><span class="n">cnt</span> <span class="o">&lt;=</span> <span class="mf">1e7</span> <span class="o">&amp;&amp;</span> <span class="n">a</span><span class="p">[</span><span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span> <span class="o">&gt;=</span> <span class="n">a</span><span class="p">[</span><span class="n">n</span><span class="p">])</span>
    <span class="p">{</span>
        <span class="n">i</span><span class="o">++</span><span class="p">;</span>
        <span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">max</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">a</span><span class="p">[</span><span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="n">a</span><span class="p">[</span><span class="n">i</span> <span class="o">-</span> <span class="mi">2</span><span class="p">]);</span>
        <span class="k">if</span><span class="p">(</span><span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">&lt;</span> <span class="n">k</span><span class="p">)</span>
        <span class="p">{</span>
            <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="s">"Python 3."</span><span class="o">&lt;&lt;</span><span class="n">i</span><span class="o">&lt;&lt;</span><span class="s">" will be faster than C++</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>
            <span class="k">return</span><span class="p">;</span>            
        <span class="p">}</span>
    <span class="p">}</span>
    <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="s">"Python will never be faster than C++</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>
    <span class="k">return</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div> <h2 id="a---dunai"><a href="https://codeforces.com/gym/104023/problem/A">A - Dunai</a></h2> <p>记录每个位置有多少人，然后算出能组成多少支队伍，再和冠军选手取个min即可，赛时画了柱状图去理解</p> <div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">int</span> <span class="n">n</span><span class="p">,</span> <span class="n">m</span><span class="p">,</span> <span class="n">c</span><span class="p">[</span><span class="mi">10</span><span class="p">],</span> <span class="n">b</span><span class="p">[</span><span class="mi">10</span><span class="p">];</span>
<span class="kt">void</span> <span class="nf">solve</span><span class="p">()</span>
<span class="p">{</span>       
    <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">n</span><span class="p">;</span>
    <span class="n">set</span><span class="o">&lt;</span><span class="n">string</span><span class="o">&gt;</span> <span class="n">S</span><span class="p">;</span>
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">n</span> <span class="o">*</span> <span class="mi">5</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="n">string</span> <span class="n">s</span><span class="p">;</span>    <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">s</span><span class="p">;</span>
        <span class="n">S</span><span class="p">.</span><span class="n">insert</span><span class="p">(</span><span class="n">s</span><span class="p">);</span>
    <span class="p">}</span>
    <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">m</span><span class="p">;</span>
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">m</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="n">string</span> <span class="n">s</span><span class="p">;</span>    <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">s</span><span class="p">;</span>
        <span class="kt">int</span> <span class="n">a</span><span class="p">;</span>  <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">a</span><span class="p">;</span>
        <span class="k">if</span><span class="p">(</span><span class="n">S</span><span class="p">.</span><span class="n">count</span><span class="p">(</span><span class="n">s</span><span class="p">))</span>
            <span class="n">c</span><span class="p">[</span><span class="n">a</span><span class="p">]</span><span class="o">++</span><span class="p">;</span>
        <span class="n">b</span><span class="p">[</span><span class="n">a</span><span class="p">]</span><span class="o">++</span><span class="p">;</span>
    <span class="p">}</span>
    <span class="kt">int</span> <span class="n">miv</span> <span class="o">=</span> <span class="n">min</span><span class="p">({</span><span class="n">b</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">b</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="n">b</span><span class="p">[</span><span class="mi">3</span><span class="p">],</span> <span class="n">b</span><span class="p">[</span><span class="mi">4</span><span class="p">],</span> <span class="n">b</span><span class="p">[</span><span class="mi">5</span><span class="p">]});</span>
    <span class="n">miv</span> <span class="o">=</span> <span class="n">min</span><span class="p">({</span><span class="n">miv</span><span class="p">,</span> <span class="n">c</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">+</span> <span class="n">c</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">+</span> <span class="n">c</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">+</span> <span class="n">c</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span> <span class="o">+</span> <span class="n">c</span><span class="p">[</span><span class="mi">5</span><span class="p">]});</span>
    <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="n">miv</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
 
    <span class="k">return</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div> <h2 id="j---eat-sleep-repeat"><a href="https://codeforces.com/gym/104023/problem/J">J - Eat, Sleep, Repeat</a></h2> <p>博弈，但是答案是求最多的操作次数的奇偶性相关</p> <p>我的做法是对限制为0进行分段，这样就可以确定 <span class="math inline">(a_i)</span> 最终会出现在哪一段内，对 a 排序，双指针去模拟这个过程</p> <div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">const</span> <span class="kt">int</span> <span class="n">N</span> <span class="o">=</span> <span class="mf">3e5</span> <span class="o">+</span> <span class="mi">20</span><span class="p">;</span>
 
<span class="kt">int</span> <span class="n">a</span><span class="p">[</span><span class="n">N</span><span class="p">];</span>
<span class="kt">int</span> <span class="n">n</span><span class="p">,</span> <span class="n">k</span><span class="p">;</span>
<span class="n">map</span><span class="o">&lt;</span><span class="kt">int</span><span class="p">,</span> <span class="kt">int</span><span class="o">&gt;</span> <span class="n">mp</span><span class="p">;</span>
<span class="n">vector</span><span class="o">&lt;</span><span class="kt">int</span><span class="o">&gt;</span> <span class="n">vx</span><span class="p">;</span>
<span class="n">set</span><span class="o">&lt;</span><span class="kt">int</span><span class="o">&gt;</span> <span class="n">S</span><span class="p">;</span>
<span class="kt">void</span> <span class="nf">solve</span><span class="p">()</span>
<span class="p">{</span>       
    <span class="n">mp</span><span class="p">.</span><span class="n">clear</span><span class="p">();</span>
    <span class="n">vx</span><span class="p">.</span><span class="n">clear</span><span class="p">();</span>
    <span class="n">S</span><span class="p">.</span><span class="n">clear</span><span class="p">();</span>
    <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">n</span><span class="o">&gt;&gt;</span><span class="n">k</span><span class="p">;</span>
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
        <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
 
    <span class="n">mp</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
    <span class="n">vx</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">);</span>
    <span class="n">S</span><span class="p">.</span><span class="n">insert</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">);</span>
 
    <span class="n">mp</span><span class="p">[</span><span class="mi">1000000002</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
    <span class="n">vx</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="mi">1000000002</span><span class="p">);</span>
    <span class="n">S</span><span class="p">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">1000000002</span><span class="p">);</span>    
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">k</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="kt">int</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">;</span>   <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">x</span><span class="o">&gt;&gt;</span><span class="n">y</span><span class="p">;</span>
        <span class="n">mp</span><span class="p">[</span><span class="n">x</span><span class="p">]</span> <span class="o">=</span> <span class="n">y</span><span class="p">;</span>
        <span class="k">if</span><span class="p">(</span><span class="n">y</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span>  
        <span class="p">{</span>
            <span class="n">S</span><span class="p">.</span><span class="n">insert</span><span class="p">(</span><span class="n">x</span><span class="p">);</span>
            <span class="n">vx</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="n">x</span><span class="p">);</span>
        <span class="p">}</span>
    <span class="p">}</span>
    <span class="n">sort</span><span class="p">(</span><span class="n">a</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">a</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">+</span> <span class="n">n</span><span class="p">);</span>
    <span class="n">sort</span><span class="p">(</span><span class="n">vx</span><span class="p">.</span><span class="n">begin</span><span class="p">(),</span> <span class="n">vx</span><span class="p">.</span><span class="n">end</span><span class="p">());</span>
    <span class="kt">int</span> <span class="n">m</span> <span class="o">=</span> <span class="n">vx</span><span class="p">.</span><span class="n">size</span><span class="p">();</span>
    <span class="n">queue</span><span class="o">&lt;</span><span class="kt">int</span><span class="o">&gt;</span> <span class="n">q</span><span class="p">[</span><span class="n">m</span> <span class="o">+</span> <span class="mi">2</span><span class="p">];</span>
    <span class="k">for</span><span class="p">(</span><span class="k">auto</span> <span class="n">it</span> <span class="o">:</span> <span class="n">vx</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="kt">int</span> <span class="n">p</span> <span class="o">=</span> <span class="n">it</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span>
        <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">l</span> <span class="o">=</span> <span class="n">p</span><span class="p">;</span> <span class="p">;</span> <span class="n">l</span><span class="o">++</span><span class="p">)</span>
        <span class="p">{</span>
            <span class="k">if</span><span class="p">(</span><span class="n">S</span><span class="p">.</span><span class="n">count</span><span class="p">(</span><span class="n">l</span><span class="p">))</span>  <span class="k">break</span><span class="p">;</span>
            <span class="k">if</span><span class="p">(</span><span class="n">mp</span><span class="p">.</span><span class="n">count</span><span class="p">(</span><span class="n">l</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span>    
            <span class="p">{</span>
                <span class="n">mp</span><span class="p">[</span><span class="n">l</span><span class="p">]</span> <span class="o">=</span> <span class="n">n</span><span class="p">;</span>
                <span class="k">break</span><span class="p">;</span>
            <span class="p">}</span>
        <span class="p">}</span>
    <span class="p">}</span>
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="kt">int</span> <span class="n">pos</span> <span class="o">=</span> <span class="n">lower_bound</span><span class="p">(</span><span class="n">vx</span><span class="p">.</span><span class="n">begin</span><span class="p">(),</span> <span class="n">vx</span><span class="p">.</span><span class="n">end</span><span class="p">(),</span> <span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="o">-</span> <span class="n">vx</span><span class="p">.</span><span class="n">begin</span><span class="p">()</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span>
        <span class="n">q</span><span class="p">[</span><span class="n">pos</span><span class="p">].</span><span class="n">push</span><span class="p">(</span><span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">]);</span>
    <span class="p">}</span>  
    <span class="n">ll</span> <span class="n">res</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">m</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="kt">int</span> <span class="n">p</span> <span class="o">=</span> <span class="n">vx</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span>
        <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">l</span> <span class="o">=</span> <span class="n">p</span><span class="p">;</span> <span class="p">;</span> <span class="n">l</span><span class="o">++</span><span class="p">)</span>
        <span class="p">{</span>
            <span class="k">while</span><span class="p">(</span><span class="n">mp</span><span class="p">[</span><span class="n">l</span><span class="p">]</span> <span class="o">!=</span> <span class="mi">0</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="n">q</span><span class="p">[</span><span class="n">i</span><span class="p">].</span><span class="n">empty</span><span class="p">()</span> <span class="o">&amp;&amp;</span> <span class="n">q</span><span class="p">[</span><span class="n">i</span><span class="p">].</span><span class="n">front</span><span class="p">()</span> <span class="o">&gt;=</span> <span class="n">l</span><span class="p">)</span>
            <span class="p">{</span>
                <span class="n">mp</span><span class="p">[</span><span class="n">l</span><span class="p">]</span><span class="o">--</span><span class="p">;</span>
                <span class="n">res</span> <span class="o">+=</span> <span class="p">(</span><span class="n">q</span><span class="p">[</span><span class="n">i</span><span class="p">].</span><span class="n">front</span><span class="p">()</span> <span class="o">-</span> <span class="n">l</span><span class="p">);</span>
                <span class="n">q</span><span class="p">[</span><span class="n">i</span><span class="p">].</span><span class="n">pop</span><span class="p">();</span>
            <span class="p">}</span>
            <span class="k">if</span><span class="p">(</span><span class="n">q</span><span class="p">[</span><span class="n">i</span><span class="p">].</span><span class="n">empty</span><span class="p">())</span>
                <span class="k">break</span><span class="p">;</span>
        <span class="p">}</span>
    <span class="p">}</span> 
    <span class="k">if</span><span class="p">(</span><span class="n">res</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">1</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="s">"Pico</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>
    <span class="p">}</span>
    <span class="k">else</span>
        <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="s">"FuuFuu</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>
    <span class="k">return</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div> <h2 id="g---grade-2"><a href="https://codeforces.com/gym/104023/problem/G">G - Grade 2</a></h2> <p>打表可以知道答案有循环节，求出这个循环节区间</p> <div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">typedef</span> <span class="kt">long</span> <span class="kt">long</span> <span class="n">ll</span><span class="p">;</span>
 
<span class="k">const</span> <span class="kt">int</span> <span class="n">mod</span> <span class="o">=</span> <span class="mf">1e9</span> <span class="o">+</span> <span class="mi">7</span><span class="p">;</span>
<span class="k">const</span> <span class="kt">int</span> <span class="n">N</span> <span class="o">=</span> <span class="mf">2e6</span> <span class="o">+</span> <span class="mi">10</span><span class="p">;</span>
 
<span class="n">ll</span> <span class="n">mi</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span> <span class="n">s</span><span class="p">[</span><span class="n">N</span><span class="p">];</span>
 
<span class="kt">void</span> <span class="nf">init</span><span class="p">()</span>
<span class="p">{</span>
    <span class="n">ll</span> <span class="n">x</span><span class="p">;</span>   <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">x</span><span class="p">;</span>
    <span class="k">for</span><span class="p">(;</span> <span class="n">mi</span> <span class="o">&lt;=</span> <span class="n">x</span><span class="p">;</span> <span class="n">mi</span> <span class="o">*=</span> <span class="mi">2</span><span class="p">);</span>
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">mi</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
        <span class="n">s</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">s</span><span class="p">[</span><span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span> <span class="o">+</span> <span class="p">(</span><span class="n">__gcd</span><span class="p">(</span><span class="n">i</span> <span class="o">*</span> <span class="n">x</span> <span class="o">^</span> <span class="n">x</span><span class="p">,</span> <span class="n">x</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">);</span>
<span class="p">}</span>
 
<span class="kt">void</span> <span class="nf">solve</span><span class="p">()</span>
<span class="p">{</span>       
    <span class="n">ll</span> <span class="n">l</span><span class="p">,</span> <span class="n">r</span><span class="p">;</span>    <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">l</span><span class="o">&gt;&gt;</span><span class="n">r</span><span class="p">;</span>
    <span class="n">l</span><span class="o">--</span><span class="p">;</span>
    <span class="n">ll</span> <span class="n">res</span> <span class="o">=</span> <span class="n">r</span> <span class="o">/</span> <span class="n">mi</span> <span class="o">*</span> <span class="n">s</span><span class="p">[</span><span class="n">mi</span><span class="p">]</span> <span class="o">+</span> <span class="n">s</span><span class="p">[</span><span class="n">r</span> <span class="o">%</span> <span class="n">mi</span><span class="p">]</span> <span class="o">-</span> <span class="n">l</span> <span class="o">/</span> <span class="n">mi</span> <span class="o">*</span> <span class="n">s</span><span class="p">[</span><span class="n">mi</span><span class="p">]</span> <span class="o">-</span> <span class="n">s</span><span class="p">[</span><span class="n">l</span> <span class="o">%</span> <span class="n">mi</span><span class="p">];</span>
    <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="n">res</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
 
    <span class="k">return</span><span class="p">;</span>
<span class="p">}</span>
 
<span class="kt">int</span> <span class="nf">main</span><span class="p">()</span>
<span class="p">{</span>
    <span class="n">ios</span><span class="o">::</span><span class="n">sync_with_stdio</span><span class="p">(</span><span class="nb">false</span><span class="p">);</span>   <span class="n">cin</span><span class="p">.</span><span class="n">tie</span><span class="p">(</span><span class="nb">nullptr</span><span class="p">),</span> <span class="n">cout</span><span class="p">.</span><span class="n">tie</span><span class="p">(</span><span class="nb">nullptr</span><span class="p">);</span>
    
    <span class="kt">int</span> <span class="n">TC</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
    <span class="n">init</span><span class="p">();</span>
    <span class="n">cin</span> <span class="o">&gt;&gt;</span> <span class="n">TC</span><span class="p">;</span>    
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">tc</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">tc</span> <span class="o">&lt;=</span> <span class="n">TC</span><span class="p">;</span> <span class="n">tc</span><span class="o">++</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="c1">//cout &lt;&lt; "Case #" &lt;&lt; tc &lt;&lt; ": ";         </span>
        <span class="n">solve</span><span class="p">();</span>
    <span class="p">}</span>
    <span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div> <h2 id="c---grass"><a href="https://codeforces.com/gym/104023/problem/C">C - Grass</a></h2> <p>手玩数据可以知道，只要 5 个点不在一条直线上，那么答案一定存在，枚举这 5 个点谁做A点即可</p> <p>证明看 官方题解</p> <div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">int</span> <span class="n">n</span><span class="p">;</span>
<span class="kt">void</span> <span class="nf">solve</span><span class="p">()</span>
<span class="p">{</span>           
 
    <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">n</span><span class="p">;</span>
    <span class="n">vector</span><span class="o">&lt;</span><span class="n">array</span><span class="o">&lt;</span><span class="kt">int</span><span class="p">,</span> <span class="mi">2</span><span class="o">&gt;&gt;</span> <span class="n">d</span><span class="p">;</span> 
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">min</span><span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="mi">4</span><span class="p">);</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="kt">int</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">;</span>   <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">x</span><span class="o">&gt;&gt;</span><span class="n">y</span><span class="p">;</span>
        <span class="n">d</span><span class="p">.</span><span class="n">push_back</span><span class="p">({</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">});</span>
    <span class="p">}</span>
    <span class="kt">bool</span> <span class="n">ok</span> <span class="o">=</span> <span class="nb">false</span><span class="p">;</span>
    <span class="k">if</span><span class="p">(</span><span class="n">n</span> <span class="o">&gt;</span> <span class="mi">4</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">5</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
        <span class="p">{</span>
            <span class="kt">int</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">;</span>   <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">x</span><span class="o">&gt;&gt;</span><span class="n">y</span><span class="p">;</span>
            <span class="n">d</span><span class="p">.</span><span class="n">push_back</span><span class="p">({</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">});</span>
            <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="mi">5</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span>
            <span class="p">{</span>
                <span class="n">set</span><span class="o">&lt;</span><span class="n">array</span><span class="o">&lt;</span><span class="kt">int</span><span class="p">,</span> <span class="mi">2</span><span class="o">&gt;&gt;</span> <span class="n">S</span><span class="p">,</span> <span class="n">a</span><span class="p">;</span>
                <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">k</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">k</span> <span class="o">&lt;</span> <span class="mi">5</span><span class="p">;</span> <span class="n">k</span><span class="o">++</span><span class="p">)</span>
                <span class="p">{</span>
                    <span class="k">if</span><span class="p">(</span><span class="n">j</span> <span class="o">==</span> <span class="n">k</span><span class="p">)</span>  <span class="k">continue</span><span class="p">;</span>
                    <span class="kt">int</span> <span class="n">tx</span> <span class="o">=</span> <span class="n">d</span><span class="p">[</span><span class="n">k</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">-</span> <span class="n">d</span><span class="p">[</span><span class="n">j</span><span class="p">][</span><span class="mi">0</span><span class="p">];</span>
                    <span class="kt">int</span> <span class="n">ty</span> <span class="o">=</span> <span class="n">d</span><span class="p">[</span><span class="n">k</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="n">d</span><span class="p">[</span><span class="n">j</span><span class="p">][</span><span class="mi">1</span><span class="p">];</span>
                    <span class="kt">int</span> <span class="n">g</span> <span class="o">=</span> <span class="n">__gcd</span><span class="p">(</span><span class="n">abs</span><span class="p">(</span><span class="n">tx</span><span class="p">),</span> <span class="n">abs</span><span class="p">(</span><span class="n">ty</span><span class="p">));</span>
                    <span class="n">tx</span> <span class="o">/=</span> <span class="n">g</span><span class="p">,</span> <span class="n">ty</span> <span class="o">/=</span> <span class="n">g</span><span class="p">;</span>
                    <span class="n">S</span><span class="p">.</span><span class="n">insert</span><span class="p">({</span><span class="n">tx</span><span class="p">,</span> <span class="n">ty</span><span class="p">});</span>
                <span class="p">}</span>
                <span class="k">if</span><span class="p">(</span><span class="n">S</span><span class="p">.</span><span class="n">size</span><span class="p">()</span> <span class="o">==</span> <span class="mi">4</span> <span class="o">&amp;&amp;</span> <span class="n">ok</span> <span class="o">==</span> <span class="nb">false</span><span class="p">)</span>
                <span class="p">{</span>
                    <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="s">"YES</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>
                    <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="n">d</span><span class="p">[</span><span class="n">j</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="s">" "</span><span class="o">&lt;&lt;</span><span class="n">d</span><span class="p">[</span><span class="n">j</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
                    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">k</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">k</span> <span class="o">&lt;</span> <span class="mi">5</span><span class="p">;</span> <span class="n">k</span><span class="o">++</span><span class="p">)</span>
                        <span class="k">if</span><span class="p">(</span><span class="n">j</span> <span class="o">!=</span> <span class="n">k</span><span class="p">)</span>
                            <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="n">d</span><span class="p">[</span><span class="n">k</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="s">" "</span><span class="o">&lt;&lt;</span><span class="n">d</span><span class="p">[</span><span class="n">k</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
                    <span class="n">ok</span> <span class="o">=</span> <span class="nb">true</span><span class="p">;</span>
                <span class="p">}</span>
            <span class="p">}</span>
            <span class="n">d</span><span class="p">.</span><span class="n">pop_back</span><span class="p">();</span>
        <span class="p">}</span>
    <span class="p">}</span>
    <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="n">ok</span><span class="p">)</span>
        <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="s">"NO</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>
    <span class="k">return</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div> <h2 id="i---dragon-bloodline"><a href="https://codeforces.com/gym/104023/problem/I">I - Dragon Bloodline</a></h2> <p>VP时没思路，认为是dp或者贪心，看了题解发现是贪心，也明白了贪心的正确性，对于每次贪心需要最多的元素，放生产效率最高的工具龙去生产</p> <div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">const</span> <span class="kt">int</span> <span class="n">N</span> <span class="o">=</span> <span class="mf">2e5</span> <span class="o">+</span> <span class="mi">10</span><span class="p">;</span>
 
<span class="kt">int</span> <span class="n">n</span><span class="p">,</span> <span class="n">k</span><span class="p">;</span>
<span class="n">ll</span> <span class="n">a</span><span class="p">[</span><span class="n">N</span><span class="p">],</span> <span class="n">b</span><span class="p">[</span><span class="n">N</span><span class="p">],</span> <span class="n">c</span><span class="p">[</span><span class="n">N</span><span class="p">],</span> <span class="n">sb</span><span class="p">[</span><span class="n">N</span><span class="p">];</span>
 
<span class="kt">bool</span> <span class="nf">check</span><span class="p">(</span><span class="n">ll</span> <span class="n">mid</span><span class="p">)</span>
<span class="p">{</span>
    <span class="n">priority_queue</span><span class="o">&lt;</span><span class="n">ll</span><span class="p">,</span> <span class="n">vector</span><span class="o">&lt;</span><span class="n">ll</span><span class="o">&gt;</span><span class="p">,</span> <span class="n">less</span><span class="o">&lt;</span><span class="n">ll</span><span class="o">&gt;&gt;</span> <span class="n">q</span><span class="p">;</span>
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
        <span class="n">q</span><span class="p">.</span><span class="n">push</span><span class="p">(</span><span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">*</span> <span class="n">mid</span><span class="p">);</span>
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">k</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
        <span class="n">c</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">b</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
    <span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="n">k</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span>
    <span class="k">while</span><span class="p">(</span><span class="n">q</span><span class="p">.</span><span class="n">size</span><span class="p">()</span> <span class="o">&gt;=</span> <span class="mi">1</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="n">ll</span> <span class="n">t</span> <span class="o">=</span> <span class="n">q</span><span class="p">.</span><span class="n">top</span><span class="p">();</span> <span class="n">q</span><span class="p">.</span><span class="n">pop</span><span class="p">();</span>
        <span class="k">if</span><span class="p">(</span><span class="n">i</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="k">return</span> <span class="nb">false</span><span class="p">;</span>
        <span class="n">ll</span> <span class="n">need</span> <span class="o">=</span> <span class="n">max</span><span class="p">({</span><span class="mi">1ll</span><span class="p">,</span> <span class="n">t</span> <span class="o">/</span> <span class="p">(</span><span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="n">i</span><span class="p">)});</span>
        <span class="n">need</span> <span class="o">=</span> <span class="n">min</span><span class="p">(</span><span class="n">c</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">need</span><span class="p">);</span>      
        <span class="n">t</span> <span class="o">=</span> <span class="n">t</span> <span class="o">-</span> <span class="n">need</span> <span class="o">*</span> <span class="p">(</span><span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="n">i</span><span class="p">);</span>
        <span class="n">c</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">c</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">-</span> <span class="n">need</span><span class="p">;</span>
        <span class="k">if</span><span class="p">(</span><span class="n">t</span> <span class="o">&gt;=</span> <span class="mi">1</span><span class="p">)</span>
            <span class="n">q</span><span class="p">.</span><span class="n">push</span><span class="p">(</span><span class="n">t</span><span class="p">);</span>
        <span class="k">if</span><span class="p">(</span><span class="n">c</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span>
            <span class="n">i</span><span class="o">--</span><span class="p">;</span>
    <span class="p">}</span>
    <span class="k">return</span> <span class="nb">true</span><span class="p">;</span>
<span class="p">}</span>
<span class="kt">void</span> <span class="nf">solve</span><span class="p">()</span>
<span class="p">{</span>       
    <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">n</span><span class="o">&gt;&gt;</span><span class="n">k</span><span class="p">;</span>
    <span class="n">ll</span> <span class="n">l</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="n">r</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="n">t</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
        <span class="n">t</span> <span class="o">+=</span> <span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
    <span class="p">}</span>
 
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">k</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">b</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
        <span class="n">sb</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">b</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">*</span> <span class="p">(</span><span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="n">i</span><span class="p">);</span>
        <span class="n">r</span> <span class="o">+=</span> <span class="n">sb</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
    <span class="p">}</span>
    <span class="n">r</span> <span class="o">/=</span> <span class="n">t</span><span class="p">;</span>
    <span class="k">while</span><span class="p">(</span><span class="n">l</span> <span class="o">&lt;</span> <span class="n">r</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="n">ll</span> <span class="n">mid</span> <span class="o">=</span> <span class="p">(</span><span class="n">l</span> <span class="o">+</span> <span class="n">r</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">&gt;&gt;</span> <span class="mi">1</span><span class="p">;</span>
        <span class="k">if</span><span class="p">(</span><span class="n">check</span><span class="p">(</span><span class="n">mid</span><span class="p">))</span>    <span class="n">l</span> <span class="o">=</span> <span class="n">mid</span><span class="p">;</span>
        <span class="k">else</span> <span class="n">r</span> <span class="o">=</span> <span class="n">mid</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span>
    <span class="p">}</span>
    <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="n">l</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
    <span class="k">return</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>]]></content><author><name></name></author><category term="mathematics"/><category term="computational geometry"/><category term="dynamic programming"/><category term="contest"/><summary type="html"><![CDATA[2022 China Collegiate Programming Contest (CCPC) Weihai Site 目录 - 2022 China Collegiate Programming Contest (CCPC) Weihai Site - VP概况 - E - Python Will be Fast…]]></summary></entry><entry><title type="html">2022 China Collegiate Programming Contest (CCPC) Mianyang Onsite GCHMAD</title><link href="https://kdk550.github.io/blog/2023/cnblogs-17735234/" rel="alternate" type="text/html" title="2022 China Collegiate Programming Contest (CCPC) Mianyang Onsite GCHMAD"/><published>2023-09-28T03:01:00+00:00</published><updated>2023-09-28T03:01:00+00:00</updated><id>https://kdk550.github.io/blog/2023/cnblogs-17735234</id><content type="html" xml:base="https://kdk550.github.io/blog/2023/cnblogs-17735234/"><![CDATA[<h1 id="2022-china-collegiate-programming-contest-ccpc-mianyang-onsite"><a href="https://codeforces.com/gym/104065">2022 China Collegiate Programming Contest (CCPC) Mianyang Onsite</a></h1> <p>目录</p> <ul> <li><a href="/blog/2023/cnblogs-17735234/#2022-china-collegiate-programming-contest-ccpc-mianyang-onsite">2022 China Collegiate Programming Contest (CCPC) Mianyang Onsite</a> <ul> <li><a href="/blog/2023/cnblogs-17735234/#vp-情况">VP 情况</a></li> <li><a href="/blog/2023/cnblogs-17735234/#g---let-them-eat-cake">G - Let Them Eat Cake</a></li> <li><a href="/blog/2023/cnblogs-17735234/#c---catch-you-catch-me">C - Catch You Catch Me</a></li> <li><a href="/blog/2023/cnblogs-17735234/#h---life-is-hard-and-undecidable-but">H - Life is Hard and Undecidable, but…</a></li> <li><a href="/blog/2023/cnblogs-17735234/#m---rock-paper-scissors-pyramid">M - Rock-Paper-Scissors Pyramid</a></li> <li><a href="/blog/2023/cnblogs-17735234/#-a---ban-or-pick-whats-the-trick">A - Ban or Pick, What’s the Trick</a></li> <li><a href="/blog/2023/cnblogs-17735234/#d---gamblers-ruin">D - Gambler’s Ruin</a></li> </ul> </li> </ul> <h2 id="vp-情况">VP 情况</h2> <p>队友告诉我题意很顺利过了两签到，对着C虚空写法，搞了一个if(n=3)while(1)的样例发现构造假了，然后马上过了，但是罚时很多然后队友过了石头剪刀布，读了A，很快想到了dp和转移方程，但不知道怎么转移好，最后结束比赛了，看了大家用记忆化搜索竟然这么好些，然后补了DM，这个D我想了很久，一直不懂怎么枚举和三分这个赔率，写了好几个版本，直到今天终于想明白了。<br/> <img src="/assets/img/blog/cnblogs/f78ecbe53dd891c6275ceb1e5b2402b36c76c391fc78e99ddc447ad52f15d2b9.png" alt="image"/></p> <h2 id="g---let-them-eat-cake"><a href="https://codeforces.com/gym/104065/problem/G">G - Let Them Eat Cake</a></h2> <p>每轮操作删掉一半的数，已得知操作次数最多只有 <span class="math inline">(\log n)</span> 轮，直接模拟</p> <div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">int</span> <span class="n">n</span><span class="p">;</span>
<span class="k">const</span> <span class="kt">int</span> <span class="n">N</span> <span class="o">=</span> <span class="mf">1e5</span> <span class="o">+</span> <span class="mi">10</span><span class="p">;</span>
 
<span class="kt">void</span> <span class="nf">solve</span><span class="p">()</span>
<span class="p">{</span>
	<span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">n</span><span class="p">;</span>
	<span class="kt">int</span> <span class="n">res</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
	<span class="n">vector</span><span class="o">&lt;</span><span class="kt">int</span><span class="o">&gt;</span> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">;</span>
	<span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
	<span class="p">{</span>
		<span class="kt">int</span> <span class="n">x</span><span class="p">;</span>	<span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">x</span><span class="p">;</span>
		<span class="n">b</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="n">x</span><span class="p">);</span>
	<span class="p">}</span>
	<span class="kt">int</span> <span class="n">sz</span> <span class="o">=</span> <span class="n">n</span><span class="p">;</span>
	<span class="k">while</span><span class="p">(</span><span class="n">sz</span> <span class="o">!=</span> <span class="mi">1</span><span class="p">)</span>
	<span class="p">{</span>
		<span class="n">res</span><span class="o">++</span><span class="p">;</span>
		<span class="n">a</span> <span class="o">=</span> <span class="n">b</span><span class="p">;</span>
		<span class="n">b</span><span class="p">.</span><span class="n">clear</span><span class="p">();</span>
		<span class="kt">int</span> <span class="n">m</span> <span class="o">=</span> <span class="n">a</span><span class="p">.</span><span class="n">size</span><span class="p">();</span>
		<span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">m</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
		<span class="p">{</span>
			<span class="c1">// cout&lt;&lt;a[i]&lt;&lt;"  ";</span>
			<span class="c1">// if(i - 1 &gt;= 0)</span>
			<span class="c1">// 	cout&lt;&lt;a[i - 1]&lt;&lt;" ";</span>
			<span class="c1">// if(i + 1 &lt; m)</span>
			<span class="c1">// 	cout&lt;&lt;a[i + 1]&lt;&lt;" ";</span>
			<span class="c1">// cout&lt;&lt;'\n';</span>
			<span class="kt">bool</span> <span class="n">ok</span> <span class="o">=</span> <span class="nb">false</span><span class="p">;</span>
			<span class="k">if</span><span class="p">(</span><span class="n">i</span> <span class="o">-</span> <span class="mi">1</span> <span class="o">&gt;=</span> <span class="mi">0</span> <span class="o">&amp;&amp;</span> <span class="n">a</span><span class="p">[</span><span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span> <span class="o">&gt;</span> <span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
			<span class="p">{</span>
				<span class="n">ok</span> <span class="o">=</span> <span class="nb">true</span><span class="p">;</span>
			<span class="p">}</span>
 
			<span class="k">if</span><span class="p">(</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">&lt;</span> <span class="n">m</span> <span class="o">&amp;&amp;</span> <span class="n">a</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">&gt;</span> <span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
				<span class="n">ok</span> <span class="o">=</span> <span class="nb">true</span><span class="p">;</span>
			<span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="n">ok</span><span class="p">)</span>
				<span class="n">b</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">]);</span>
		<span class="p">}</span>
		<span class="n">sz</span> <span class="o">=</span> <span class="n">b</span><span class="p">.</span><span class="n">size</span><span class="p">();</span>
	<span class="p">}</span>
	<span class="n">cout</span><span class="o">&lt;&lt;</span><span class="n">res</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div> <h2 id="c---catch-you-catch-me"><a href="https://codeforces.com/gym/104065/problem/C">C - Catch You Catch Me</a></h2> <p>对于1的儿子，其答案是以其儿子为根子树的深度</p> <div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">int</span> <span class="n">n</span><span class="p">;</span>
<span class="k">const</span> <span class="kt">int</span> <span class="n">N</span> <span class="o">=</span> <span class="mf">1e5</span> <span class="o">+</span> <span class="mi">10</span><span class="p">;</span>
 
<span class="kt">int</span> <span class="n">dep</span><span class="p">[</span><span class="n">N</span><span class="p">],</span> <span class="n">f</span><span class="p">[</span><span class="n">N</span><span class="p">];</span>
<span class="n">vector</span><span class="o">&lt;</span><span class="kt">int</span><span class="o">&gt;</span> <span class="n">e</span><span class="p">[</span><span class="n">N</span><span class="p">];</span>
<span class="kt">void</span> <span class="nf">dfs</span><span class="p">(</span><span class="kt">int</span> <span class="n">u</span><span class="p">,</span> <span class="kt">int</span> <span class="n">from</span><span class="p">)</span>
<span class="p">{</span>
	<span class="n">dep</span><span class="p">[</span><span class="n">u</span><span class="p">]</span> <span class="o">=</span> <span class="n">dep</span><span class="p">[</span><span class="n">from</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span>
	<span class="n">f</span><span class="p">[</span><span class="n">u</span><span class="p">]</span> <span class="o">=</span> <span class="n">dep</span><span class="p">[</span><span class="n">u</span><span class="p">];</span>
	<span class="k">for</span><span class="p">(</span><span class="k">auto</span> <span class="n">v</span> <span class="o">:</span> <span class="n">e</span><span class="p">[</span><span class="n">u</span><span class="p">])</span>
	<span class="p">{</span>
		<span class="k">if</span><span class="p">(</span><span class="n">v</span> <span class="o">==</span> <span class="n">from</span><span class="p">)</span>	<span class="k">continue</span><span class="p">;</span>
		<span class="n">dfs</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">u</span><span class="p">);</span>
		<span class="n">f</span><span class="p">[</span><span class="n">u</span><span class="p">]</span> <span class="o">=</span> <span class="n">max</span><span class="p">(</span><span class="n">f</span><span class="p">[</span><span class="n">u</span><span class="p">],</span> <span class="n">f</span><span class="p">[</span><span class="n">v</span><span class="p">]);</span>
	<span class="p">}</span>
<span class="p">}</span>
<span class="kt">void</span> <span class="nf">solve</span><span class="p">()</span>
<span class="p">{</span>
	<span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">n</span><span class="p">;</span>
	<span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
	<span class="p">{</span>
		<span class="kt">int</span> <span class="n">u</span><span class="p">,</span> <span class="n">v</span><span class="p">;</span>	<span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">u</span><span class="o">&gt;&gt;</span><span class="n">v</span><span class="p">;</span>
		<span class="n">e</span><span class="p">[</span><span class="n">u</span><span class="p">].</span><span class="n">push_back</span><span class="p">(</span><span class="n">v</span><span class="p">);</span>
		<span class="n">e</span><span class="p">[</span><span class="n">v</span><span class="p">].</span><span class="n">push_back</span><span class="p">(</span><span class="n">u</span><span class="p">);</span>
	<span class="p">}</span>
	<span class="n">dfs</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span>
	<span class="kt">long</span> <span class="kt">long</span> <span class="n">res</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
	<span class="k">for</span><span class="p">(</span><span class="k">auto</span> <span class="n">v</span> <span class="o">:</span> <span class="n">e</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
	<span class="p">{</span>
		<span class="n">res</span> <span class="o">=</span> <span class="n">res</span> <span class="o">+</span> <span class="n">f</span><span class="p">[</span><span class="n">v</span><span class="p">]</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span>
	<span class="p">}</span>
	<span class="n">cout</span><span class="o">&lt;&lt;</span><span class="n">res</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div> <h2 id="h---life-is-hard-and-undecidable-but"><a href="https://codeforces.com/gym/104065/problem/H">H - Life is Hard and Undecidable, but…</a></h2> <p>构造方式见代码</p> <div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">ll</span> <span class="n">k</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">dx</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">};</span>
<span class="kt">int</span> <span class="n">dy</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">};</span>
<span class="kt">int</span> <span class="n">res</span><span class="p">[</span><span class="mi">310</span><span class="p">][</span><span class="mi">310</span><span class="p">];</span>
<span class="kt">void</span> <span class="nf">solve</span><span class="p">()</span>
<span class="p">{</span>
	<span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">k</span><span class="p">;</span>
	<span class="kt">int</span> <span class="n">x</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span> <span class="n">y</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
	<span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">k</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
	<span class="p">{</span>
		<span class="n">x</span> <span class="o">=</span> <span class="n">x</span> <span class="o">+</span> <span class="n">dx</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
		<span class="n">y</span> <span class="o">=</span> <span class="n">y</span> <span class="o">+</span> <span class="n">dy</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
		<span class="n">res</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="n">y</span><span class="p">]</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
	<span class="p">}</span> 	
	<span class="kt">int</span> <span class="n">n</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
	<span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="mi">300</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
		<span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;=</span> <span class="mi">300</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span>
			<span class="n">n</span> <span class="o">+=</span> <span class="n">res</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">];</span>
	<span class="n">cout</span><span class="o">&lt;&lt;</span><span class="n">n</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
	<span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="mi">300</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
		<span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;=</span> <span class="mi">300</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span>
			<span class="k">if</span><span class="p">(</span><span class="n">res</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span> <span class="o">==</span> <span class="mi">1</span><span class="p">)</span>
				<span class="n">cout</span><span class="o">&lt;&lt;</span><span class="n">i</span><span class="o">&lt;&lt;</span><span class="s">" "</span><span class="o">&lt;&lt;</span><span class="n">j</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div> <h2 id="m---rock-paper-scissors-pyramid"><a href="https://codeforces.com/gym/104065/problem/M">M - Rock-Paper-Scissors Pyramid</a></h2> <p>观察出有单调栈的特点，根据特点直接去模拟单调栈</p> <div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">const</span> <span class="kt">int</span> <span class="n">N</span> <span class="o">=</span> <span class="mf">1e6</span> <span class="o">+</span> <span class="mi">10</span><span class="p">;</span>
<span class="k">typedef</span> <span class="kt">long</span> <span class="kt">long</span> <span class="n">ll</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">n</span><span class="p">,</span> <span class="n">a</span><span class="p">[</span><span class="n">N</span><span class="p">];</span>
<span class="kt">void</span> <span class="nf">solve</span><span class="p">()</span>
<span class="p">{</span>
    <span class="n">string</span> <span class="n">s</span><span class="p">;</span>   <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">s</span><span class="p">;</span>
    <span class="n">n</span> <span class="o">=</span> <span class="n">s</span><span class="p">.</span><span class="n">size</span><span class="p">();</span>
    <span class="n">s</span> <span class="o">=</span> <span class="s">"?"</span> <span class="o">+</span> <span class="n">s</span><span class="p">;</span>
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="k">if</span><span class="p">(</span><span class="n">s</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">==</span> <span class="sc">'S'</span><span class="p">)</span> 
            <span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
        <span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="n">s</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">==</span> <span class="sc">'P'</span><span class="p">)</span>    
            <span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
        <span class="k">else</span> 
            <span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span>
    <span class="p">}</span>
    <span class="n">stack</span><span class="o">&lt;</span><span class="kt">int</span><span class="o">&gt;</span> <span class="n">stk</span><span class="p">;</span> <span class="n">stk</span><span class="p">.</span><span class="n">push</span><span class="p">(</span><span class="n">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]);</span>
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="k">while</span><span class="p">(</span><span class="o">!</span><span class="n">stk</span><span class="p">.</span><span class="n">empty</span><span class="p">()</span> <span class="o">&amp;&amp;</span> <span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">==</span> <span class="p">(</span><span class="n">stk</span><span class="p">.</span><span class="n">top</span><span class="p">()</span> <span class="o">-</span> <span class="mi">1</span> <span class="o">+</span> <span class="mi">3</span><span class="p">)</span> <span class="o">%</span> <span class="mi">3</span><span class="p">)</span>
            <span class="n">stk</span><span class="p">.</span><span class="n">pop</span><span class="p">();</span>
        <span class="n">stk</span><span class="p">.</span><span class="n">push</span><span class="p">(</span><span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">]);</span>        
    <span class="p">}</span>
    <span class="k">while</span><span class="p">(</span><span class="n">stk</span><span class="p">.</span><span class="n">size</span><span class="p">()</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">)</span>
        <span class="n">stk</span><span class="p">.</span><span class="n">pop</span><span class="p">();</span>
    <span class="k">if</span><span class="p">(</span><span class="n">stk</span><span class="p">.</span><span class="n">top</span><span class="p">()</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span>
        <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="s">"S"</span><span class="p">;</span>
    <span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="n">stk</span><span class="p">.</span><span class="n">top</span><span class="p">()</span> <span class="o">==</span> <span class="mi">1</span><span class="p">)</span>
        <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="s">"P"</span><span class="p">;</span>
    <span class="k">else</span> 
        <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="s">"R"</span><span class="p">;</span>
    <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div> <h2 id="a---ban-or-pick-whats-the-trick"><a href="https://codeforces.com/gym/104065/problem/A">A - Ban or Pick, What’s the Trick</a></h2> <p>轮流操作，我可以选择选一个我方能力值最大的英雄，也可以禁掉对方能力值最大的英雄</p> <p><span class="math inline">(f_{pos,i,j})</span>状态就是第 <span class="math inline">(pos)</span> 轮，A选了 <span class="math inline">(i)</span> 个英雄，<span class="math inline">(B)</span> 选了 <span class="math inline">(j)</span> 个英雄，而双方禁用的英雄数量是可以确定的，用记忆化搜索写就行</p> <div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">const</span> <span class="kt">int</span> <span class="n">N</span> <span class="o">=</span> <span class="mf">2e5</span> <span class="o">+</span> <span class="mi">10</span><span class="p">;</span>
 
<span class="k">typedef</span> <span class="kt">long</span> <span class="kt">long</span> <span class="n">ll</span><span class="p">;</span>
 
<span class="n">ll</span> <span class="n">n</span><span class="p">,</span> <span class="n">k</span><span class="p">;</span>
<span class="n">ll</span> <span class="n">a</span><span class="p">[</span><span class="n">N</span><span class="p">],</span> <span class="n">b</span><span class="p">[</span><span class="n">N</span><span class="p">];</span>
<span class="n">ll</span> <span class="n">f</span><span class="p">[</span><span class="mi">2</span> <span class="o">*</span> <span class="n">N</span><span class="p">][</span><span class="mi">11</span><span class="p">][</span><span class="mi">11</span><span class="p">],</span> <span class="n">tmp</span><span class="p">;</span>
<span class="c1">//  第 pos 次操作, A 选了 j 个, B 选了 p 个</span>
<span class="n">ll</span> <span class="nf">dfs</span><span class="p">(</span><span class="kt">int</span> <span class="n">pos</span><span class="p">,</span> <span class="kt">int</span> <span class="n">i</span><span class="p">,</span> <span class="kt">int</span> <span class="n">j</span><span class="p">)</span>
<span class="p">{</span>
    <span class="k">if</span><span class="p">(</span><span class="n">pos</span> <span class="o">==</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">n</span><span class="p">)</span> <span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
    <span class="kt">int</span> <span class="n">dela</span> <span class="o">=</span> <span class="n">i</span> <span class="o">+</span> <span class="n">pos</span> <span class="o">/</span> <span class="mi">2</span> <span class="o">-</span> <span class="n">j</span><span class="p">;</span>
    <span class="kt">int</span> <span class="n">delb</span> <span class="o">=</span> <span class="n">j</span> <span class="o">+</span> <span class="p">(</span><span class="n">pos</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span> <span class="o">-</span> <span class="n">i</span><span class="p">;</span>
    <span class="k">if</span><span class="p">(</span><span class="n">f</span><span class="p">[</span><span class="n">pos</span><span class="p">][</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span> <span class="o">!=</span> <span class="n">tmp</span><span class="p">)</span>
        <span class="k">return</span> <span class="n">f</span><span class="p">[</span><span class="n">pos</span><span class="p">][</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">];</span>
    <span class="n">ll</span> <span class="n">res</span><span class="p">;</span>
    <span class="k">if</span><span class="p">(</span><span class="n">pos</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="n">res</span> <span class="o">=</span> <span class="o">-</span><span class="mf">1e18</span><span class="p">;</span>
        <span class="k">if</span><span class="p">(</span><span class="n">dela</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">&lt;=</span> <span class="n">n</span> <span class="o">&amp;&amp;</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">&lt;=</span> <span class="n">k</span><span class="p">)</span>
            <span class="n">res</span> <span class="o">=</span> <span class="n">max</span><span class="p">(</span><span class="n">dfs</span><span class="p">(</span><span class="n">pos</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">j</span><span class="p">)</span> <span class="o">+</span> <span class="n">a</span><span class="p">[</span><span class="n">dela</span> <span class="o">+</span> <span class="mi">1</span><span class="p">],</span> <span class="n">res</span><span class="p">);</span>
        <span class="n">res</span> <span class="o">=</span> <span class="n">max</span><span class="p">(</span><span class="n">dfs</span><span class="p">(</span><span class="n">pos</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">),</span> <span class="n">res</span><span class="p">);</span>
    <span class="p">}</span>
    <span class="k">else</span>
    <span class="p">{</span>
        <span class="n">res</span> <span class="o">=</span> <span class="mf">1e18</span><span class="p">;</span>
        <span class="k">if</span><span class="p">(</span><span class="n">delb</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">&lt;=</span> <span class="n">n</span> <span class="o">&amp;&amp;</span> <span class="n">j</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">&lt;=</span> <span class="n">k</span><span class="p">)</span>
            <span class="n">res</span> <span class="o">=</span> <span class="n">min</span><span class="p">(</span><span class="n">dfs</span><span class="p">(</span><span class="n">pos</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">i</span><span class="p">,</span> <span class="n">j</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">-</span> <span class="n">b</span><span class="p">[</span><span class="n">delb</span> <span class="o">+</span> <span class="mi">1</span><span class="p">],</span> <span class="n">res</span><span class="p">);</span>
        <span class="n">res</span> <span class="o">=</span> <span class="n">min</span><span class="p">(</span><span class="n">dfs</span><span class="p">(</span><span class="n">pos</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">),</span> <span class="n">res</span><span class="p">);</span>
    <span class="p">}</span>
    <span class="n">f</span><span class="p">[</span><span class="n">pos</span><span class="p">][</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span> <span class="o">=</span> <span class="n">res</span><span class="p">;</span>
    <span class="k">return</span> <span class="n">res</span><span class="p">;</span>
<span class="p">}</span>
 
<span class="kt">void</span> <span class="nf">solve</span><span class="p">()</span>
<span class="p">{</span>
    <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">n</span><span class="o">&gt;&gt;</span><span class="n">k</span><span class="p">;</span>
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
        <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
        <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">b</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
    <span class="n">sort</span><span class="p">(</span><span class="n">a</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">a</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">+</span> <span class="n">n</span><span class="p">);</span>
    <span class="n">sort</span><span class="p">(</span><span class="n">b</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">b</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">+</span> <span class="n">n</span><span class="p">);</span>
    <span class="n">reverse</span><span class="p">(</span><span class="n">a</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">a</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">+</span> <span class="n">n</span><span class="p">);</span>
    <span class="n">reverse</span><span class="p">(</span><span class="n">b</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">b</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">+</span> <span class="n">n</span><span class="p">);</span>
    <span class="n">memset</span><span class="p">(</span><span class="n">f</span><span class="p">,</span> <span class="mh">0x3f</span><span class="p">,</span> <span class="k">sizeof</span> <span class="n">f</span><span class="p">);</span>
    <span class="n">tmp</span> <span class="o">=</span> <span class="n">f</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">];</span>
    <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="n">dfs</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
    <span class="c1">// cout&lt;&lt;f[1][0][0]&lt;&lt;'\n';</span>
<span class="p">}</span>
</code></pre></div></div> <h2 id="d---gamblers-ruin"><a href="https://codeforces.com/gym/104065/problem/D">D - Gambler’s Ruin</a></h2> <p>选择枚举一个队的赔率，三分另一个队的赔率</p> <ol> <li>将两队预测胜率从小到大排序</li> <li>前缀和处理</li> <li>枚举A队赔率</li> <li>三分另一队赔率</li> </ol> <p>这个我很快想到了解法，但是一直不知道怎么处理1,2操作，写了好多个版本一直过不了样例，过了1周再写就过了</p> <div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">typedef</span> <span class="kt">long</span> <span class="kt">long</span> <span class="n">ll</span><span class="p">;</span>
 
<span class="k">const</span> <span class="kt">int</span> <span class="n">mod</span> <span class="o">=</span> <span class="mf">1e9</span> <span class="o">+</span> <span class="mi">7</span><span class="p">;</span>
<span class="k">const</span> <span class="kt">int</span> <span class="n">N</span> <span class="o">=</span> <span class="mf">1e6</span> <span class="o">+</span> <span class="mi">10</span><span class="p">;</span>
 
<span class="n">map</span><span class="o">&lt;</span><span class="kt">double</span><span class="p">,</span> <span class="n">ll</span><span class="o">&gt;</span> <span class="n">mp</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">n</span><span class="p">,</span> <span class="n">m</span><span class="p">;</span>
<span class="n">vector</span><span class="o">&lt;</span><span class="n">pair</span><span class="o">&lt;</span><span class="kt">double</span><span class="p">,</span> <span class="n">ll</span><span class="o">&gt;&gt;</span> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">;</span>
<span class="n">ll</span> <span class="n">sx</span><span class="p">[</span><span class="n">N</span><span class="p">],</span> <span class="n">sy</span><span class="p">[</span><span class="n">N</span><span class="p">];</span>
<span class="kt">double</span> <span class="n">res</span><span class="p">;</span>
<span class="kt">double</span> <span class="nf">f</span><span class="p">(</span><span class="kt">int</span> <span class="n">idx</span><span class="p">,</span> <span class="kt">int</span> <span class="n">idy</span><span class="p">)</span>
<span class="p">{</span>
    <span class="kt">double</span> <span class="n">s1</span> <span class="o">=</span> <span class="mf">1.0</span> <span class="o">*</span> <span class="n">a</span><span class="p">[</span><span class="n">idx</span><span class="p">].</span><span class="n">first</span> <span class="o">*</span> <span class="n">sx</span><span class="p">[</span><span class="n">idx</span><span class="p">];</span>
    <span class="kt">double</span> <span class="n">s2</span> <span class="o">=</span> <span class="mf">1.0</span> <span class="o">*</span> <span class="n">b</span><span class="p">[</span><span class="n">idy</span><span class="p">].</span><span class="n">first</span> <span class="o">*</span> <span class="n">sy</span><span class="p">[</span><span class="n">idy</span><span class="p">];</span>    
    <span class="k">return</span> <span class="mf">1.0</span> <span class="o">*</span> <span class="n">sx</span><span class="p">[</span><span class="n">idx</span><span class="p">]</span> <span class="o">+</span> <span class="n">sy</span><span class="p">[</span><span class="n">idy</span><span class="p">]</span> <span class="o">-</span> <span class="n">max</span><span class="p">(</span><span class="n">s1</span><span class="p">,</span> <span class="n">s2</span><span class="p">);</span> 
<span class="p">}</span>
<span class="kt">void</span> <span class="nf">work</span><span class="p">(</span><span class="kt">int</span> <span class="n">idx</span><span class="p">)</span>
<span class="p">{</span>
    <span class="kt">int</span> <span class="n">l</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="n">r</span> <span class="o">=</span> <span class="n">m</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span>
    <span class="k">while</span><span class="p">(</span><span class="n">l</span> <span class="o">&lt;</span> <span class="n">r</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="kt">int</span> <span class="n">lmid</span> <span class="o">=</span> <span class="n">l</span> <span class="o">+</span> <span class="p">(</span><span class="n">r</span> <span class="o">-</span> <span class="n">l</span><span class="p">)</span> <span class="o">/</span> <span class="mi">3</span><span class="p">;</span>
        <span class="kt">int</span> <span class="n">rmid</span> <span class="o">=</span> <span class="n">r</span> <span class="o">-</span> <span class="p">(</span><span class="n">r</span> <span class="o">-</span> <span class="n">l</span><span class="p">)</span> <span class="o">/</span> <span class="mi">3</span><span class="p">;</span>
        <span class="kt">double</span> <span class="n">fl</span> <span class="o">=</span> <span class="n">f</span><span class="p">(</span><span class="n">lmid</span><span class="p">,</span> <span class="n">idx</span><span class="p">),</span> <span class="n">fr</span> <span class="o">=</span> <span class="n">f</span><span class="p">(</span><span class="n">rmid</span><span class="p">,</span> <span class="n">idx</span><span class="p">);</span>
        <span class="k">if</span><span class="p">(</span><span class="n">fl</span> <span class="o">&lt;=</span> <span class="n">fr</span><span class="p">)</span>
            <span class="n">l</span> <span class="o">=</span> <span class="n">lmid</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span>
        <span class="k">else</span> <span class="n">r</span> <span class="o">=</span> <span class="n">rmid</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span>
        <span class="n">res</span> <span class="o">=</span> <span class="n">max</span><span class="p">({</span><span class="n">fl</span><span class="p">,</span> <span class="n">fr</span><span class="p">,</span> <span class="n">res</span><span class="p">});</span>
        <span class="c1">// cout&lt;&lt;l&lt;&lt;" "&lt;&lt;r&lt;&lt;'\n';</span>
    <span class="p">}</span>
<span class="p">}</span>
<span class="kt">void</span> <span class="nf">solve</span><span class="p">()</span>
<span class="p">{</span>       
    <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">n</span><span class="p">;</span>
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="kt">double</span> <span class="n">p</span><span class="p">;</span>   <span class="n">ll</span> <span class="n">c</span><span class="p">;</span>   <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">p</span><span class="o">&gt;&gt;</span><span class="n">c</span><span class="p">;</span>
        <span class="n">mp</span><span class="p">[</span><span class="n">p</span><span class="p">]</span> <span class="o">+=</span> <span class="n">c</span><span class="p">;</span>
    <span class="p">}</span>
    <span class="n">a</span><span class="p">.</span><span class="n">push_back</span><span class="p">({</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">});</span>
    <span class="n">b</span><span class="p">.</span><span class="n">push_back</span><span class="p">({</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">});</span>
    <span class="k">for</span><span class="p">(</span><span class="k">auto</span> <span class="p">[</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">]</span> <span class="o">:</span> <span class="n">mp</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="k">if</span><span class="p">(</span><span class="n">x</span> <span class="o">!=</span> <span class="mf">0.0</span><span class="p">)</span>
            <span class="n">a</span><span class="p">.</span><span class="n">push_back</span><span class="p">({</span><span class="mf">1.0</span> <span class="o">/</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">});</span>
        <span class="k">if</span><span class="p">(</span><span class="n">x</span> <span class="o">!=</span> <span class="mf">1.0</span><span class="p">)</span>
            <span class="n">b</span><span class="p">.</span><span class="n">push_back</span><span class="p">({</span><span class="mf">1.0</span> <span class="o">/</span> <span class="p">(</span><span class="mf">1.0</span> <span class="o">-</span> <span class="n">x</span><span class="p">),</span> <span class="n">y</span><span class="p">});</span>
    <span class="p">}</span>
    <span class="n">sort</span><span class="p">(</span><span class="n">a</span><span class="p">.</span><span class="n">begin</span><span class="p">(),</span> <span class="n">a</span><span class="p">.</span><span class="n">end</span><span class="p">());</span>
    <span class="n">sort</span><span class="p">(</span><span class="n">b</span><span class="p">.</span><span class="n">begin</span><span class="p">(),</span> <span class="n">b</span><span class="p">.</span><span class="n">end</span><span class="p">());</span>
    <span class="n">n</span> <span class="o">=</span> <span class="n">a</span><span class="p">.</span><span class="n">size</span><span class="p">(),</span> <span class="n">m</span> <span class="o">=</span> <span class="n">b</span><span class="p">.</span><span class="n">size</span><span class="p">();</span>
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="n">sx</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">].</span><span class="n">second</span><span class="p">;</span>
        <span class="k">if</span><span class="p">(</span><span class="n">i</span> <span class="o">&gt;=</span> <span class="mi">1</span><span class="p">)</span>  <span class="n">sx</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+=</span> <span class="n">sx</span><span class="p">[</span><span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">];</span>
    <span class="p">}</span>
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">m</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="n">sy</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">b</span><span class="p">[</span><span class="n">i</span><span class="p">].</span><span class="n">second</span><span class="p">;</span>
        <span class="k">if</span><span class="p">(</span><span class="n">i</span> <span class="o">&gt;=</span> <span class="mi">1</span><span class="p">)</span>  <span class="n">sy</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+=</span> <span class="n">sy</span><span class="p">[</span><span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">];</span>
    <span class="p">}</span>
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
        <span class="n">work</span><span class="p">(</span><span class="n">i</span><span class="p">);</span>
    <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="n">fixed</span><span class="o">&lt;&lt;</span><span class="n">setprecision</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span><span class="o">&lt;&lt;</span><span class="n">res</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
    <span class="k">return</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>]]></content><author><name></name></author><category term="mathematics"/><category term="dynamic programming"/><category term="contest"/><summary type="html"><![CDATA[2022 China Collegiate Programming Contest (CCPC) Mianyang Onsite 目录 - 2022 China Collegiate Programming Contest (CCPC) Mianyang Onsite - VP 情况 - G - Let Them E…]]></summary></entry><entry><title type="html">The 2021 China Collegiate Programming Contest (Harbin) JBEIDG</title><link href="https://kdk550.github.io/blog/2023/cnblogs-17734624/" rel="alternate" type="text/html" title="The 2021 China Collegiate Programming Contest (Harbin) JBEIDG"/><published>2023-09-27T15:09:00+00:00</published><updated>2023-09-27T15:09:00+00:00</updated><id>https://kdk550.github.io/blog/2023/cnblogs-17734624</id><content type="html" xml:base="https://kdk550.github.io/blog/2023/cnblogs-17734624/"><![CDATA[<h1 id="the-2021-china-collegiate-programming-contest-harbin"><a href="https://codeforces.com/gym/103447">The 2021 China Collegiate Programming Contest (Harbin)</a></h1> <p>目录</p> <ul> <li><a href="/blog/2023/cnblogs-17734624/#the-2021-china-collegiate-programming-contest-harbin">The 2021 China Collegiate Programming Contest (Harbin)</a> <ul> <li><a href="/blog/2023/cnblogs-17734624/#vp概况">VP概况</a></li> <li><a href="/blog/2023/cnblogs-17734624/#j---local-minimum">J - Local Minimum</a></li> <li><a href="/blog/2023/cnblogs-17734624/#b---magical-subsequence">B - Magical Subsequence</a></li> <li><a href="/blog/2023/cnblogs-17734624/#e---power-and-modulo">E - Power and Modulo</a></li> <li><a href="/blog/2023/cnblogs-17734624/#i---power-and-zero">I - Power and Zero</a></li> <li><a href="/blog/2023/cnblogs-17734624/#d---math-master">D - Math master</a></li> <li><a href="/blog/2023/cnblogs-17734624/#g---damaged-bicycle">G - Damaged Bicycle</a></li> </ul> </li> </ul> <h2 id="vp概况">VP概况</h2> <p>队友不应该写签到，签到应该我来写，以至于多了 <span class="math inline">(2)</span> 罚时，后面的题放心交给队友就好。<br/> <img src="/assets/img/blog/cnblogs/b3a14cc40fe14660b34cbe780d2afb495d5cc9d1e4c980c7ecda4f915007fdf2.png" alt="image"/><br/> <img src="/assets/img/blog/cnblogs/62f36f5430ac4aa1449151ed71452e4145439caae778eee1a9b2398e6a69a752.png" alt="image"/></p> <h2 id="j---local-minimum"><a href="https://codeforces.com/gym/103447/problem/J">J - Local Minimum</a></h2> <p>问矩阵中有多少个元素 <span class="math inline">(A_{i,j})</span> 同时是第 <span class="math inline">(r)</span> 行，第 <span class="math inline">(c)</span> 列上的最小元素</p> <p><span class="math inline">(n = 1000)</span> 直接暴力</p> <div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">const</span> <span class="kt">int</span> <span class="n">N</span> <span class="o">=</span> <span class="mf">1e3</span> <span class="o">+</span> <span class="mi">10</span><span class="p">;</span>
<span class="n">ll</span> <span class="n">a</span><span class="p">[</span><span class="n">N</span><span class="p">][</span><span class="n">N</span><span class="p">],</span> <span class="n">n</span><span class="p">,</span> <span class="n">m</span><span class="p">,</span> <span class="n">res</span><span class="p">,</span> <span class="n">r</span><span class="p">[</span><span class="n">N</span><span class="p">],</span> <span class="n">c</span><span class="p">[</span><span class="n">N</span><span class="p">];</span>
<span class="kt">void</span> <span class="nf">solve</span><span class="p">()</span>
<span class="p">{</span>
	<span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">n</span><span class="o">&gt;&gt;</span><span class="n">m</span><span class="p">;</span>
	<span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
		<span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;=</span> <span class="n">m</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span>
			<span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">];</span>

	<span class="n">memset</span><span class="p">(</span><span class="n">r</span><span class="p">,</span> <span class="mh">0x3f</span><span class="p">,</span> <span class="k">sizeof</span> <span class="n">r</span><span class="p">);</span>
	<span class="n">memset</span><span class="p">(</span><span class="n">c</span><span class="p">,</span> <span class="mh">0x3f</span><span class="p">,</span> <span class="k">sizeof</span> <span class="n">c</span><span class="p">);</span>
	<span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
		<span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;=</span> <span class="n">m</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span>
			<span class="n">r</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">min</span><span class="p">(</span><span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">],</span> <span class="n">r</span><span class="p">[</span><span class="n">i</span><span class="p">]);</span>
	<span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;=</span> <span class="n">m</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span>
		<span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
			<span class="n">c</span><span class="p">[</span><span class="n">j</span><span class="p">]</span> <span class="o">=</span> <span class="n">min</span><span class="p">(</span><span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">],</span> <span class="n">c</span><span class="p">[</span><span class="n">j</span><span class="p">]);</span>	
	<span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
		<span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;=</span> <span class="n">m</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span>
			<span class="k">if</span><span class="p">(</span><span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span> <span class="o">==</span> <span class="n">r</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">&amp;&amp;</span> <span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span> <span class="o">==</span> <span class="n">c</span><span class="p">[</span><span class="n">j</span><span class="p">])</span>
				<span class="n">res</span><span class="o">++</span><span class="p">;</span>
	<span class="n">cout</span><span class="o">&lt;&lt;</span><span class="n">res</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div> <h2 id="b---magical-subsequence"><a href="https://codeforces.com/gym/103447/problem/B">B - Magical Subsequence</a></h2> <p>问子序列第 <span class="math inline">(2 \times i)</span> 元素和 第<span class="math inline">(2 \times i - 1)</span> 位元素的和为 <span class="math inline">(X)</span> 时，子序列的最大长度是？</p> <p>定义状态 <span class="math inline">(f_{i,j})</span> ，表示第 <span class="math inline">(i)</span> 位，元素和为 <span class="math inline">(j)</span> 的子序列最大长度</p> <p>预处理 <span class="math inline">(suf_{i,j})</span> 表示第 <span class="math inline">(i)</span> 位，后缀中值为 <span class="math inline">(k)</span> 的元素位置</p> <p>转移方程：</p> <div class="math display">\[f_{suf_{i,j-a_i},j} = f_{i-1,j} + 2 \]</div> <div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">const</span> <span class="kt">int</span> <span class="n">N</span> <span class="o">=</span> <span class="mf">1e5</span> <span class="o">+</span> <span class="mi">10</span><span class="p">;</span>
 
<span class="kt">int</span> <span class="n">f</span><span class="p">[</span><span class="n">N</span><span class="p">][</span><span class="mi">210</span><span class="p">];</span>
<span class="kt">int</span> <span class="n">a</span><span class="p">[</span><span class="n">N</span><span class="p">],</span> <span class="n">suf</span><span class="p">[</span><span class="n">N</span><span class="p">][</span><span class="mi">110</span><span class="p">];</span>
 
<span class="kt">void</span> <span class="nf">solve</span><span class="p">()</span>
<span class="p">{</span>
	<span class="n">ll</span> <span class="n">n</span><span class="p">;</span>
	<span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">n</span><span class="p">;</span>
	<span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
		<span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
	<span class="n">memset</span><span class="p">(</span><span class="n">suf</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="k">sizeof</span> <span class="n">suf</span><span class="p">);</span>
	<span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span> <span class="o">&gt;=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span><span class="o">--</span><span class="p">)</span>
	<span class="p">{</span>
		<span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;=</span> <span class="mi">100</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span>
			<span class="n">suf</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span> <span class="o">=</span> <span class="n">suf</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">][</span><span class="n">j</span><span class="p">];</span>
		<span class="k">if</span><span class="p">(</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">&lt;=</span> <span class="n">n</span><span class="p">)</span>
			<span class="n">suf</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">a</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]]</span> <span class="o">=</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span>
	<span class="p">}</span>
	<span class="kt">int</span> <span class="n">res</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
	<span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
	<span class="p">{</span>
		<span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;=</span> <span class="mi">200</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span>
			<span class="n">f</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span> <span class="o">=</span> <span class="n">max</span><span class="p">(</span><span class="n">f</span><span class="p">[</span><span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">][</span><span class="n">j</span><span class="p">],</span> <span class="n">f</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]);</span>
		<span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;=</span> <span class="mi">200</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span>
		<span class="p">{</span>
			<span class="k">if</span><span class="p">(</span><span class="n">j</span> <span class="o">-</span> <span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">&gt;</span> <span class="mi">100</span><span class="p">)</span>	<span class="k">break</span><span class="p">;</span>
			<span class="kt">int</span> <span class="n">k</span> <span class="o">=</span> <span class="n">j</span> <span class="o">-</span> <span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
			<span class="k">if</span><span class="p">(</span><span class="n">suf</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">k</span><span class="p">]</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span>	<span class="k">continue</span><span class="p">;</span>
			<span class="n">f</span><span class="p">[</span><span class="n">suf</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">k</span><span class="p">]][</span><span class="n">j</span><span class="p">]</span> <span class="o">=</span> <span class="n">max</span><span class="p">(</span><span class="n">f</span><span class="p">[</span><span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">][</span><span class="n">j</span><span class="p">]</span> <span class="o">+</span> <span class="mi">2</span><span class="p">,</span> <span class="n">f</span><span class="p">[</span><span class="n">suf</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">k</span><span class="p">]][</span><span class="n">j</span><span class="p">]);</span>
			<span class="n">res</span> <span class="o">=</span> <span class="n">max</span><span class="p">(</span><span class="n">f</span><span class="p">[</span><span class="n">suf</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">k</span><span class="p">]][</span><span class="n">j</span><span class="p">],</span> <span class="n">res</span><span class="p">);</span>
		<span class="p">}</span>
	<span class="p">}</span>
	<span class="n">cout</span><span class="o">&lt;&lt;</span><span class="n">res</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div> <h2 id="e---power-and-modulo"><a href="https://codeforces.com/gym/103447/problem/E">E - Power and Modulo</a></h2> <p>考虑到 <span class="math inline">(a_i \leq 10^9)</span>，那么对于取模来说，在 <span class="math inline">(n)</span> 足够大的情况下，一定存在</p> <p><span class="math inline">(2^{i - 2} \% m= 2^{i - 2})</span></p> <p><span class="math inline">(2^{i - 1} \% m= a_i)</span></p> <div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">const</span> <span class="kt">int</span> <span class="n">N</span> <span class="o">=</span> <span class="mf">1e5</span> <span class="o">+</span> <span class="mi">10</span><span class="p">;</span>
<span class="n">ll</span> <span class="n">a</span><span class="p">[</span><span class="n">N</span><span class="p">],</span> <span class="n">n</span><span class="p">;</span>
<span class="n">ll</span> <span class="n">bmi</span><span class="p">[</span><span class="n">N</span><span class="p">];</span>
<span class="kt">void</span> <span class="nf">solve</span><span class="p">()</span>
<span class="p">{</span>
	<span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">n</span><span class="p">;</span>
	<span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
		<span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
	<span class="n">bmi</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>	
	<span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="mi">60</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
		<span class="n">bmi</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">bmi</span><span class="p">[</span><span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span> <span class="o">*</span> <span class="mi">2</span><span class="p">;</span>
	<span class="n">ll</span> <span class="n">m</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span>
 
	<span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
	<span class="p">{</span>
		<span class="c1">// cout&lt;&lt;a[i]&lt;&lt;" "&lt;&lt;bmi[i]&lt;&lt;'\n';</span>
		<span class="k">if</span><span class="p">(</span><span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">==</span> <span class="n">bmi</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
			<span class="k">continue</span><span class="p">;</span>
		<span class="k">else</span>
		<span class="p">{</span>
			<span class="n">m</span> <span class="o">=</span> <span class="n">bmi</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">-</span> <span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
			<span class="k">break</span><span class="p">;</span>
		<span class="p">}</span>
	<span class="p">}</span>
	<span class="c1">// cout&lt;&lt;m&lt;&lt;" ";</span>
	<span class="k">if</span><span class="p">(</span><span class="n">m</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span>
	<span class="p">{</span>
		<span class="n">cout</span><span class="o">&lt;&lt;-</span><span class="mi">1</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
		<span class="k">return</span><span class="p">;</span>
	<span class="p">}</span>
	<span class="kt">bool</span> <span class="n">ok</span> <span class="o">=</span> <span class="nb">true</span><span class="p">;</span>
	<span class="n">ll</span> <span class="n">base</span> <span class="o">=</span> <span class="mi">1</span> <span class="o">%</span> <span class="n">m</span><span class="p">;</span>
	<span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
	<span class="p">{</span>
	 	<span class="k">if</span><span class="p">(</span><span class="n">base</span> <span class="o">!=</span> <span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
			<span class="n">ok</span> <span class="o">=</span> <span class="nb">false</span><span class="p">;</span>
		<span class="n">base</span> <span class="o">*=</span> <span class="mi">2</span><span class="p">;</span>
		<span class="n">base</span> <span class="o">%=</span> <span class="n">m</span><span class="p">;</span>
	<span class="p">}</span>
	<span class="k">if</span><span class="p">(</span><span class="n">ok</span><span class="p">)</span>
		<span class="n">cout</span><span class="o">&lt;&lt;</span><span class="n">m</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
	<span class="k">else</span>
		<span class="n">cout</span><span class="o">&lt;&lt;-</span><span class="mi">1</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
 
<span class="p">}</span>
</code></pre></div></div> <h2 id="i---power-and-zero"><a href="https://codeforces.com/gym/103447/problem/I">I - Power and Zero</a></h2> <p>发现各个二进制位的有多少个，若满足 <span class="math inline">(cnt_0 \geq cnt_1 \geq \dots \geq cnt_{32})</span> ，则答案最优，不断去调整即可</p> <div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">const</span> <span class="kt">int</span> <span class="n">N</span> <span class="o">=</span> <span class="mf">2e5</span> <span class="o">+</span> <span class="mi">10</span><span class="p">;</span>
 
<span class="kt">int</span> <span class="n">cnt</span><span class="p">[</span><span class="mi">40</span><span class="p">];</span>
<span class="kt">void</span> <span class="nf">solve</span><span class="p">()</span>
<span class="p">{</span>       
    <span class="n">memset</span><span class="p">(</span><span class="n">cnt</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="k">sizeof</span> <span class="n">cnt</span><span class="p">);</span>
    <span class="kt">int</span> <span class="n">n</span><span class="p">;</span>  <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">n</span><span class="p">;</span>
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="kt">int</span> <span class="n">x</span><span class="p">;</span>  <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">x</span><span class="p">;</span>
        <span class="kt">int</span> <span class="n">t</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
        <span class="k">while</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
        <span class="p">{</span>
            <span class="n">cnt</span><span class="p">[</span><span class="n">t</span><span class="o">++</span><span class="p">]</span> <span class="o">+=</span> <span class="p">(</span><span class="n">x</span> <span class="o">%</span> <span class="mi">2</span><span class="p">);</span>
            <span class="n">x</span> <span class="o">/=</span> <span class="mi">2</span><span class="p">;</span>
        <span class="p">}</span>
    <span class="p">}</span>
    <span class="k">while</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="kt">bool</span> <span class="n">ok</span> <span class="o">=</span> <span class="nb">false</span><span class="p">;</span>
        <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="mi">32</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
        <span class="p">{</span>
            <span class="k">if</span><span class="p">(</span><span class="n">cnt</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">&gt;</span> <span class="n">cnt</span><span class="p">[</span><span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">])</span>
            <span class="p">{</span>
                <span class="n">ok</span> <span class="o">=</span> <span class="nb">true</span><span class="p">;</span>
                <span class="n">cnt</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">--</span><span class="p">;</span>
                <span class="n">cnt</span><span class="p">[</span><span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span> <span class="o">+=</span> <span class="mi">2</span><span class="p">;</span>
                <span class="k">break</span><span class="p">;</span>
            <span class="p">}</span>
        <span class="p">}</span>
        <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="n">ok</span><span class="p">)</span>
            <span class="k">break</span><span class="p">;</span>
    <span class="p">}</span>
    <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="n">cnt</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
    <span class="k">return</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div> <h2 id="d---math-master"><a href="https://codeforces.com/gym/103447/problem/D">D - Math master</a></h2> <p>用二进制数 <span class="math inline">(S)</span> 表示分子剩余部分，我们从低位去检查分母即可</p> <div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">#define int __int128
#define ll __int128
</span> 
<span class="k">using</span> <span class="k">namespace</span> <span class="n">std</span><span class="p">;</span>
 
<span class="kr">inline</span> <span class="n">__int128</span> <span class="nf">read</span><span class="p">(){</span><span class="n">__int128</span> <span class="n">x</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span><span class="n">f</span><span class="o">=</span><span class="mi">1</span><span class="p">;</span><span class="kt">char</span> <span class="n">ch</span><span class="o">=</span><span class="n">getchar</span><span class="p">();</span><span class="k">while</span><span class="p">(</span><span class="n">ch</span><span class="o">&lt;</span><span class="sc">'0'</span><span class="o">||</span><span class="n">ch</span><span class="o">&gt;</span><span class="sc">'9'</span><span class="p">){</span><span class="k">if</span><span class="p">(</span><span class="n">ch</span><span class="o">==</span><span class="sc">'-'</span><span class="p">){</span><span class="n">f</span><span class="o">=-</span><span class="mi">1</span><span class="p">;}</span><span class="n">ch</span><span class="o">=</span><span class="n">getchar</span><span class="p">();}</span><span class="k">while</span><span class="p">(</span><span class="n">ch</span><span class="o">&gt;=</span><span class="sc">'0'</span><span class="o">&amp;&amp;</span><span class="n">ch</span><span class="o">&lt;=</span><span class="sc">'9'</span><span class="p">){</span><span class="n">x</span><span class="o">=</span><span class="n">x</span><span class="o">*</span><span class="mi">10</span><span class="o">+</span><span class="n">ch</span><span class="o">-</span><span class="sc">'0'</span><span class="p">;</span><span class="n">ch</span><span class="o">=</span><span class="n">getchar</span><span class="p">();}</span><span class="k">return</span> <span class="n">x</span><span class="o">*</span><span class="n">f</span><span class="p">;}</span>
<span class="kr">inline</span> <span class="kt">void</span> <span class="nf">write</span><span class="p">(</span><span class="n">__int128</span> <span class="n">x</span><span class="p">){</span><span class="k">if</span> <span class="p">(</span><span class="n">x</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">){</span><span class="n">putchar</span><span class="p">(</span><span class="sc">'-'</span><span class="p">);</span><span class="n">x</span> <span class="o">=</span> <span class="o">-</span><span class="n">x</span><span class="p">;}</span><span class="k">if</span> <span class="p">(</span><span class="n">x</span> <span class="o">&gt;</span> <span class="mi">9</span><span class="p">)</span> <span class="n">write</span><span class="p">(</span><span class="n">x</span> <span class="o">/</span> <span class="mi">10</span><span class="p">);</span><span class="n">putchar</span><span class="p">(</span><span class="n">x</span> <span class="o">%</span> <span class="mi">10</span> <span class="o">+</span> <span class="sc">'0'</span><span class="p">);}</span>
<span class="n">ll</span> <span class="n">a</span><span class="p">[</span><span class="mi">50</span><span class="p">],</span> <span class="n">b</span><span class="p">[</span><span class="mi">50</span><span class="p">],</span> <span class="n">c</span><span class="p">[</span><span class="mi">50</span><span class="p">];</span>
<span class="kt">void</span> <span class="nf">solve</span><span class="p">()</span>
<span class="p">{</span>       
    <span class="n">ll</span> <span class="n">p</span><span class="p">,</span> <span class="n">q</span><span class="p">;</span>    
    <span class="c1">// cin&gt;&gt;p&gt;&gt;q;</span>
    <span class="n">p</span> <span class="o">=</span> <span class="n">read</span><span class="p">(),</span> <span class="n">q</span> <span class="o">=</span> <span class="n">read</span><span class="p">();</span>
    <span class="kt">int</span> <span class="n">n</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="n">m</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
    <span class="n">__int128</span> <span class="n">t</span> <span class="o">=</span> <span class="n">p</span><span class="p">;</span>
    <span class="k">while</span><span class="p">(</span><span class="n">t</span><span class="p">)</span>    <span class="n">a</span><span class="p">[</span><span class="n">n</span><span class="o">++</span><span class="p">]</span> <span class="o">=</span> <span class="n">t</span> <span class="o">%</span> <span class="mi">10</span><span class="p">,</span> <span class="n">t</span> <span class="o">/=</span> <span class="mi">10</span><span class="p">;</span>
    <span class="n">t</span> <span class="o">=</span> <span class="n">q</span><span class="p">;</span>
    <span class="k">while</span><span class="p">(</span><span class="n">t</span><span class="p">)</span>    <span class="n">b</span><span class="p">[</span><span class="n">m</span><span class="o">++</span><span class="p">]</span> <span class="o">=</span> <span class="n">t</span> <span class="o">%</span> <span class="mi">10</span><span class="p">,</span> <span class="n">t</span> <span class="o">/=</span> <span class="mi">10</span><span class="p">;</span>
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">S</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">S</span> <span class="o">&lt;</span> <span class="p">(</span><span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="n">n</span><span class="p">);</span> <span class="n">S</span><span class="o">++</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="n">ll</span> <span class="n">tp</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="n">cnt</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="n">d</span><span class="p">[</span><span class="mi">11</span><span class="p">];</span>
        <span class="n">memset</span><span class="p">(</span><span class="n">d</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="k">sizeof</span> <span class="n">d</span><span class="p">);</span>
        <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span><span class="o">--</span><span class="p">)</span>
            <span class="k">if</span><span class="p">((</span><span class="n">S</span> <span class="o">&gt;&gt;</span> <span class="n">i</span><span class="p">)</span> <span class="o">&amp;</span> <span class="mi">1</span><span class="p">)</span>
                <span class="n">cnt</span><span class="o">++</span><span class="p">,</span> <span class="n">tp</span> <span class="o">=</span> <span class="n">tp</span> <span class="o">*</span> <span class="mi">10</span> <span class="o">+</span> <span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
            <span class="k">else</span>    <span class="n">d</span><span class="p">[</span><span class="n">a</span><span class="p">[</span><span class="n">i</span><span class="p">]]</span><span class="o">--</span><span class="p">;</span>
        <span class="n">__int128</span> <span class="n">tq</span> <span class="o">=</span><span class="p">(</span><span class="n">__int128</span><span class="p">)</span><span class="n">tp</span> <span class="o">*</span> <span class="n">q</span><span class="p">;</span>
        <span class="k">if</span><span class="p">(</span><span class="n">tq</span> <span class="o">%</span> <span class="n">p</span> <span class="o">!=</span> <span class="mi">0</span> <span class="o">||</span> <span class="n">tp</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span>  <span class="k">continue</span><span class="p">;</span>
        <span class="n">tq</span> <span class="o">/=</span> <span class="n">p</span><span class="p">;</span>
        <span class="n">t</span> <span class="o">=</span> <span class="n">tq</span><span class="p">;</span>
        <span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
        <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">m</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
            <span class="k">if</span><span class="p">(</span><span class="n">b</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">==</span> <span class="n">t</span> <span class="o">%</span> <span class="mi">10</span><span class="p">)</span>
                <span class="n">j</span><span class="o">++</span><span class="p">,</span> <span class="n">t</span> <span class="o">/=</span> <span class="mi">10</span><span class="p">;</span>
            <span class="k">else</span> 
                <span class="n">d</span><span class="p">[</span><span class="n">b</span><span class="p">[</span><span class="n">i</span><span class="p">]]</span><span class="o">++</span><span class="p">;</span>
        <span class="kt">bool</span> <span class="n">ok</span> <span class="o">=</span> <span class="nb">true</span><span class="p">;</span>
        <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="mi">9</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
            <span class="k">if</span><span class="p">(</span><span class="n">d</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">)</span>   <span class="n">ok</span> <span class="o">=</span> <span class="nb">false</span><span class="p">;</span>
        <span class="k">if</span><span class="p">(</span><span class="n">ok</span> <span class="o">&amp;&amp;</span> <span class="n">t</span> <span class="o">==</span> <span class="mi">0</span> <span class="o">&amp;&amp;</span> <span class="n">tq</span> <span class="o">!=</span> <span class="mi">0</span> <span class="o">&amp;&amp;</span> <span class="n">tp</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">)</span>
            <span class="n">q</span> <span class="o">=</span> <span class="n">min</span><span class="p">(</span><span class="n">q</span><span class="p">,</span> <span class="p">(</span><span class="n">ll</span><span class="p">)</span><span class="n">tq</span><span class="p">),</span> <span class="n">p</span> <span class="o">=</span> <span class="n">min</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="p">(</span><span class="n">ll</span><span class="p">)</span><span class="n">tp</span><span class="p">);</span>                
    <span class="p">}</span>
    <span class="n">write</span><span class="p">(</span><span class="n">p</span><span class="p">);</span>   <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="s">" "</span><span class="p">;</span>  <span class="n">write</span><span class="p">(</span><span class="n">q</span><span class="p">);</span>
    <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
    <span class="k">return</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div> <h2 id="g---damaged-bicycle"><a href="https://codeforces.com/gym/103447/problem/G">G - Damaged Bicycle</a></h2> <p><span class="math inline">(P_S)</span> 记录集合内单车都是坏的</p> <p>官方题解：</p> <p><span class="math inline">(f_{i,S})</span> 为访问 <span class="math inline">(S)</span> 集合内的单车，最终停在 <span class="math inline">(i)</span> 号点的最小期望时间，访问 <span class="math inline">(i)</span> 之前就找到了好单车、<span class="math inline">(i)</span> 是第一辆好 单车、<span class="math inline">(i)</span> 还是坏的。</p> <div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">#include</span><span class="cpf">&lt;bits/stdc++.h&gt;</span><span class="cp">
</span>
<span class="k">using</span> <span class="k">namespace</span> <span class="n">std</span><span class="p">;</span>

<span class="k">typedef</span> <span class="kt">long</span> <span class="kt">long</span> <span class="n">ll</span><span class="p">;</span>

<span class="k">const</span> <span class="kt">int</span> <span class="n">N</span> <span class="o">=</span> <span class="mf">1e5</span> <span class="o">+</span> <span class="mi">10</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">t</span><span class="p">,</span> <span class="n">r</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">n</span><span class="p">,</span> <span class="n">m</span><span class="p">;</span>
<span class="n">vector</span><span class="o">&lt;</span><span class="n">pair</span><span class="o">&lt;</span><span class="kt">int</span><span class="p">,</span> <span class="kt">int</span><span class="o">&gt;&gt;</span> <span class="n">e</span><span class="p">[</span><span class="n">N</span><span class="p">];</span>
<span class="kt">int</span> <span class="n">k</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">pos</span><span class="p">[</span><span class="n">N</span><span class="p">];</span>
<span class="kt">bool</span> <span class="n">vis</span><span class="p">[</span><span class="n">N</span><span class="p">];</span>
<span class="kt">double</span> <span class="n">p</span><span class="p">[</span><span class="mi">20</span><span class="p">];</span>
<span class="kt">int</span> <span class="n">d</span><span class="p">[</span><span class="mi">20</span><span class="p">][</span><span class="n">N</span><span class="p">];</span>
<span class="kt">void</span> <span class="nf">dij</span><span class="p">(</span><span class="kt">int</span> <span class="n">id</span><span class="p">,</span> <span class="kt">int</span> <span class="n">start</span><span class="p">)</span>
<span class="p">{</span>
    <span class="n">priority_queue</span><span class="o">&lt;</span><span class="n">pair</span><span class="o">&lt;</span><span class="kt">int</span><span class="p">,</span><span class="kt">int</span><span class="o">&gt;</span><span class="p">,</span> <span class="n">vector</span><span class="o">&lt;</span><span class="n">pair</span><span class="o">&lt;</span><span class="kt">int</span><span class="p">,</span> <span class="kt">int</span><span class="o">&gt;&gt;</span><span class="p">,</span> <span class="n">greater</span><span class="o">&lt;</span><span class="n">pair</span><span class="o">&lt;</span><span class="kt">int</span><span class="p">,</span> <span class="kt">int</span><span class="o">&gt;&gt;&gt;</span> <span class="n">q</span><span class="p">;</span>
    <span class="n">memset</span><span class="p">(</span><span class="n">vis</span><span class="p">,</span> <span class="nb">false</span><span class="p">,</span> <span class="k">sizeof</span> <span class="n">vis</span><span class="p">);</span>
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
        <span class="n">d</span><span class="p">[</span><span class="n">id</span><span class="p">][</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="mf">1e9</span><span class="p">;</span>
    <span class="n">d</span><span class="p">[</span><span class="n">id</span><span class="p">][</span><span class="n">start</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
    <span class="n">q</span><span class="p">.</span><span class="n">push</span><span class="p">({</span><span class="mi">0</span><span class="p">,</span> <span class="n">start</span><span class="p">});</span>
    <span class="k">while</span><span class="p">(</span><span class="n">q</span><span class="p">.</span><span class="n">size</span><span class="p">()</span> <span class="o">&gt;=</span> <span class="mi">1</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="k">auto</span> <span class="n">t</span> <span class="o">=</span> <span class="n">q</span><span class="p">.</span><span class="n">top</span><span class="p">();</span>       <span class="n">q</span><span class="p">.</span><span class="n">pop</span><span class="p">();</span>
        <span class="kt">int</span> <span class="n">u</span> <span class="o">=</span> <span class="n">t</span><span class="p">.</span><span class="n">second</span><span class="p">;</span>
        <span class="k">if</span><span class="p">(</span><span class="n">vis</span><span class="p">[</span><span class="n">u</span><span class="p">])</span>   <span class="k">continue</span><span class="p">;</span>
        <span class="n">vis</span><span class="p">[</span><span class="n">u</span><span class="p">]</span> <span class="o">=</span> <span class="nb">true</span><span class="p">;</span>
        <span class="k">for</span><span class="p">(</span><span class="k">auto</span> <span class="p">[</span><span class="n">v</span><span class="p">,</span> <span class="n">w</span><span class="p">]</span> <span class="o">:</span> <span class="n">e</span><span class="p">[</span><span class="n">u</span><span class="p">])</span>
        <span class="p">{</span>
            <span class="k">if</span><span class="p">(</span><span class="n">d</span><span class="p">[</span><span class="n">id</span><span class="p">][</span><span class="n">v</span><span class="p">]</span> <span class="o">&gt;</span> <span class="n">d</span><span class="p">[</span><span class="n">id</span><span class="p">][</span><span class="n">u</span><span class="p">]</span> <span class="o">+</span> <span class="n">w</span><span class="p">)</span>
            <span class="p">{</span>
                <span class="n">d</span><span class="p">[</span><span class="n">id</span><span class="p">][</span><span class="n">v</span><span class="p">]</span> <span class="o">=</span> <span class="n">d</span><span class="p">[</span><span class="n">id</span><span class="p">][</span><span class="n">u</span><span class="p">]</span> <span class="o">+</span> <span class="n">w</span><span class="p">;</span>
                <span class="n">q</span><span class="p">.</span><span class="n">push</span><span class="p">({</span><span class="n">d</span><span class="p">[</span><span class="n">id</span><span class="p">][</span><span class="n">v</span><span class="p">],</span> <span class="n">v</span><span class="p">});</span>
            <span class="p">}</span>
        <span class="p">}</span>
    <span class="p">}</span>
<span class="p">}</span>
<span class="kt">double</span> <span class="n">f</span><span class="p">[</span><span class="mi">20</span><span class="p">][</span><span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="mi">20</span><span class="p">];</span>
<span class="kt">double</span> <span class="n">P</span><span class="p">[</span><span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="mi">20</span><span class="p">];</span>
<span class="kt">void</span> <span class="nf">solve</span><span class="p">()</span>
<span class="p">{</span>
    <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">t</span><span class="o">&gt;&gt;</span><span class="n">r</span><span class="p">;</span>
    <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">n</span><span class="o">&gt;&gt;</span><span class="n">m</span><span class="p">;</span>
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">m</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="kt">int</span> <span class="n">u</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">w</span><span class="p">;</span>    
        <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">u</span><span class="o">&gt;&gt;</span><span class="n">v</span><span class="o">&gt;&gt;</span><span class="n">w</span><span class="p">;</span>
        <span class="n">e</span><span class="p">[</span><span class="n">u</span><span class="p">].</span><span class="n">push_back</span><span class="p">({</span><span class="n">v</span><span class="p">,</span> <span class="n">w</span><span class="p">});</span>
        <span class="n">e</span><span class="p">[</span><span class="n">v</span><span class="p">].</span><span class="n">push_back</span><span class="p">({</span><span class="n">u</span><span class="p">,</span> <span class="n">w</span><span class="p">});</span>
    <span class="p">}</span>
    <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">k</span><span class="p">;</span>
    <span class="n">p</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="mf">1.0</span><span class="p">;</span>
    <span class="n">pos</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">k</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">pos</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">&gt;&gt;</span><span class="n">p</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
        <span class="n">p</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">p</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">/</span> <span class="mi">100</span><span class="p">;</span>
        <span class="k">if</span><span class="p">(</span><span class="n">pos</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">==</span> <span class="mi">1</span><span class="p">)</span>
        <span class="p">{</span>
            <span class="n">p</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">p</span><span class="p">[</span><span class="n">i</span><span class="p">];</span> 
            <span class="n">i</span><span class="o">--</span><span class="p">,</span> <span class="n">k</span><span class="o">--</span><span class="p">;</span>
        <span class="p">}</span>
    <span class="p">}</span>
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;=</span> <span class="n">k</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
        <span class="n">dij</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">pos</span><span class="p">[</span><span class="n">i</span><span class="p">]);</span>

    <span class="k">if</span><span class="p">(</span><span class="n">d</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="n">n</span><span class="p">]</span> <span class="o">&gt;=</span> <span class="mf">1e9</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="n">cout</span><span class="o">&lt;&lt;-</span><span class="mi">1</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
        <span class="k">return</span><span class="p">;</span>
    <span class="p">}</span>
    <span class="kt">double</span> <span class="n">res</span> <span class="o">=</span> <span class="n">p</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">*</span> <span class="n">d</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="n">n</span><span class="p">]</span> <span class="o">/</span> <span class="n">t</span> <span class="o">+</span> <span class="p">(</span><span class="mf">1.0</span> <span class="o">-</span> <span class="n">p</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="o">*</span> <span class="n">d</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="n">n</span><span class="p">]</span> <span class="o">/</span> <span class="n">r</span><span class="p">;</span>
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">S</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">S</span> <span class="o">&lt;</span> <span class="p">(</span><span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="n">k</span><span class="p">);</span> <span class="n">S</span><span class="o">++</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="n">P</span><span class="p">[</span><span class="n">S</span><span class="p">]</span> <span class="o">=</span> <span class="n">p</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
        <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">k</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span>
            <span class="n">f</span><span class="p">[</span><span class="n">j</span><span class="p">][</span><span class="n">S</span><span class="p">]</span> <span class="o">=</span> <span class="mf">1e15</span><span class="p">;</span>
        <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">k</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span>
            <span class="k">if</span><span class="p">((</span><span class="n">S</span> <span class="o">&gt;&gt;</span> <span class="n">j</span><span class="p">)</span> <span class="o">&amp;</span> <span class="mi">1</span><span class="p">)</span> 
                <span class="n">P</span><span class="p">[</span><span class="n">S</span><span class="p">]</span> <span class="o">*=</span> <span class="n">p</span><span class="p">[</span><span class="n">j</span> <span class="o">+</span> <span class="mi">1</span><span class="p">];</span>
    <span class="p">}</span>
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">k</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="n">f</span><span class="p">[</span><span class="n">j</span><span class="p">][</span><span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="n">j</span><span class="p">]</span> <span class="o">=</span> <span class="n">p</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">*</span> <span class="n">d</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="n">pos</span><span class="p">[</span><span class="n">j</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]]</span> <span class="o">/</span> <span class="n">t</span><span class="p">;</span>
        <span class="n">f</span><span class="p">[</span><span class="n">j</span><span class="p">][</span><span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="n">j</span><span class="p">]</span> <span class="o">+=</span> <span class="p">(</span><span class="mi">1</span> <span class="o">-</span> <span class="n">p</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="o">*</span> <span class="n">d</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="n">n</span><span class="p">]</span> <span class="o">/</span> <span class="n">r</span><span class="p">;</span>
        <span class="n">f</span><span class="p">[</span><span class="n">j</span><span class="p">][</span><span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="n">j</span><span class="p">]</span> <span class="o">+=</span> <span class="n">p</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">*</span> <span class="p">(</span><span class="mi">1</span> <span class="o">-</span> <span class="n">p</span><span class="p">[</span><span class="n">j</span> <span class="o">+</span> <span class="mi">1</span><span class="p">])</span> <span class="o">*</span> <span class="n">d</span><span class="p">[</span><span class="n">j</span> <span class="o">+</span> <span class="mi">1</span><span class="p">][</span><span class="n">n</span><span class="p">]</span> <span class="o">/</span> <span class="n">r</span><span class="p">;</span>
        <span class="n">res</span> <span class="o">=</span> <span class="n">min</span><span class="p">(</span><span class="n">f</span><span class="p">[</span><span class="n">j</span><span class="p">][</span><span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="n">j</span><span class="p">]</span> <span class="o">+</span> <span class="n">P</span><span class="p">[</span><span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="n">j</span><span class="p">]</span> <span class="o">*</span> <span class="n">d</span><span class="p">[</span><span class="n">j</span> <span class="o">+</span> <span class="mi">1</span><span class="p">][</span><span class="n">n</span><span class="p">]</span> <span class="o">/</span> <span class="n">t</span><span class="p">,</span> <span class="n">res</span><span class="p">);</span>
    <span class="p">}</span>

    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">S</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">S</span> <span class="o">&lt;</span> <span class="p">(</span><span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="n">k</span><span class="p">);</span> <span class="n">S</span><span class="o">++</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">k</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
        <span class="p">{</span>
            <span class="k">if</span><span class="p">(((</span><span class="n">S</span> <span class="o">&gt;&gt;</span> <span class="n">i</span><span class="p">)</span> <span class="o">&amp;</span> <span class="mi">1</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span> <span class="k">continue</span><span class="p">;</span>
            <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">k</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span>
            <span class="p">{</span>
                <span class="k">if</span><span class="p">(((</span><span class="n">S</span> <span class="o">&gt;&gt;</span> <span class="n">j</span><span class="p">)</span> <span class="o">&amp;</span> <span class="mi">1</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span> <span class="o">||</span> <span class="n">i</span> <span class="o">==</span> <span class="n">j</span><span class="p">)</span> <span class="k">continue</span><span class="p">;</span>
                <span class="n">f</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">S</span><span class="p">]</span> <span class="o">=</span> <span class="n">min</span><span class="p">(</span><span class="n">f</span><span class="p">[</span><span class="n">j</span><span class="p">][</span><span class="n">S</span> <span class="o">^</span> <span class="p">(</span><span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="n">i</span><span class="p">)]</span> <span class="o">+</span> <span class="n">P</span><span class="p">[</span><span class="n">S</span> <span class="o">^</span> <span class="p">(</span><span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="n">i</span><span class="p">)]</span> <span class="o">*</span> <span class="n">d</span><span class="p">[</span><span class="n">j</span> <span class="o">+</span> <span class="mi">1</span><span class="p">][</span><span class="n">pos</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]]</span> <span class="o">/</span> <span class="n">t</span><span class="p">,</span> <span class="n">f</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">S</span><span class="p">]);</span>
            <span class="p">}</span>
            <span class="n">f</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">S</span><span class="p">]</span> <span class="o">+=</span> <span class="n">P</span><span class="p">[</span><span class="n">S</span> <span class="o">^</span> <span class="p">(</span><span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="n">i</span><span class="p">)]</span> <span class="o">*</span> <span class="p">(</span><span class="mi">1</span> <span class="o">-</span> <span class="n">p</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">])</span> <span class="o">*</span> <span class="n">d</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">][</span><span class="n">n</span><span class="p">]</span> <span class="o">/</span> <span class="n">r</span><span class="p">;</span>
            <span class="n">res</span> <span class="o">=</span> <span class="n">min</span><span class="p">(</span><span class="n">f</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">S</span><span class="p">]</span> <span class="o">+</span> <span class="n">P</span><span class="p">[</span><span class="n">S</span><span class="p">]</span> <span class="o">*</span> <span class="n">d</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">][</span><span class="n">n</span><span class="p">]</span> <span class="o">/</span> <span class="n">t</span><span class="p">,</span> <span class="n">res</span><span class="p">);</span>
        <span class="p">}</span>
    <span class="p">}</span>
    <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="n">fixed</span> <span class="o">&lt;&lt;</span> <span class="n">setprecision</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> <span class="o">&lt;&lt;</span><span class="n">res</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
    <span class="c1">// printf("%.10lf\n", res);</span>
<span class="p">}</span>

<span class="kt">int</span> <span class="nf">main</span><span class="p">()</span>
<span class="p">{</span>
    <span class="n">ios</span><span class="o">::</span><span class="n">sync_with_stdio</span><span class="p">(</span><span class="nb">false</span><span class="p">);</span>
    <span class="n">cin</span><span class="p">.</span><span class="n">tie</span><span class="p">(</span><span class="nb">nullptr</span><span class="p">);</span>
    <span class="n">cout</span><span class="p">.</span><span class="n">tie</span><span class="p">(</span><span class="nb">nullptr</span><span class="p">);</span>
    <span class="n">solve</span><span class="p">();</span>
<span class="p">}</span>
</code></pre></div></div>]]></content><author><name></name></author><category term="mathematics"/><category term="dynamic programming"/><category term="contest"/><summary type="html"><![CDATA[The 2021 China Collegiate Programming Contest (Harbin) 目录 - The 2021 China Collegiate Programming Contest (Harbin) - VP概况 - J - Local Minimum - B - Magical Sub…]]></summary></entry><entry><title type="html">极光工作室</title><link href="https://kdk550.github.io/blog/2023/cnblogs-17734570/" rel="alternate" type="text/html" title="极光工作室"/><published>2023-09-27T14:39:00+00:00</published><updated>2023-09-27T14:39:00+00:00</updated><id>https://kdk550.github.io/blog/2023/cnblogs-17734570</id><content type="html" xml:base="https://kdk550.github.io/blog/2023/cnblogs-17734570/"><![CDATA[<h1 id="极光算法二轮考核">极光算法二轮考核</h1> <p>目录</p> <ul> <li><a href="/blog/2023/cnblogs-17734570/#极光算法二轮考核">极光算法二轮考核</a> <ul> <li><a href="/blog/2023/cnblogs-17734570/#算法端概况">算法端概况</a> <ul> <li><a href="/blog/2023/cnblogs-17734570/#考核内容">考核内容</a></li> </ul> </li> <li><a href="/blog/2023/cnblogs-17734570/#c-with-stl-stringmapset">C with STL （string，map，set）</a></li> <li><a href="/blog/2023/cnblogs-17734570/#位运算">位运算</a></li> <li><a href="/blog/2023/cnblogs-17734570/#排序">排序</a></li> <li><a href="/blog/2023/cnblogs-17734570/#二轮考核练习">二轮考核练习</a></li> </ul> </li> </ul> <h2 id="算法端概况">算法端概况</h2> <ol> <li>获奖情况 ： 算法端曾荣获蓝桥杯国一3次、国二和国三多次，今年首次参加的比赛获得：睿抗国一，中国高校计算机大赛——团体程序设计天梯赛团队及个人国三，百度之星银奖等。</li> <li> <p>学习道路：</p> <ol> <li>通过第一学期的算法学习，顺利成为一名算法竞赛选手。</li> <li>学习目标 ：通过科学的方式学习算法，向 ACM-ICPC（是计算机类竞赛最有含金量的比赛）奖牌冲锋。</li> <li>在第二学期参加比赛，比赛中学习，学习中比赛，其中每年能够有多次外出公费比赛的机会（深圳，广州，北京，杭州，沈阳等）。</li> </ol> <p>参加的主要赛事（A类赛事或企业认可度高的赛事）：</p> </li> </ol> <table> <thead> <tr> <th style="text-align: center">比赛</th> <th style="text-align: center">日期</th> <th style="text-align: center">赛制</th> </tr> </thead> <tbody> <tr> <td style="text-align: center">蓝桥杯</td> <td style="text-align: center">4/6月</td> <td style="text-align: center">OI</td> </tr> <tr> <td style="text-align: center">天梯赛</td> <td style="text-align: center">4月</td> <td style="text-align: center">IOI</td> </tr> <tr> <td style="text-align: center">广东省大学生程序设计竞赛</td> <td style="text-align: center">5月</td> <td style="text-align: center">ACM</td> </tr> <tr> <td style="text-align: center">国际大学生程序设计邀请赛 &amp; 中国大学生程序设计邀请赛</td> <td style="text-align: center">5月</td> <td style="text-align: center">ACM</td> </tr> <tr> <td style="text-align: center">睿抗</td> <td style="text-align: center">7/8月</td> <td style="text-align: center">IOI</td> </tr> <tr> <td style="text-align: center">百度之星</td> <td style="text-align: center">8/9月</td> <td style="text-align: center">ACM</td> </tr> <tr> <td style="text-align: center">国际大学生程序设计区域赛 &amp; 中国大学生程序设计分站赛</td> <td style="text-align: center">10/11月</td> <td style="text-align: center">ACM</td> </tr> </tbody> </table> <p>### 考核内容</p> <ol> <li>机试，洛谷平台比赛IOI赛制 ：<a href="https://www.luogu.com.cn/">https://www.luogu.com.cn/</a></li> <li>笔试，描述冒泡排序，归并排序，桶排序，快速排序的思想及应用，不需要写出代码</li> </ol> <h2 id="c-with-stl-stringmapset">C with STL （string，map，set）</h2> <p><a href="https://oi-wiki.org/lang/">C++基础</a> 学习网址 ： <a href="https://oi-wiki.org/lang/">https://oi-wiki.org/lang/</a></p> <ol> <li>Hello, World!</li> <li>C，C++的输入输出</li> <li>变量</li> <li>运算</li> <li>流程控制语句</li> <li>高级数据类型</li> <li>函数</li> <li>string</li> <li>map，set(C++ 标准库 -&gt; STL容器 -&gt; 关联式容器)</li> </ol> <p>推荐的学习视频：<a href="https://www.icourse163.org/course/PKU-1001553023">程序设计与算法（一）C语言程序设计</a> ： <a href="https://www.icourse163.org/course/PKU-1001553023">https://www.icourse163.org/course/PKU-1001553023</a></p> <p>课后练习做他这个和我们都是一样的，但这个课程配套OJ太老了，还是推荐下面练习的题单</p> <p><img src="/assets/img/blog/cnblogs/e3e9413ef25af0ec7ab8b7c8f378d6e326524e84f5041c441c0794dcdb8b4ad7.png" alt="image"/></p> <p>红色圈起来的部分是和考核强相关的，没圈起来并不意味着不重要</p> <p><img src="/assets/img/blog/cnblogs/2cdae67364de313ea95db1f4ca0d011d079b1912e7b7529fbe8b3ac54807ed86.png" alt="image"/></p> <h2 id="位运算">位运算</h2> <p><a href="https://oi-wiki.org/math/bit/">位运算</a> 学习网址 ： <a href="https://oi-wiki.org/math/bit/">https://oi-wiki.org/math/bit/</a></p> <ol> <li>与、或、异或</li> <li>取反</li> <li>左移和右移</li> <li>复合赋值位运算符</li> <li>关于优先级</li> <li>位运算的应用 <ol> <li>有关 2 的幂的应用</li> <li>判断两非零数符号是否相同</li> <li>换两个数</li> <li>操作一个数的二进制位</li> </ol> </li> <li>*内建函数（选学）</li> </ol> <h2 id="排序">排序</h2> <p><a href="https://oi-wiki.org/basic/sort-intro/">排序</a> 学习网址 ：<a href="https://oi-wiki.org/basic/sort-intro/">https://oi-wiki.org/basic/sort-intro/</a></p> <ol> <li>冒泡排序</li> <li>归并排序</li> <li>桶排序</li> <li>快速排序</li> <li>排序相关 STL</li> <li>*排序应用</li> </ol> <p>Q ：排序的循环，递归都好抽象？我该如何快速掌握排序的算法？</p> <p>A： 学习算法的快速方法就是将程序每次的执行过程打印出来，看出其交换元素或递归区间的改变，详细见代码块。</p> <p>以冒泡排序为例，在学习其算法思想后，将每一阶段交换的位置及代码打印出来，或对着代码用纸笔模拟排序过程有助于掌握算法。</p> <p>Q ：好多排序呀！这么多排序算法竞赛真的用的上吗？要不要学那么多，哪个排序最快，是不是会一个就够了？</p> <p>A ： 各种排序都有其独特的应用场景，冒泡排序和归并排序经常处理有关逆序对的问题；归并排序和快速排序用到了分治，递归的思想，学习这个排序是为了初探分治，递归，让自己能写出具有分治和递归的算法；桶排序元素的值映射到数组下标上，在特定应用背景下和后面学习权值线段树中会用到；平时更多用到的是 <code class="language-plaintext highlighter-rouge">sort(a + 1, a + 1 + n);</code> ，这个功能很强大，对于string, pair,array,和重载了远算符的结构体也能进行排序，所以会在二轮考核的机试中考核 <code class="language-plaintext highlighter-rouge">sort();</code> ，笔试中考察能否正确描述冒泡排序，归并排序，桶排序，快速排序的思想。</p> <div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">#include</span> <span class="cpf">&lt;bits/stdc++.h&gt;</span><span class="cp">
</span>
<span class="k">using</span> <span class="k">namespace</span> <span class="n">std</span><span class="p">;</span>

<span class="kt">int</span> <span class="n">n</span> <span class="o">=</span> <span class="mi">5</span><span class="p">;</span>
<span class="kt">int</span> <span class="n">a</span><span class="p">[</span><span class="mi">10</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="mi">0</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">};</span>
<span class="kt">int</span> <span class="nf">main</span><span class="p">()</span>
<span class="p">{</span>
    <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="s">"init array : "</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="s">" "</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="s">" "</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="s">" "</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="s">" "</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
    <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
    <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
    <span class="p">{</span>
        <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;=</span> <span class="n">n</span> <span class="o">-</span> <span class="n">i</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span>
            <span class="k">if</span><span class="p">(</span><span class="n">a</span><span class="p">[</span><span class="n">j</span><span class="p">]</span> <span class="o">&gt;</span> <span class="n">a</span><span class="p">[</span><span class="n">j</span> <span class="o">+</span> <span class="mi">1</span><span class="p">])</span>
            <span class="p">{</span>
                <span class="n">swap</span><span class="p">(</span><span class="n">a</span><span class="p">[</span><span class="n">j</span><span class="p">],</span> <span class="n">a</span><span class="p">[</span><span class="n">j</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]);</span>
                <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="s">"swap : "</span><span class="p">;</span>
                <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="s">"i : "</span><span class="o">&lt;&lt;</span><span class="n">i</span><span class="o">&lt;&lt;</span><span class="s">"  j  : "</span><span class="o">&lt;&lt;</span><span class="n">j</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
                <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="s">" "</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="s">" "</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="s">" "</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="s">" "</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
                <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
            <span class="p">}</span>
    <span class="p">}</span>
    <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="s">"end sort : "</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="s">" "</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="s">" "</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="s">" "</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="s">" "</span><span class="o">&lt;&lt;</span><span class="n">a</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">&lt;&lt;</span><span class="sc">'\n'</span><span class="p">;</span>
    <span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div> <p><img src="/assets/img/blog/cnblogs/fbb3271bdf15708b3602c4420fa80d1ac4c72f1d0dfec586d44d08ce38107a08.png" alt="image"/></p> <h2 id="二轮考核练习">二轮考核练习</h2> <p><a href="https://www.luogu.com.cn/training/380528">题单</a> ：<a href="https://www.luogu.com.cn/training/380528">https://www.luogu.com.cn/training/380528</a></p> <p><a href="https://www.luogu.com.cn/training/391817#problems">考核类似</a> : <a href="https://www.luogu.com.cn/training/391817#problems">https://www.luogu.com.cn/training/391817#problems</a></p> <p><a href="https://www.luogu.com.cn/training/385785#problems">模拟考核</a> : <a href="https://www.luogu.com.cn/training/385785#problems">https://www.luogu.com.cn/training/385785#problems</a></p> <p>注意！这个题单是动态更新的，对于题号CF或者AT开头的题目，需要你去题目来源网站注册账号，提交submit</p> <p>对于不会的题目，可以再想想，也可以看题解或者在群里面问。</p> <p><img src="/assets/img/blog/cnblogs/8b6c23d16ced04553770b22715600656219485f71d6d5d021b9627bdfdc2e570.png" alt="image"/></p> <p><img src="/assets/img/blog/cnblogs/a4cb6e5604b9873771c2e36d0dda5e3feb98566adce1ac9a7692fba41eee0b73.png" alt="image"/></p>]]></content><author><name></name></author><category term="posts"/><summary type="html"><![CDATA[极光算法二轮考核 目录 - 极光算法二轮考核 - 算法端概况 - 考核内容 - C with STL （string，map，set） - 位运算 - 排序 - 二轮考核练习 算法端概况 1. 获奖情况 ： 算法端曾荣获蓝桥杯国一3次、国二和国三多次，今年首次参加的比赛获得：睿抗国一，中国高校计算机大赛——团体程序设…]]></summary></entry></feed>