wolf鬼刀
明明已经知道结局,但是当结局正真来临时,还是会伤心欲绝
展开
-
力扣174. 地下城游戏
力扣174. 地下城游戏文章目录力扣174. 地下城游戏一、题目描述二、分析三、完整代码一、题目描述二、分析这个题一看就可以用动态规划,就需要确定动态规划的状态和选择以及状态转移方程如果按照从左上往右下的顺序进行动态规划,对于每一条路径,我们需要同时记录两个状态。第一个是「从出发点到当前点的路径和」,第二个是「从出发点到当前点所需的最小初始值」。而这两个状态的重要程度相同例如:从 (0,0)到 (1,2) 有多条路径(即动态规划的选择),我们取其中最有代表性的两条:原创 2021-01-01 21:47:11 · 741 阅读 · 2 评论 -
力扣- -241.为运算表达式设计优先级
力扣- -241.为运算表达式设计优先级(分治算法)文章目录力扣- -241.为运算表达式设计优先级(分治算法)一、题目描述二、分析三、代码四、优化一、题目描述二、分析看到这道题的第一感觉肯定是复杂,我要穷举出所有可能的加括号方式,是不是还要考虑括号的合法性?是不是还要考虑计算的优先级?是的,这些都要考虑,但是不需要我们来考虑。利用分治思想和递归函数,算法会帮我们考虑一切细节,也许这就是算法的魅力吧,哈哈哈。废话不多说,解决本题的关键有两点: 1、不要思考整体,而是把目光聚焦原创 2020-11-26 22:13:50 · 1097 阅读 · 0 评论 -
摩尔投票法(力扣- -229. 求众数 II)
摩尔投票法(力扣- -229. 求众数 II)文章目录摩尔投票法(力扣- -229. 求众数 II)一、题目描述二、分析摩尔投票法总结三、代码一、题目描述二、分析这道题如果用O(logN)O(log N)O(logN)的空间复杂度来解决是非常简单的,但是题目要求:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1)的算法解决此问题。 这里介绍摩尔投票法摩尔投票法 摩尔投票法,解决的问题是如何在任意多的候选人中,选出票数超过一半的那个人。注意,是超出一半票数的那个人。假设投票是原创 2020-10-09 20:49:23 · 892 阅读 · 0 评论 -
力扣- -231. 2的幂
力扣- -231. 2的幂文章目录力扣- -231. 2的幂一、题目描述二、问题分析三、代码方法一:暴力统计方法二:位运算(获取二进制中最右边的 1)方法三:位运算(去除二进制中最右边的 1)看一道对位运算特别巧的简单题一、题目描述class Solution {public: bool isPowerOfTwo(int n) { }};二、问题分析 这道题的主要思想是数字n的特殊性 因为数字n是2的幂(注意是2的幂,并不是2的倍数),那么这道题就简原创 2020-10-03 22:11:56 · 515 阅读 · 0 评论 -
剑指 Offer 41. 数据流中的中位数
剑指 Offer 41. 数据流中的中位数文章目录剑指 Offer 41. 数据流中的中位数一、题目描述二、分析三、完整代码一、题目描述二、分析 一个直接的解法可以用一个数组记录所有addNum添加进来的数字,通过插入排序的逻辑保证数组中的元素有序,当调用findMedian方法时,可以通过数组索引直接计算中位数。但是用数组作为底层容器的问题也很明显,addNum搜索插入位置的时候可以用二分搜索算法,但是插入操作需要搬移数据,所以最坏时间复杂度为 O(N)。那换链表?链表插入元素原创 2020-09-21 17:42:18 · 573 阅读 · 0 评论 -
差分数组
差分数组文章目录差分数组一、前缀和二、差分数组三、问题描述四、分析五、完整代码一、前缀和前缀和主要适用的场景是原始数组不会被修改的情况下,频繁查询某个区间的累加和。 核心代码就是下面这段:class PrefixSum { // 前缀和数组 private int[] prefix; /* 输入一个数组,构造前缀和 */ public PrefixSum(int[] nums) { prefix = new int[nums.len原创 2020-09-09 15:24:50 · 757 阅读 · 0 评论 -
力扣- -去除重复字母
力扣- -去除重复字母文章目录力扣- -去除重复字母一、题目描述二、分析三、代码一、题目描述二、分析 题目的要求总结出来有三点:要求一、要去重。要求二、去重字符串中的字符顺序不能打乱s中字符出现的相对顺序。要求三、在所有符合上一条要求的去重字符串中,字典序最小的作为最终结果。上述三条要求中,要求三可能有点难理解,举个例子:比如说输入字符串s = “babc”,去重且符合相对位置的字符串有两个,分别是"bac"和"abc",但是我们的算法得返回"abc",因为它的字原创 2020-09-04 21:52:52 · 948 阅读 · 0 评论 -
力扣--让字符串成为回文串的最少插入次数
力扣–让字符串成为回文串的最少插入次数文章目录力扣--让字符串成为回文串的最少插入次数一、题目描述二、分析三、代码相关题目:腾讯–构造回文:腾讯–构造回文最长回文子串和回文链表:最长回文子串和回文链表美团/力扣(647)–回文字串:美团/力扣(647)–回文字串力扣- - 最短回文串(KMP算法):力扣- - 最短回文串(KMP算法)最长回文子序列:最长回文子序列一、题目描述二、分析首先,要找最少的插入次数,那肯定得穷举喽,如果我们用暴力算法穷举出所有插入原创 2020-09-02 12:15:47 · 1263 阅读 · 0 评论 -
力扣- - 最短回文串(KMP算法)
力扣- - 最短回文串(KMP算法)文章目录力扣- - 最短回文串(KMP算法)一、题目描述二、分析之KMP算法1.暴力法2.KMP算法3.next数组求法1:暴力查找最长的前后缀4.next数组求法25.完整KMP代码三、题目分析四、代码一、题目描述二、分析之KMP算法1.暴力法2.KMP算法3.next数组求法1:暴力查找最长的前后缀 vec原创 2020-08-29 21:28:15 · 1648 阅读 · 2 评论 -
力扣- -阶乘函数后K个零
力扣- -阶乘函数后K个零文章目录力扣- -阶乘函数后K个零一、172. 阶乘后的零二、分析三、代码四、阶乘函数后K个零五、分析六、完整代码一、172. 阶乘后的零二、分析 求n!中末尾0的个数: 0的来源 2 * 5 ,所以一对2和5即可产生一个0,所以0的个数即为min(阶乘中5的个数和2的个数) 又因为是2的倍数的数一定比是5的倍数的数多 所以2的个数一定>=5的个数 所以只需要统计 5 的个数了例如 5! = 1 * 2 * 3 * 4 * 5会产生3个2和1个原创 2020-08-29 14:36:44 · 876 阅读 · 2 评论 -
力扣- -正则表达式匹配
力扣- -正则表达式匹配文章目录力扣- -正则表达式匹配一、题目描述二、分析方法一:Dp函数明确状态和选择确定状态转译方程确定base case完整代码方法二:Dp table明确状态和选择明确状态转移方程确定base case完整代码一、题目描述二、分析这两个通配符是最常用的,其中点号「.」可以匹配任意一个字符,星号「*」可以让之前的那个字符重复任意次数(包括 0 次)。比如说模式串".a * b"就可以匹配文本"zaaab",也可以匹配"cb";模式串"a..b"可以匹配文本"a原创 2020-08-29 12:53:32 · 2173 阅读 · 3 评论 -
力扣--累加数
力扣–累加数文章目录力扣--累加数一、问题描述二、分析三、代码一、问题描述二、分析这道题第一眼看可能觉得比较简单,枚举前后3个位置,判断这3个位置的数字是否满足题目的要求(第三个数 = 前两个数之和)但是看到后面的用例就会发现问题:199100199==》这3个数不一定是1位数,可能是多位数,所以都需要进行枚举 定义i,j,k分别代表第一个数字、第二个数字和第三个数字的起始下标,这样好处在于计算各个字符串时都很方便。 第一个数字的起始下标一定是0,但是第二和第三个数字的起始下标不原创 2020-08-25 22:17:54 · 659 阅读 · 0 评论 -
旋转排序数组系列题详解
旋转排序数组系列题详解文章目录旋转排序数组系列题详解一、问题描述:旋转数组的最小数字二、分析:二分查找三、代码四、问题描述:寻找旋转排序数组中的最小值五、分析:二分搜索六、代码七、问题描述:寻找旋转排序数组中的最小值 II八、分析:二分查找九、代码十、问题描述:搜索旋转排序数组十一、分析:二分搜索十二、代码十三、问题描述:搜索旋转排序数组II十四、代码一、问题描述:旋转数组的最小数字二、分析:二分查找一个包含重复元素的升序数组在经过旋转之后,可以得到下面可视化的折线图: 其中横轴表示数组元原创 2020-08-14 22:10:15 · 897 阅读 · 0 评论 -
旋转图像
旋转图像文章目录旋转图像一、题目描述分析方法一:旋转 + 翻转代码方法二:逐层逐位置偏移代码一、题目描述分析方法一:旋转 + 翻转 第一步以对角线为轴,翻转对角线两侧的元素 第二部以每行的中点为轴翻转左右两次的元素代码class Solution {public: void rotate(vector<vector<int>>& matrix) { //按对角线进行翻转 for(int i = 0;i <原创 2020-08-13 23:38:02 · 527 阅读 · 0 评论 -
约瑟夫环问题
约瑟夫环问题Slist.h#pragma once#include<stdio.h>#include<stdlib.h>#include<assert.h>typedef int SLDataType;typedef struct SLNode{ SLDataType value; struct SLNode *next;}SLNode...原创 2019-10-21 21:29:53 · 1575 阅读 · 0 评论 -
网易--合唱团
网易–合唱团文章目录网易--合唱团一、题目描述二、分析三、代码一、题目描述二、分析三、代码#include <bits/stdc++.h> using namespace std; int main() { int n; cin>>n; vector<int> num(n + 1); for(int i = 1; i <= n; i原创 2020-07-24 19:44:33 · 494 阅读 · 0 评论 -
力扣--统计全1子矩阵
力扣–统计全1子矩阵文章目录力扣--统计全1子矩阵一、题目描述二、分析方法一:枚举三、代码枚举方法的代码一、题目描述二、分析方法一:枚举 首先很直观的想法,我们可以枚举矩阵中的每个位置 (i,j),统计以其作为右下角时,有多少个元素全部都是 1的子矩形,那么我们就能不重不漏地统计出满足条件的子矩形个数。 那么枚举以后,我们怎么统计满足条件的子矩形个数呢? 既然是枚举以 (i,j) 作为右下角的子矩形个数,那么我们可以直接暴力地枚举左上角 (k,y),看其组成的矩形是否满足条件,时间复杂原创 2020-07-23 15:38:22 · 1662 阅读 · 0 评论 -
多重背包问题
多重背包问题文章目录多重背包问题一、题目描述二、分析一、题目描述有nnn克面粉,mmm种馅料,然后每种馅料有aiaiai克,bibibi克馅料和cicici克面粉做的面包可以买dididi元,也可以不放馅料,那么c0c0c0克面粉做的面包可以卖d0d0d0元,求最多可以赚多少钱; 输入第一行包含4个整数 n,m,c0和d0n, m, c0和d0n,m,c0和d0(1 ≤ n ≤ 1000,1 ≤ m ≤ 10,1 ≤ c0, d0 ≤ 1001 ≤ n ≤ 1000, 1 ≤ m ≤ 10,原创 2020-07-17 23:19:06 · 1407 阅读 · 1 评论 -
分段翻转链表
分段翻转链表文章目录分段翻转链表一、题目描述二、分析三、代码一、题目描述按段(段内的元素不翻转)翻转链表:如链表 1->2->3->4->5->6->7->8->9,如果段大小为3,翻转后为7->8->9->4->5->6->1->2->3。注意段大小作为参数传入。要求编写可以运行的测试用例。二、分析 第一步把链表整体翻转 第二部按段翻转三、代码#include <iostream>原创 2020-07-16 23:24:05 · 717 阅读 · 0 评论 -
美团--字符串计数
美团–字符串计数文章目录美团--字符串计数一、题目描述二、分析三、代码一、题目描述二、分析 做题之前我们需要明白什么是字典序,就以题目中的事例1来说,字典序在ab和ce之间并且满足长度在1到2之间的所有字符串的个数首先,ab的下一个字典序是什么?是aba,abb,abc…但是发现长度不满足;所以ab真正的下一个字典序是ac,同样对于aca,acb,…也是不满足情况的,所以ac的下一个字典序是ad,ae,…az(24);同理az的下一个字典序是b,ba,bb,bc,…bz(27);b原创 2020-07-16 22:05:22 · 690 阅读 · 0 评论 -
给你一个能生成1到5随机数的函数,用它写一个函数生成1到7的随机数
给你一个能生成1到5随机数的函数,用它写一个函数生成1到7的随机数文章目录给你一个能生成1到5随机数的函数,用它写一个函数生成1到7的随机数一、问题二、分析三、错解四、正解一五、正解二六、拓展一、问题已知rand5()产生1-5的随机整数,利用该函数生成函数rand7()产生1-7的随机整数。二、分析 rand5可以随机生成1 ~ 5;目标生产rand7,使其可以随机生成1 ~ 7。 rand5并不能直接产生6,7。我们可能想到 + 2,但是+ 2生产的是3 ~ 7,不满足题意。 所以直接用r原创 2020-07-15 11:53:28 · 3914 阅读 · 0 评论 -
错排详解及案例
错排详解及案例文章目录错排详解及案例一、错排详解二、案例1.年会抽奖2.三国佚事——巴蜀之危一、错排详解问题:现有10本书按照顺序摆放,现要求重新排列,使得新的书的顺序中每一本书都不在原来的位置,求有多少种排列方式? 这个问题推广一下,就是错排问题,是组合数学中的问题之一。 考虑一个有n个元素的排列,若一个排列中所有的元素都不在自己原来的位置上,那么这样的排列就称为原排列的一个错排。 n个元素的错排数记为D(n)。 研究一个排列错排个数的问题,叫做错排问题或称为更列问题 OK,现在详细分析这个原创 2020-07-10 18:04:49 · 1441 阅读 · 0 评论 -
力扣--目标和
力扣–目标和文章目录力扣--目标和一、题目描述二、分析方法一:回溯方法二、消除重叠子问题方法三、动态规划一、题目描述class Solution {public: int findTargetSumWays(vector<int>& nums, int S) { }};二、分析方法一:回溯 任何算法的核心都是穷举,回溯算法就是一个暴力穷举算法,回溯算法框架:def backtrack(路径, 选择列表): if 满足结束条件:原创 2020-07-01 17:12:55 · 1764 阅读 · 2 评论 -
力扣四数之和
力扣四数之和文章目录力扣四数之和一、题目描述二、分析三、代码四、问题描述五、分析六、代码一、题目描述二、分析这道题和:三数之和:三数之和类似,直接放代码:三、代码class Solution {public: // 只需要返回三个数的和,根据15的双指针来改 int threeSumClosest(vector<int>& nums, int target) { int n = nums.size(); if( n <原创 2020-06-23 21:51:42 · 721 阅读 · 0 评论 -
双指针解决力扣两/三数之和问题
双指针解决力扣两/三数之和问题文章目录双指针解决力扣两/三数之和问题一、问题描述二、分析1.暴力2.**`排序+双指针法`**3.hash法三、问题描述四、分析方法一:排序 + 双指针一、问题描述二、分析1.暴力暴力算法时间复杂度O(n²),空间复杂度O(1)class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { vector<int&原创 2020-06-23 20:58:38 · 767 阅读 · 0 评论 -
不同的二叉搜索树
不同的二叉搜索树文章目录不同的二叉搜索树一、问题描述二、分析三、代码四、问题描述五、分析方法:递归六、代码一、问题描述二、分析 在已知前n-1个数的二叉搜索树数目后,插入第n个数,有哪些情况? 1.第n个数做根节点,前n-1个数形成其左子树,右子树为0个数,dp[n-1]*dp[0]种 2.第n-1个数做根节点,左子树为前n-2个数,右子树为第n个数,dp[n-2]*dp[1]种 … n-i+1.第i个数做根节点,左子树为前i-1个数,右子树为后n-i个数,dp[i-1]*dp[n-i]原创 2020-06-23 00:24:44 · 986 阅读 · 0 评论 -
力扣--91. 解码方法
力扣–91. 解码方法文章目录力扣--91. 解码方法一、题目描述二、解题思路三、代码一、题目描述一条包含字母 A-Z 的消息通过以下方式进行了编码:'A' -> 1'B' -> 2...'Z' -> 26给定一个只包含数字的非空字符串,请计算解码方法的总数。 示例 1:输入: "12"输出: 2解释: 它可以解码为 "AB"(1 2)或者 "L"(12)。 示例 2:输入: "226"输出: 3解释: 它可以解码为 "BZ" (2 26), "原创 2020-06-22 22:34:14 · 598 阅读 · 0 评论 -
查找两个字符串a,b中的最长公共子串
查找两个字符串a,b中的最长公共子串文章目录查找两个字符串a,b中的最长公共子串一、题目描述二、代码一、题目描述题目描述:查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。 输入描述:输入两个字符串 输出描述:返回重复出现的字符示例:输入abcdefghijklmnopabcsafjklmnopqrstuvw输出jklmnop二、代码#include <iostream>#include <string>原创 2020-06-22 20:11:55 · 675 阅读 · 0 评论 -
力扣--替换后的最长重复字符
力扣–替换后的最长重复字符文章目录力扣--替换后的最长重复字符一、题目描述二、分析三、代码一、题目描述二、分析 题目的意思比较清楚,不过可能的情况有很多,不可能用代码去寻找最佳的替换位置,所以这里采用一种滑动窗口的方法。 定义start和end两个标记,中间的内容即是窗口,计算窗口内所有字母出现的次数,因为全是大写字母,所以可以用一个26位的数组来记录窗口内每个字母出现的次数。 找到窗口内出现最多的次数,加上允许替换的字母数k,看是否超过窗口宽度,如果超过了,说明窗口还可以更长, 也就是说原创 2020-06-21 22:54:49 · 582 阅读 · 0 评论 -
美团--最长全1串
美团–最长全1串文章目录美团--最长全1串一、问题描述二、分析三、代码一、问题描述给你一个01字符串,定义答案=该串中最长的连续1的长度,现在你有至多K次机会,每次机会可以将串中的某个0改成1,现在问最大的可能答案 输入描述:输入第一行两个整数N,K,表示字符串长度和机会次数第二行输入N个整数,表示该字符串的元素( 1 <= N <= 300000, 0 <= K <= N ) 输出描述:输出一行表示答案输入例子1:10 2 1 0 0 1原创 2020-06-21 20:57:15 · 699 阅读 · 0 评论 -
美团--美团骑手包裹区间分组
美团–美团骑手包裹区间分组文章目录美团--美团骑手包裹区间分组一、题目描述二、分析三、代码一、题目描述2110年美团外卖火星第3000号配送站点有26名骑手,分别以大写字母A-Z命名,因此可以称呼这些骑手为黄家骑士特工A,黄家骑士特工B…黄家骑士特工Z,某美团黑珍珠餐厅的外卖流水线上会顺序产出一组包裹,美团配送调度引擎已经将包裹分配到骑手,并在包裹上粘贴好骑手名称,如RETTEBTAE代表一组流水线包裹共9个,同时分配给了名字为A B E R T的5名骑手。请在不打乱流水线产出顺序的情况下,把这组包裹原创 2020-06-20 20:52:21 · 4260 阅读 · 0 评论 -
美团--订单分配
美团–订单分配文章目录美团--订单分配一、题目描述二、分析三、代码一、题目描述打车派单场景, 假定有N个订单, 待分配给N个司机。每个订单在匹配司机前,会对候选司机进行打分,打分的结果保存在N*N的矩阵A, 其中A[i][j] 代表订单i司机j匹配的分值。假定 每个订单只能派给一位司机,司机只能分配到一个订单。求最终的派单结果,使得匹配的订单和司机的分值累加起来最大,并且所有订单得到分配。 输入描述:第一行包含一个整数N,2≤N≤10。第二行至第N+1行包含N*N的矩阵。 输出描述原创 2020-06-20 18:57:19 · 1664 阅读 · 0 评论 -
力扣--扁平化嵌套列表迭代器
扁平化嵌套列表迭代器文章目录扁平化嵌套列表迭代器一、题目描述二、分析方法一:代码一:方法二:代码二:C++代码:一、题目描述/** * // This is the interface that allows for creating nested lists. * // You should not implement it, or speculate about its implementation * class NestedInteger { * public: * /原创 2020-06-20 16:36:15 · 578 阅读 · 0 评论 -
美团--最小唯一前缀
美团–最小唯一前缀文章目录美团--最小唯一前缀一、问题描述二、分析三、代码一、问题描述给定一组个字符串,为每个字符串找出能够唯一识别该字符串的最小前缀。 输入描述:第一行输入一个整数 n 表示字符串个数后面n行,每行一个字符串,一共n串互不相同的字符串。(2 <= n <= 100,字符串长度不超过100) 输出描述:输出n行,每行一个字符串,依次是每个字符串的最小可唯一识别前缀输入例子1:5meituanappmeituanwaimaidianpingl原创 2020-06-20 15:24:38 · 523 阅读 · 0 评论 -
美团--合并金币
美团–合并金币文章目录美团--合并金币一、题目描述二、分析三、代码一、题目描述同样还是两道一样的题!!!二、分析 拿到题目,看到相邻两字,就考虑动态规划问题。 这里第一步确定dp[i][j]是什么意思,我这里规定dp[i][j]就是从第i个位置开始到第j个位置结束,这一堆合并金币所需的最小成本。 第二步 确定状态转移方程打个比方说如果输入4个数 2 3 6 1(为了方便理解,我把下标定为从1开始 到4结束)那我们就先比方说dp[1,3]也就是从第一个位置到第三个位置结束,那也就原创 2020-06-20 10:48:33 · 1066 阅读 · 0 评论 -
美团/力扣(647)--回文字串
美团/力扣(647)–回文字串文章目录美团/力扣(647)--回文字串一、题目描述二、分析方法一:中心扩散代码一:方法二:DP代码二:一、题目描述力扣:美团:兄弟们!刷题的重要性!!!二、分析方法一:中心扩散 从开始每个字符进行判断,回文串字符个数可能为奇数或偶数 如果是奇数,则中心字符为当前字符,然后向两边扩散 如果是偶数,则中心字符为当前字符和下一个字符,然后向两边扩散代码一:class Solution {public: int countSubstrings原创 2020-06-19 23:31:17 · 752 阅读 · 0 评论 -
腾讯--构造回文
腾讯–构造回文文章目录腾讯--构造回文一、题目描述二、分析三、代码一、题目描述给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?输出需要删除的字符个数。 输入描述:输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000. 输出描述:对于每组数据,输出一个整数,代表最少需要删除的字符个数。输入例子1:abcdagoogle输出例子1:22二、分析这道题其实和:最⻓公共⼦序列:原创 2020-06-19 22:21:03 · 661 阅读 · 0 评论 -
二叉树构建及双向链表
二叉树构建及双向链表文章目录二叉树构建及双向链表一、从前序与中序遍历序列构造二叉树代码二、从中序与后序遍历序列构造二叉树代码三、二叉搜索树转双向链表代码一、从前序与中序遍历序列构造二叉树根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7原创 2020-06-18 11:15:27 · 609 阅读 · 0 评论 -
字节--字母交换
字节–字母交换文章目录字节--字母交换一、题目描述一、题目描述字符串S由小写字母构成,长度为n。定义一种操作,每次都可以挑选字符串中任意的两个相邻字母进行交换。询问在至多交换m次之后,字符串中最多有多少个连续的位置上的字母相同? 输入描述:第一行为一个字符串S与一个非负整数m。(1 <= |S| <= 1000, 1 <= m <= 1000000) 输出描述:一个非负整数,表示操作之后,连续最长的相同字母数量。输入例子1:abcbaa 2输出例子1原创 2020-06-17 18:51:28 · 1383 阅读 · 0 评论 -
字节--手串
字节–手串文章目录字节--手串一、题目描述二、分析三、代码一、题目描述作为一个手串艺人,有金主向你订购了一条包含n个杂色串珠的手串——每个串珠要么无色,要么涂了若干种颜色。为了使手串的色彩看起来不那么单调,金主要求,手串上的任意一种颜色(不包含无色),在任意连续的m个串珠里至多出现一次(注意这里手串是一个环形)。手串上的颜色一共有c种。现在按顺时针序告诉你n个串珠的手串上,每个串珠用所包含的颜色分别有哪些。请你判断该手串上有多少种颜色不符合要求。即询问有多少种颜色在任意连续m个串珠中出现了至少两次。原创 2020-06-16 21:57:47 · 707 阅读 · 0 评论