摘要: A 题意 思路 有前导零结果直接为0,出现在第一位的**?贡献为9**,其他地方的**?贡献为10**。 代码 #include<bits/stdc++.h> using namespace std; using ll=long long; char s[10]; int main() { int 阅读全文
posted @ 2023-04-24 19:48 cryingrain 阅读(12) 评论(0) 推荐(0) 编辑
摘要: A 题意 两根红蓝方块组成的柱子,可以任意将一根柱子顶端的一个方块移动到另一根柱子顶端,问是否能使得两根柱子均为红蓝交错的颜色。 思路 显然可以转化成一个序列能否从中间分割成两个红蓝交错的序列,也就是判断是否有三个连续的颜色,或者两个颜色连续出现两次以上。 代码 #include<bits/stdc 阅读全文
posted @ 2023-03-02 16:51 cryingrain 阅读(19) 评论(0) 推荐(0) 编辑
摘要: Longest Arithmetic 题意 给一个长为n的数组,求其中最长的等差子串长度。 思路 从2开始遍历,维护上一个差,然后判断当前i和i-1的差是否相等。同时记录答案 代码 #include<bits/stdc++.h> using namespace std; const int MAX= 阅读全文
posted @ 2022-11-23 16:41 cryingrain 阅读(23) 评论(0) 推荐(0) 编辑
摘要: Record Breaker 题意 给一个长为n的数组a,从左往右计算,如果某个a[i]比之前出现过的所有a[j]都更大,并且比a[i+1]更大,那么认为a[i]打破纪录,求有多少打破纪录的a[i]。 思路 遍历 代码 #include<bits/stdc++.h> using namespace 阅读全文
posted @ 2022-10-20 00:50 cryingrain 阅读(28) 评论(0) 推荐(0) 编辑
摘要: Countdown 题意 给一个长为n的数组,一个数k,求数组中有多少个子串组成k,k-1,k-2....2,1 思路 扫一遍记录当前期望的值就行了。 代码 #include<bits/stdc++.h> using namespace std; int main() { int T,cas=0; 阅读全文
posted @ 2022-10-13 23:02 cryingrain 阅读(20) 评论(0) 推荐(0) 编辑
摘要: A 题意 给一个长为n的数组,每次可以对其中某个数做**+1或-1**的操作。求最小的操作次数,使得可以从数组中选出三个相同的数。 思路 很容易可以想到选三个最接近的数然后操作。也可以很容易证明,对于a<b<c,一定是将a,c操作到b距离最短。 所以排序后遍历中间的b,然后求a与c的差距即可。 代码 阅读全文
posted @ 2022-10-08 22:55 cryingrain 阅读(20) 评论(0) 推荐(0) 编辑
摘要: A 题意 一个袋子有n种颜色的球,每种若干个,每次操作可以取出两个不同颜色的球,问最后留下的球可能是什么颜色。 思路 很显然,最后留下的是数量最多的那种颜色。因为可以每次选数量第二多的颜色和其他任意一个颜色取出。直到只剩一种颜色,而此时剩下的那种颜色数量不可能大于原来数量最多的颜色,两两匹配最后一定 阅读全文
posted @ 2022-09-17 23:19 cryingrain 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 出栈序列计数问题 给定一长为n的序列,各位元素各不相同,那么经过入栈,出栈后,可以得到多少种不同的序列。 这个问题的答案是卡特兰数C(n)。 卡特兰数 卡特兰数是中一个常在各种计数问题中出现的数列。用C(n)表示卡特兰数第n项,则有通项公式 \[ C(n)=C_{2n}^n-C_{2n}^{n+1} 阅读全文
posted @ 2021-10-19 22:42 cryingrain 阅读(1067) 评论(0) 推荐(0) 编辑
摘要: 描述时间复杂度的渐进记号 Θ 定义: \[ f(n)=\Theta(g(n))\\ \exist c_1,c_2,n_0,使得:\forall n\geq n_0,有 0\leq c_1g(n)\leq f(n)\leq c_2g(n) \] 即存在常数c1,c2,使得在n足够大(n>n0)的时候, 阅读全文
posted @ 2021-09-25 00:21 cryingrain 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 二分搜索框架 int L,R,key; while(L<=R) { int mid=(L+R)>>1; if(a[mid]<key or a[mid]<=key) L=mid+1; else R=mid-1; } return L or R; 问题 二分搜索大家都很熟悉。如果待查区间内只有一个key 阅读全文
posted @ 2021-06-22 22:50 cryingrain 阅读(58) 评论(0) 推荐(0) 编辑