题意

给你一个形如\(1,2,\cdots,R,1,2,\cdots,R,1\cdots\)的序列,共重复\(C\)次。你每次可以选择一个区间\([L,R]\)将其平移到序列首部,最终使得序列具有\([1,1,\cdots,1,2,2,\cdots,2,\cdots,R,R,\cdots,R]\)的形式。问最少需要多少次,并输出具体步骤。

解题思路

比赛的时候只来得及写前两道,这道题是赛后看dls录播后补的。啥都不说了,dlstxdy!

对于相邻且相同的元素,我们就把他合并成\(1\)个元素,要求的序列形式就变为\([1,2,\cdots,R]\)。

对于一个序列,把他的一段区间平移到序列的首部,很容易可以证出最多删掉两个元素。

比如对于\([[1,2],[3,1],2,3,1,2,3]\),我们可以把第一个\([3,1]\)移到序列首部,得到\([3,1,1,2,2,3,1,2,3]\),合并相邻且相同的元素后是\([[3,1],[2,3],1,2,3]\),然后再把第一个\([2,3]\)移动到序列首部,得到\([2,3,3,1,1,2,3]\),合并后是\([[2,3],[1,2],3]\),然后再把第一个\([1,2]\)移动到序列首部,得到\([1,2,3]\)。

如果我们每次都删掉两个元素,那么使用的次数肯定是最少的。但是还有一种特殊情况,比如\(R=5,C=2\)的时候按上述方法缩到最后会得到\([5,1,2,3,4,5]\)的序列。这种情况下就把\([1,2,3,4,5]\)移动到序列首部,然后就可以得到\([1,2,3,4,5]\),这样子也肯定是最优的。

然后因为\(R,C\)的取值范围比较小,直接模拟就完事了。

Google Code Jam 2020 Round1B Join the Ranks的更多相关文章

  1. Google Code Jam 2020 Round1B Expogo

    题意 你初始位于\((0,0)\),然后你想要到\((x,y)\)去,第\(i\)步的步长是\(2^{i-1}\),要求用最少的步数走到\((x,y)\). 解题思路 首先可以推出,走\(i\)步可以 ...

  2. Google Code Jam 2020 Round1B Blindfolded Bullseye

    总结 这一题是道交互题,平时写的不多,没啥调试经验,GYM上遇到了少说交个十几发.一开始很快的想出了恰烂分的方法,但是没有着急写,果然很快就又把Test Set3的方法想到了,但是想到归想到,调了快一 ...

  3. [Google Code Jam (Qualification Round 2014) ] B. Cookie Clicker Alpha

    Problem B. Cookie Clicker Alpha   Introduction Cookie Clicker is a Javascript game by Orteil, where ...

  4. [Google Code Jam (Qualification Round 2014) ] A. Magic Trick

    Problem A. Magic Trick Small input6 points You have solved this input set.   Note: To advance to the ...

  5. [C++]Store Credit——Google Code Jam Qualification Round Africa 2010

    Google Code Jam Qualification Round Africa 2010 的第一题,很简单. Problem You receive a credit C at a local ...

  6. [C++]Saving the Universe——Google Code Jam Qualification Round 2008

    Google Code Jam 2008 资格赛的第一题:Saving the Universe. 问题描述如下: Problem The urban legend goes that if you ...

  7. Google Code Jam Africa 2010 Qualification Round Problem B. Reverse Words

    Google Code Jam Africa 2010 Qualification Round Problem B. Reverse Words https://code.google.com/cod ...

  8. Google Code Jam Africa 2010 Qualification Round Problem A. Store Credit

    Google Code Jam Qualification Round Africa 2010 Problem A. Store Credit https://code.google.com/code ...

  9. Google Code Jam 2010 Round 1C Problem A. Rope Intranet

    Google Code Jam 2010 Round 1C Problem A. Rope Intranet https://code.google.com/codejam/contest/61910 ...

随机推荐

  1. ios wkwebview didReceiveAuthenticationChallenge crash解决

    //需要响应身份验证时调用 同样在block中需要传入用户身份凭证 //现在就是不进行https验证了 然后就闪退不了了 - (void)webView:(WKWebView *)webView di ...

  2. 仅需1秒!搞定100万行数据:超强Python数据分析利器

    前言 使用Python进行大数据分析变得越来越流行.这一切都要从NumPy开始,它也是今天我们在推文介绍工具背后支持的模块之一. 2 Vaex Vaex是 一种更快.更安全.总体上更方便的方法,可以使 ...

  3. java_Collection、Map、泛型的使用

    Collection集合 集合按照其存储结构可以分为两大类,分别是 单列集合 java.util.Collection 双列集合 java.util.Map Collection:单列集合类的根接口, ...

  4. Who Am I? Personality Detection based on Deep Learning for Texts 阅读笔记

    文章目录 源代码github地址 摘要 2CLSTM 过程 1. 词嵌入 2. 2LSTM处理 3. CNN学习LSGCNN学习LSG 4. Softmax分类 源代码github地址 https:/ ...

  5. Broken 2020: 1 靶机

    这个靶机的作者脑洞太大了 扫描下端口,就普通的ssh http服务 扫描下目录,发现了一个2个cms目录 进来cms发现是个安装界面,但是后面安装失败,无意返回cms发现出现了一个flag 进入/cm ...

  6. 漏洞重温之XSS(中)

    漏洞重温之XSS(中) XSS挑战之旅 level8-level13 level8 第八关开局,发现button从搜索变成了友情链接,发现该页面情况跟前面不同,先右键查看代码,再进行尝试. 上测试代码 ...

  7. python设计模式之责任链模式

    python设计模式之责任链模式 开发一个应用时,多数时候我们都能预先知道哪个方法能处理某个特定请求.然而,情况并非总是如此.例如,想想任意一种广播计算机网络,例如最早的以太网实现.在广播计算机网络中 ...

  8. 笔试算法稳了,GitHub 50k Star《labuladong的算法小抄》

    秋招算法有救了!!! 前不久在 GitHub 出现了一个手把手带你刷 LeetCode 的项目:fucking-algorithm. 该项目此前在 GitHub 开源后,连续多次霸榜 GitHub T ...

  9. GUAVA-ListenableFuture实现回调

    随着软件开发的不断进步,在实际的开发应用中,可能一次请求需要查询若干次数据库或者调用若干次第三方,按照传统的串行执行的话,会大大增加响应时间,无法满足业务需求,更无法满足用户迫切需要响应迅速的愿望.对 ...

  10. python去除 数据的 重复行

    原文链接:https://www.cnblogs.com/loren880898/p/11303672.html