
思维
文章平均质量分 55
_九磅十五便士_
这个作者很懒,什么都没留下…
展开
-
VA1626 括号序列 Brackets sequence(区间dp)
题目传送门这道题有两个难点如何找到当前区间最小的添加值现在我们使用两个指针i,ji,ji,j,用这个两个指针dp[i][j]dp[i][j]dp[i][j]来记录一下,如果s[i],s[j]s[i],s[j]s[i],s[j]是合法的一对括号序列,那么状态转移方程就是:dp[i][j]=min(dp[i][j],dp[i+1][j−1])dp[i][j]=min(dp[i][j],dp[i+1][j-1])dp[i][j]=min(dp[i][j],dp[i+1][j−1])然而对于所有情况来说,原创 2021-10-09 17:31:59 · 170 阅读 · 0 评论 -
CF1567C Carrying Conundrum(组合计数+思维)
题目传送门思路这个题和我们正常的竖式运算的区别在于:正常的竖式运算是向下一位进位,而本题的新定义运算是隔位进位,因此我们就可以考虑将这些数按照奇数和偶数位进行拆位:例如:150051500515005可以拆位成为:105105105(奇数位)和505050(偶数位)这样的情况下奇数位一共有105+1种可能性(分别是:0 105、1 104、2 103…104 1、105 0)同理还有偶数位一共有51种可能性,因此我们可以先计算总体个数:106*51但是现在我们有一个问题,就是我们获得原创 2021-09-07 20:21:44 · 220 阅读 · 0 评论 -
CF1567D Expression Evaluation Error(数学+思维)
题目传送门思路这道题的思路其实就是,比方说我们现在要拆10000为3位,那么我们肯定拆成1000 1000 8000要比9998 1 1 好,(位数越低,其代表的值越小)前者是10∗11310*11^310∗113后者是9∗113+9∗112+9∗111+10∗1109*11^3 +9*11^2+9*11^1+10*11^09∗113+9∗112+9∗111+10∗110因为是10进制转换为11进制,因此进位越多其损耗越大,因此我们需要让我们拆分的位数加起来进位越少越好,所以,每一位拆成以1打头的原创 2021-09-07 20:12:44 · 101 阅读 · 0 评论 -
CF1562D2 Two Hundred Twenty One (hard version)(思维)
传送门(easy version)传送门(hard version)题意思路(easy version)对于easy版本来说我们只需要明白一点:我们只需要求出最少的删除数字的个数,而且还有一点值得注意的是:删除某个数字以后,后面的位置对求和以后的贡献正好是倒转的,(正变负,负变正),因此我们先按照答案要求的来模拟,最后得到的数据,如果是0,那么我们的答案就是0(不用删除就可以完成结果),但是如果最后的答案不是0,如果结果是奇数,那么我们只需要删除一个,也就是 A-A结构,A和后面的A对答案数值贡原创 2021-09-04 22:15:37 · 148 阅读 · 2 评论 -
CF1556D Take a Guess(位运算)
题目传送门题意您可以发起不超过2∗n2*n2∗n次提问,提问的内容是对于两个不同下标的两个数ai,aja_i,a_jai,aj,可以提问他们的aia_iai&aja_jaj或者aia_iai|aja_jaj,求出整个数组,并对其排序,求出第kkk个数据。思路关于位运算,这里有个结论:(牛客多校D8-D)ai+aj=aia_i+a_j=a_iai+aj=ai & aj+aia_j+a_iaj+ai | aja_jaj那么我们就可以询问aia_iai和任何位原创 2021-08-30 08:30:51 · 177 阅读 · 0 评论 -
全排列模型
做CF的时候会发现一些题有相似的手法解决题目传送门-CF1555D Say No to Palindromes题意这道题其实就是不希望这次询问的这个区间有长度大于等于2的回文子串(ss这样的也不行),也就是“严格不回文”,请问这个区间最少的改变次数。当然你不能随便改这个字符,你只能在abc这三个中选一个改。这题实际上也是暴力,但是一看m,n数据范围都不小,我没有办法去完成这件事情,但是观察abc这三个选择倒不算很多,字符串ABCABC(ABC分别代表了不同的单元)就是满足了严格不回文的要求,那么我就原创 2021-08-19 18:40:31 · 104 阅读 · 0 评论 -
CF1509C The Sports Festival(dp+思维)
题目传送门题意给你一个序列,你可以任意交换这个序列的位置,现在让你求出前n个子序列的最大值减去最小值之和的最小值。思路这道题要求前n个子序列的最大值减去最小值最小,那么贪心考虑我们肯定尽量让最小值或者最大值在最后,如果不然,那么我们最大值-最小值(差值最大)的情况将会有两种,因此,将进行区间dp。#include<iostream>#include<algorithm>#define int unsigned long longusing namespace std;原创 2021-08-09 14:46:11 · 217 阅读 · 0 评论 -
CF1451D Integers Have Friends(博弈问题)
题目传送门题意Alice和Bob又来做游戏啦!这次他们做的是,给你一个直径为d的圆,现在有一枚棋子位于(0,0)原点,每一次操作可以把棋子向右或者上方移动一个单位长度,Alice先手,Bob后手,棋子只能位于圆中,不能移动则失败,请输出赢者。思路这道题和在桌面上放硬币的思路非常相似:先手先占据桌子的中心位置,那么后手无论怎么放置,我们的先手都可以按着这个中心对称的位置跟着放就可以了,因此先手必赢。那么按着这个思想。我们现在设xxx是2∗(x∗k)2<=d22*(x*k)^2<=d原创 2021-08-08 23:08:38 · 110 阅读 · 0 评论 -
CF1493D GCD of an Array (分解定理+思维)
题目传送门这道题有一个非常牛逼的数据结构就是multisetmultisetmultiset题意先给你一个序列,然后给你几组询问,询问的第一个数是在第x个位置上,第二个数p代表,在第x个位置上乘p。请找到这个序列的gcd,并输出。思路这道题肯定是让你找到所有数的公共的因子,那么就可以以因子为下标,存到multisetmultisetmultiset里面,同时开一个数组标记一下,这个数作为了几个数的因子。如果能找到这个因子,并这个数已经作为全部的因子,答案乘这个数。#include<iost原创 2021-08-06 18:17:27 · 119 阅读 · 0 评论 -
CF1549D Integers Have Friends(st表+二分/双指针)
题目传送门题意这道题让你找一个最长的区间,这个区间里面的每一个数,都要对于m>=2m>=2m>=2同余思路这道题用到一个同余的性质如果 x≡y(modp)x≡y(mod p)x≡y(modp)那么(x−y)(x-y)(x−y)%p=0p=0p=0那么对于一整个区间来说,我们只要满足这个区间的差分数组不互质就可以。因此问题就转换成为了,维护一个差分数组,找到最长的不互质的子序列。因此我们就要用到二分+st表,如果想优化你也可以双指针(100ms的优化)同时这道题用scan原创 2021-08-02 20:45:27 · 547 阅读 · 0 评论 -
CF689D Friends and Subsequences(ST表+二分)
题目传送门题意给定序列 aaa 和序列 bbb,长度均为 nnn。问有多少组 (l,r)(l,r)(l,r),满足 1≤l≤r≤n1\le l\le r\le n1≤l≤r≤n 且maxi=lrai=mini=lrbi\max_{i=l}^r a_i=\min_{i=l}^r b_ii=lmaxrai=i=lminrbi1≤n≤2×1051\le n\le 2\times 10^51≤n≤2×105,∣ai∣,∣bi∣≤109|a_i|,|b_i|\le 10^9∣ai∣,∣bi∣原创 2021-07-30 15:31:17 · 417 阅读 · 0 评论 -
CF1554C Mikasa(思维+贪心)
题目传送门题意现在已知n,mn,mn,m,请求mmm⊕{0,1,....,m0,1,....,m0,1,....,m}的MEXMEXMEX(最小的没有出现过的自然数)思路本题转换为n⊕x=yn⊕x=yn⊕x=y现在已知 0<=x<=m0<=x<=m0<=x<=m,可以将式子转换为n⊕y=xn⊕y=xn⊕y=x现在已知,yyy没有在我们的运算结果这个集合中出现,那么x>mx>mx>m因此n⊕y>=m+1n⊕y>=m+1n⊕y&g原创 2021-07-30 12:41:21 · 284 阅读 · 3 评论 -
2021牛客多校4-Average(二分答案)
题目传送门思路这道题最后推出来矩阵的平均值,其实就是横向平均值的最大值+列项平均值的最大值那么我们就可以用二分答案(本问题的答案具有单调性)对于每一个数组中的每一个元素枚举a[i]-mid的前缀和,来找这个序列中是否存在大于我们规定数组长度的前缀和大于0的,如果存在那么我们就继续往大二分,反之,就说明我们的mid取大了就往小里来二分。#include<iostream>#include<cstring>using namespace std;const double原创 2021-07-27 10:26:10 · 357 阅读 · 0 评论 -
CF1552D Array Differentiation(思维)
题目传送门思路这个题啊,一看n=10,就知道肯定不用考虑时间复杂度了,应该是一个指数级别的时间复杂度。其实就是我把这个考虑成一个数轴,我可以把aia_iai当成一个两个点之间的距离(负数化成正数,因为距离都是正数)。但是我需要明白的一点就是两个点之间的间隔一定是点数+1,因此我们需要找到这个数轴上的点可以成至少一个环。因此,选择任意一个距离,他们之和如果能在我们新开的一个map上找到重合的部分,那么就说明我们可以找到这个数值,反之就说明我们不能找到这个数值。因此可以用一个爆搜。#pragma原创 2021-07-26 17:18:07 · 289 阅读 · 4 评论 -
CF1221D Make The Fence Great Again(DP)
题目传送门这道题其实也分析出来了,就是dp[n][3]的一个空间,最多修2个单位长度,最少不修,状态转移其实不难,但是这道题做成了dp大讨论(哭)。#include<iostream>#include<cstring>using namespace std;typedef long long ll;ll dp[355555][3];ll a[2102100];ll b[2102100];int main(){ int T; cin>>T; whil原创 2021-07-16 16:20:53 · 122 阅读 · 0 评论 -
CF1550C Manhattan Subarrays(思维)
题目传送门这道题其实是一道思维题,其实题目还是不很难。通过画画图,因为这个序列是有序的下标递增序列,因此下标一定满足|p-r|=|p-q|+|q-r|,因此只需要纵坐标不满足这个性质就行,因此只要这三个纵坐标不满足增函数或者减函数就行。#include<iostream>using namespace std;int a[2102100];int judge(int x,int y,int z){ return (x<=y&&y<=z)||(x>原创 2021-07-16 10:45:08 · 223 阅读 · 0 评论 -
CF1542C Strange Function(数论+思维)
题目传送门非常赞的一道数论题~题目大意现在让f(i)为i的最小的非因子。也就是不能整除i的最小正整数。求∑f(i)的值。思路这道题首先想到从1~n去试一试,能不能整除,然后想如何去优化。我们想到了lcmlcm(a1,a2,a3,a4,...an)lcm(a_1,a_2,a_3,a_4,...a_n)lcm(a1,a2,a3,a4,...an)一定能被a1,a2,a3,a4,...ana_1,a_2,a_3,a_4,...a_na1,a2,a3,a4,...an分别整原创 2021-07-05 12:41:30 · 512 阅读 · 16 评论 -
CF1539D PriceFixed(双指针+贪心)
题目传送门大意淦,这题想了半天dp,原创 2021-06-30 17:10:23 · 241 阅读 · 1 评论 -
POJ 2528 Mayor‘s posters(线段树+思维)
题目传送门题目大意思路原创 2021-06-10 19:05:03 · 87 阅读 · 0 评论 -
CF1535C Unstable String(dp)
题目传送门可以说是比较简单的一道dp问题了但是还是没做出来就很菜了。dp[i][j]来存第i个位置对于答案的贡献,状态转移是dp[i][j]=dp[i-1][j1]+1,因为dp[i-1][j1]存的是i-1向前延申最多位所能有的最多的子串。因此加上它本身又来一位的值。因为答案问的是最大值,所以到后面求一个最大值即可。#include<iostream>#include<cstring>using namespace std;int dp[210200][2];cha原创 2021-06-06 23:20:11 · 242 阅读 · 2 评论 -
CF1398C Good Subarrays(思维)
题目传送门思路现在我们可以写一个公式(sum代表前缀和数组)sum[i]−sum[j]=i−jsum[i]-sum[j]=i-jsum[i]−sum[j]=i−j移项可得sum[i]−i=sum[j]−jsum[i]-i=sum[j]-jsum[i]−i=sum[j]−j那么代表这个存在一个这种情况(这个代表一对)那么我们就可以愉快的开始实现我们的代码了#include<iostream>#include<map>using namespace std;type原创 2021-05-31 23:42:45 · 211 阅读 · 0 评论 -
CF1528B Kavi on Pairing Duty(dp)
题目传送门思路这道题真的是一道不太好想的dp…真的太菜了首先状态转移分成两种情况区间长度相等的情况,如这种情况就是看看你现在的区间有几个约数,那么代表有几种这样的situation记为v[i]包含情况,如dp[i]+=dp[i-1]dp[i]+=dp[i-1]这样的就是dp[i]+=dp[i-1]+dp[i-2]当然还有这样的这样的就是,两个区间交替,外层区间谁也没有包谁那么就是dp[i]+=dp[i-2]那么状态转移方程就是dp[i]=dp[i−1]原创 2021-05-31 23:17:34 · 279 阅读 · 1 评论 -
CF1499C Minimum Grid Path(思维+贪心)
题目传送门思路话说这道题我分析出来了一个虚假的贪心:我认为我现在让当前的步数代价走完全程(之前的肯定都只走一步),比较每一个的最小值,如果这个不用两个维度走的话大概率是对的,但是出现了问题在于这是两个维度,每一个维度虽然数值上不相关,但是步数关系上是相关的(比方说,我现在右向我只选了3组数据,但是上向就不能选第6组了(不能跳着选)),那么我们只需要让最小的步数尽量走的更多,每一次都枚举一遍,最后比较一下选最小的就可以了。#include<iostream>#include<map原创 2021-05-31 19:36:47 · 178 阅读 · 0 评论 -
CF1498C Planar Reflections(思维+dp)
题目传送门思路设定dp[i][j]dp[i][j]dp[i][j]代表的是现在有一个以jjj为能级的原子,前面有iii个能级墙,经过这个过程以后能产生的原子。首先dpdpdp问题就应该分析状态,任意一个状态来看,经过一个能级墙所能产生的原子是:1状态上一个和初始状态相同的方向的所经过这里产生的dp[i−1][j]dp[i-1][j]dp[i−1][j]还有一种就是原子分裂产生的新的更弱能级,计算方式就是这个更弱能级产生的其实就是更小的能级j-1,而且这个原子面对的方向和我们初始的方向其实是相反的原创 2021-05-31 19:30:28 · 153 阅读 · 1 评论 -
CF1238C Standard Free2play(dp)
题目传送门题意这道题的题意我感觉还是挺不好理解的意思就是说现在给你一个悬崖,每个样例中第二行输入的数代表这个悬崖突出的部分,你刚好站着这个悬崖的最高层,现在你可以进行如下操作:将本突起位置隐藏,(这样你就掉下去了)但是做出的代价就是让这个位置的紧挨着的下一个位置的状态发生改变(如果你改变了x位置的突出情况,如果x-1位置是突出的,那么它将变成隐藏的,反之就会变成突出的)但是现在有一个问题就是你是绝对不能允许你往下掉两个单位,因为你是bym同学,那样会影响到你的发型,(这样就无法吸引别人追求你),当然你原创 2021-05-30 21:28:29 · 154 阅读 · 0 评论 -
CF1516C Baby Ehab Partitions Again(思维+dp)
题目传送门思路现在分析一下,对所有元素先求一遍和,其结果是奇数,那么代表不用修改任何值(因为奇数你本身就无法做到平均分配),那么这个数组就一定是一个好数组。如果是偶数的话,就需要用到dp,如果dp[sum/2]是真值,那么对整个数组进行遍历,每一次遍历的过程中就是寻找奇数,如果找到了奇数,就代表这个子状态没有办法平均分配这些数字。那么其去掉这个数,对于数组中的任何数据乘上这个相应的倍数都无法做到平均分配,因此输出这个数组的下标即可。#include<iostream>#include&原创 2021-05-30 19:05:09 · 315 阅读 · 0 评论 -
CF1455D Sequence and Swaps(思维+暴力模拟)
题目传送门思路其实这道题就是一个非常常见的模拟题 滑稽(因为我有一个x来替换数组里任意一个元素,因此,数组里面一定会有一个我们要排除掉的元素。那么因为这个数据很小,因此我们就模拟一下哪个元素我们应该抛弃掉。然后用x来替换这个数,然后开心的sort一下,最后和原数组进行对比,模拟一下这个过程,最后判断一下数组是不是和我们排好序的顺序数组相等。#include<iostream>#include<algorithm>using namespace std;int a[2原创 2021-05-30 12:51:48 · 121 阅读 · 1 评论 -
CF1151B Dima and a Bad XOR(思维)
题目传送门题意传送门思路这个题其实刚开始用的爆搜,结果真就爆了,其实很简单,先让这个矩阵的第一列相互异或,如果最后结果不为0那么就直接输出就可以了。如果是0那么就从最后一排开始找,如果结果不为0,那么就直接输出。如果整个矩阵都遍历了一遍还是没找出来,那么就只有一种可能性,就是这个矩阵的每一排的数字都是相等的,那么我们也没有任何找的必要性了,(因为无论怎么找都是0).那么就按照相应的那么输出就可以了#include<iostream>using namespace std;i原创 2021-05-30 11:27:41 · 155 阅读 · 0 评论 -
CF1282B2 K for the Price of One (Hard Version)(dp)
题目传送门题意有n个商品,每个商品价值为 ai 现在有一个活动优惠,买一个物品可以选择k - 1个价值小于等于该它的物品免费获得(要么一个也不选,要么一定要选k - 1个),求k个硬币一共能买多少物品。在该题中k <= n。思路这道题我感觉是一道很巧妙的题首先要明确的一点就是,我要买更多的东西,我现在的钱可以买贵的也可以买便宜的东西,那么我现在优先买什么?(不考虑免费拿的问题)一定先买便宜的,因为,我买了便宜的东西,我可能还有闲钱去买其他便宜的东西,但是我如果先买贵的东西,那么就不一定有闲原创 2021-05-30 11:20:23 · 93 阅读 · 0 评论 -
CF1468F Full Turn(思维)
题目传送门题意思路这个题和今年蓝桥杯的那个填空题很相似(枚举向量,斜率),其实就是构造一个向量,起点是这个人的位置,终点是这个人的朝向,构造出来这个向量,如果找到向量相对的情况那就加起来。为什么要两条向量平行才行?其实就是因为,可以让两个人的起点坐标连线,必须要同时到达这个连线位置才会四目相视,因为这两个人旋转的角速度一定相等,因此,必须平行(根据平行四边形的性质,两个夹角相等)那么因为(有点类似于计算几何的题目)因此最好不要使用double 用pair存一下向量的朝向即可(最好用int)A原创 2021-05-30 11:12:25 · 88 阅读 · 0 评论 -
CF888D Almost Identity Permutations(dp)
题目传送门题意给出n和k计算满足至少有(n-k)个位置的值a[i]==i的1~n的全排列的个数。参考大佬博客思路这道题可以用dp去完成dp[i][j]dp[i][j]dp[i][j]表示序列是以i为长度的,只有j个a[k]=ka[k]=ka[k]=k的排列数那么我们想一下状态转移:dp[i][j]dp[i][j]dp[i][j]可以由dp[i−1][j],dp[i−1][j−1],dp[i−1][j+1]dp[i-1][j],dp[i-1][j-1],dp[i-1][j+1]dp[i−1][原创 2021-05-30 11:05:30 · 127 阅读 · 0 评论 -
CF913C Party Lemonade(贪心+dp)
题目传送门题意这道题类似于一个多重背包问题这道题大致意思就是:输入n,m,n代表有几种柠檬水m代表我现在举办聚会需要几升柠檬水下面的每一个数据代表2i(0<=i<n)2^i(0<=i<n)2i(0<=i<n)升柠檬水需要多少钱最后输出能满足聚会要求的(可以多买)柠檬水最少要多少钱思路这道题有一个非常巧妙的贪心+dp的做法。首先可以用dp的做法求出我们买每一组柠檬水要的最少价格比如,我买1L柠檬水需要1元钱,但是2L一块买就需要4块钱,那么我们可以用状态原创 2021-05-29 17:38:28 · 158 阅读 · 0 评论 -
CF1196D2 RGB Substring (hard version)(dp+前缀和思想)
题目传送门题意这道题的题意大致就是说第一行输入两个数n,k那么第一个数代表这个字符串的长度,第二个k代表这个字符串的子串的长度,而且要求这个字串必须是RGBRGBRGBRGBRGB...RGBRGBRGBRGBRGB...RGBRGBRGBRGBRGB...的一个字串,请问你最少可以修改几个字符,然后让这个字串也是这样的。思路这道题还是一个dp,那么如何去分析这道题呢?首先我们要想到,每一位上的字符都有可能是以R,G,B这三个字母为起点往后延伸k位,考虑动态规划解决本问题,那么就应该这么考虑:原创 2021-05-29 11:53:15 · 80 阅读 · 0 评论 -
CF1475C Ball in Berland(排列组合+容斥原理)
题目传送门题意分析这天,学校组织男朋友和女朋友一块跳舞,第一行为男生编号,第二行为女生编号,现在要求从中选两对进行跳舞,但是他们其中一些人不想暴露自己一脚踏多船的事实,因此男生不愿意同时和不同的舞伴一块跳舞,女生同理,请问你能找出多少组这样的组合一块跳舞?思路其实这道题寒假训练做过,但是当时没写题解,太失败了!这道题其实就是排列组合我们先看第一对(第一列),正常情况下1 2 3 4列有四种组合方式(1-1,1-2,1-3,1-4)但是由于男生女生会重复,因此我们要去除男生中重复的,和女生中重原创 2021-05-28 08:49:42 · 187 阅读 · 0 评论 -
CF1497E2 Square-free division (hard version)(思维+dp+双指针预处理)
题目传送门题意相比于easy version唯一不同的地方在于k的非0,也就是你可以在这n个数任意选择k个数,变成其他的数字,求出最少的区间数。思路这道题的dp还真的挺难的,当时就觉得easy version出来了,hard version搏一搏hhhc这道题用dp[i][j]代表前i个数使用j次改变数值的权利的区间最小数dp[i][j]代表前i个数使用j次改变数值的权利的区间最小数dp[i][j]代表前i个数使用j次改变数值的权利的区间最小数那么状态转移方程就是dp[i][j]=min(d原创 2021-05-22 16:35:18 · 216 阅读 · 0 评论 -
CF1497E1 Square-free division (easy version)(唯一分解定理+数论+思维)
题目传送门题意现在给你一串数字,请你划分最少的区间,使得这区间里面的所有数字两两相乘都不是平方数,请输出区间数。思路这道题可以用一个map来存储(当然要进行质因数的分解,要不然会卡常(唯一分解定理))因数为奇数的次数,因为偶数一定可以被开方。这道题的实现方式我觉得还是比较精巧的#include<iostream>#include<map>using namespace std;const int N=1e7+9;int primes[N], cnt; //原创 2021-05-22 16:02:59 · 151 阅读 · 0 评论 -
CF1527C Sequence Pair Weight(思维)
#include<iostream>#include<map>using namespace std;typedef long long ll;map<ll,ll>mp;int main(){ int T; cin>>T; while(T--){ int n; ll ans=0; cin>>n; for(int i=1;i<=n;i++){ ll u; cin>>u; ans+=(原创 2021-05-21 13:13:00 · 221 阅读 · 3 评论 -
CF1527B2 Palindrome Game (hard version)(思维)
easy versionhard version昨天晚上状态太差了==其实这个题非常简单。hard version需要以easy vesion作为基础简单题意现在bob和alice正在玩一个小游戏:给你个字符串,当所有的0变成了1,那么游戏结束现在你们有两个操作:1.将0变成1,但是将会有一点的代价2.将整个棋盘翻转(不用改变任何字符的意思),这个没有代价,但是条件是需要在字符串非回文的情况下才可以,而且不能连续使用反转的权利(BOB上次用了,你ALICE这次不能用)alice先手,原创 2021-05-21 08:19:31 · 614 阅读 · 7 评论 -
CF1525C Robot Collisions(模拟+思维)
题目传送门有点太弱,调了好久。这道题通过观察其实就可以发现,两个点同时是奇数,或者同时是偶数,才会有可能相碰。那么我们就模拟一下。把所有奇数的情况捡出来,排个序。1.时间最短的情况是相遇情况。左边是R,右边是L,这样无论如何时间都是最短的2.时间比较短的情况是两个点方向相同左边右边同时是L或者R,这样也可以算出来一个3.时间最长的点是方向相反左边是L,右边是R因此在作答过程中,先筛出时间最短的,再筛出时间相对中等的,最后再筛出来时间相对较长的。那么偶数的情况同理。AC代码#inc原创 2021-05-19 15:44:14 · 357 阅读 · 0 评论 -
Evil Coordinate(思维+贪心)
题目传送门唉,这道题还挺难的说怎么做呢?当时的思路实际上就是想绕过这个地雷。但是这样就会列出很多种情况,这样就非常的耗时耗力,但是看到了一种做法:利用全排列来枚举每一种情况,比如下上左右,左右上下等,但是每一次选一条道走到黑就能把情况考虑全了?其实答案的走法有很多种,但是我们可以把答案的走法拆分开来,拼接成为,每个方向成为连续的走法(这是众多答案中的一种),这样就可愉快的利用全排列,让每一个方向都一条道走到黑,这样就可以了(题目质量非常高,建议多做做)。这一点建议多理解理解。同时,全排列函数是ST原创 2021-05-11 00:07:10 · 572 阅读 · 0 评论