CF1324C Frog Jumps 题解】的更多相关文章

原题链接 简要题意: 现在河面上有 \(n+2\) 块石头,编号 \(0\) 到 \(n+1\),\(1\)~\(n\) 块石头每块上有一个方向,如果是 \(L\),那么青蛙到这块石头上之后只能往左跳,如果是 \(R\) 只能往右,当然,第 \(0\) 块石头的方向是 \(R\). 现在青蛙要从 \(0\) 跳到 \(n+1\),请问他应该怎么跳才能让他跳跃过程中跳跃距离最长的最小呢?输出这个距离. 显然,我们考虑贪心. C题一点也不难啊 你想,如果你既可以跳到 \(L\) 点,又可以跳到 \(…
蒟蒻语 写了 \(100\) 行的 线段树上ST表维护二分维护单调栈维护dp, 结果最后发现只要俩单调栈就好了 = = 蒟蒻解 首先 \(dp_i\) 表示从 \(1\) 楼到 \(i\) 楼要跳几次. 题目中有 3 个条件, 对三个条件分别设 \(dp\) 方程. 第一个很显然, 就是 : \(dp_i = dp_{i - 1} + 1\) 第二个怎么弄呢? 考虑看有哪些点是可能来更新这个点的. 假设 \(x\) 位置可以来更新 \(i\) 位置.那么 \(h_x > max(h_x, h_{…
题意: 有一个每个单元标明移动方向的长为n的序列,每次移动不能超过距离k,问能够从0移动到n+1的k的最小值. 思路: k=最长连续L序列长度+1. #include <bits/stdc++.h> using namespace std; void solve(){ string s;cin>>s; int mx=1,n=s.size(); for(int i=0;i<n;i++){ int len=1; while(i<n&&s[i]=='L') +…
Content 在一个数轴上有一个动点,初始时在 \(0\) 这个位置上,接下来有若干次操作,对于第 \(i\) 次操作: 如果 \(i\) 是奇数,那么动点往右移 \(a\) 个单位. 如果 \(i\) 是偶数,那么动点往左移 \(b\) 个单位. 现在有 \(t\) 次询问,每次给定 \(a,b,k\) 三个数(其中 \(a,b\) 含义如上所述),求经过 \(k\) 次操作后动点所在的位置. 数据范围:\(1\leqslant t\leqslant 10^3,1\leqslant a,b,…
除夕夜之有生之年CF第一场 下午从奶奶家回到姥姥家,一看还有些时间,先吃点水果陪姥姥姥爷聊了会儿,再一看表,5:20....woc已经开场20分钟了...于是抓紧时间乱搞.. **A. Guest From the Past** time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Kolya Gerasimov loves kefi…
1 背景 Groovy脚本基于Java且拓展了Java,所以从某种程度来说掌握Java是学习Groovy的前提,故本文适用于不熟悉Groovy却想快速得到Groovy核心基础干货的Java开发者(注意是Java),因为我的目的不是深入学习Groovy语言,所以本文基本都是靠代码来解释,这样最直观,同时也够干货基础入门Groovy的特点和结构. 开始介绍前先给一个大法,<官方权威指南>英文好的可以直接略过本文后续内容,我需要的只是Groovy皮毛:再次向Groovy的标志致敬,左手一个Java,…
1324A - Yet Another Tetris Problem(思维) 题意 给一个数组,每一个数组中的元素大小表示在竖直方向的方块数量,元素相邻怎竖直方向的方块也相邻,类似于俄罗斯方块当底层被堆满的时候,那么那一层可以被消去,然后我们可以在任意一个元素(数列)上 + 2 两个小方块,可以放任意多次数,问最终能不能通过这些操作能不能把所有的小方块消去. 思路 思路:我们可以先把底层的能消除的消除,如果消除之后 所给的数组元素中还有奇数,那么无论怎么 操作 都不能 消除完 代码 #inclu…
IO操作 Groovy为I/O操作提供了许多帮助方法,虽然你可以在Groovy中用标准Java代码来实现I/O操作,不过Groovy提供了大量的方便的方式来操作File.Stream.Reader等等. 读取文件 读取文本文件并打印每一行文本 new File(baseDir, 'haiku.txt').eachLine{ line -> println line } eachLine方法是Groovy为File类自动添加的方法,同时提供多个变体方法,比如你想知道读取的行数,你可以使用它的变体方…
题目链接 题目大意 一只青蛙在长度为N的字符串上跳跃,"R"可以跳上去,"P"不可以跳上去. 字符串是环形的,N-1和0相连. 青蛙的跳跃距离K的取值范围是[1, N-1],选定K之后不可改变. 要求青蛙最后能跳回起点(起点可以是0-N-1的任意一个位置),问K的取值有多少种选择. \(3≤N≤{10}^5\). 题目思路 主要是要发现每一次走的步数一定是gcd(i,n) 然后发现gcd只有log(n)(可能多一些,但是没多太大) 然后O(n) check 代码 #…
Content 有一只小青蛙想游历 \(n\) 块土堆,它现在在 \(1\) 号土堆上,每次可以跳跃任意距离到达另外的一个土堆.它想让每次跳跃的距离都不相等,试找到这样的一个方案. 数据范围:\(1\leqslant n\leqslant 10^4\). Solution 我们可以尝试左右横跳的方式,从 \(1\) 跳到 \(n\),再从 \(n\) 跳到 \(2\),再从 \(2\) 跳到 \(n-1\)--以此类推,直到所有的土堆都遍历过为止. Code int n; int main()…