随笔分类 -  思维

摘要:待整理 (和974的思路有点相仿,对于$O(N^{2})$的算法,考虑用hash降低一下复杂度,这里的hash的设计方式就不错) 阅读全文
posted @ 2020-06-07 21:44 猪突猛进!!! 阅读(113) 评论(0) 推荐(0)
摘要:题目描述: 给定一个整数数组 A,返回其中元素之和可被 K 整除的(连续、非空)子数组的数目。 题解: 解题的大致思路和leetcode 570类似。子数组$(i,j)$和可以用$j$的前缀和减去$i$的前缀和表示,我们考虑所有以$end$结尾的子数组中,有多少个是符合题意的。在以$end$结尾的子 阅读全文
posted @ 2020-06-02 11:12 猪突猛进!!! 阅读(192) 评论(0) 推荐(0)
摘要:题目描述: 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 题解: 这题的思路和leetcode 442、leetcode 448一样。大致的思路是在原数组上动 阅读全文
posted @ 2020-05-20 16:57 猪突猛进!!! 阅读(138) 评论(0) 推荐(0)
摘要:题目描述: 给定一个整数数组和一个整数 $k$,你需要找到该数组中和为 $k$ 的连续的子数组的个数。 题解: 一开始想着用双指针去写,仔细想想发现这里的数有正有负,在区间扩大的过程中,状态的变化不是单调的。 正解是优化的去枚举所有的区间。对于直接暴力的枚举,我们需要双重循环来遍历所有的区间,例如对 阅读全文
posted @ 2020-05-15 17:25 猪突猛进!!! 阅读(212) 评论(0) 推荐(0)
摘要:题目描述: 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。要求空间复杂度为$O(1)$ 题解: 方案一使用环状替换: 如果我们直接把每一个数字放到它最后的位置,但这样的后果是遗失原来的元素。因此,我们需要把被替换的数字保存在变量$temp$里面。然后,我们将被替换数字($te 阅读全文
posted @ 2020-04-30 11:06 猪突猛进!!! 阅读(138) 评论(0) 推荐(0)
摘要:题目描述: 编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为1,那么这个数就是快乐数。如果 n 是快乐数就返回 True ;不是,则返回 Fa 阅读全文
posted @ 2020-04-29 10:49 猪突猛进!!! 阅读(198) 评论(0) 推荐(0)
摘要:题目描述: 对于字符串 S 和 T,只有在 S = T + ... + T(T 与自身连接 1 次或多次)时,我们才认定 “T 能除尽 S”。返回最长字符串 X,要求满足 X 能除尽 str1 且 X 能除尽 str2。 题解: 要注意到一个性质:符合条件的字符串$X$的长度为$gcd(s1,s2) 阅读全文
posted @ 2020-04-20 11:44 猪突猛进!!! 阅读(195) 评论(0) 推荐(0)
摘要:题目描述: 给定一个数n,求n的阶乘末尾零的个数。 题解: 一些规律: 末尾零的个数与这个数因子中10的个数有关。 10的质因子为2和5,10的个数可以转换为有多少个(2,5)对。然而一个数的质因子分解中,2的个数大于等于5的个数,也就是说末尾0的个数与质因子5的个数有关。 如果直接用质因子分解的方 阅读全文
posted @ 2020-04-11 15:56 猪突猛进!!! 阅读(152) 评论(0) 推荐(0)
摘要:题目描述: 如果字符串中不含有任何 'aaa','bbb' 或 'ccc' 这样的字符串作为子串,那么该字符串就是一个「快乐字符串」。 给你三个整数 a,b ,c,请你返回 任意一个 满足下列全部条件的字符串 s: s 是一个尽可能长的快乐字符串。 s 中 最多 有a 个字母 'a'、b 个字母 ' 阅读全文
posted @ 2020-04-06 09:01 猪突猛进!!! 阅读(305) 评论(0) 推荐(0)
摘要:题目描述:给定一个未排序的数组,找出最长连续序列的长度。要求算法的时间复杂度为o(n)。 题解: 暴力求解很容易想到:枚举每个数字作为序列的第一个数字,搜索所有的可能性。 但是并不是每个枚举都是有意义的,例如[1,3,4,2,5,6,8]。这里只对1,8枚举有意义,剩下的元素都不是最长连续序列候选片 阅读全文
posted @ 2020-03-10 11:15 猪突猛进!!! 阅读(87) 评论(0) 推荐(0)
摘要:题目描述: 题解:相邻的孩子中,评分高的孩子需要获得更多的糖果数。把这个规则拆分一下,分为只考虑与左边孩子比较的情况以及只考虑与右边孩子比较的情况。 用left,right两个数组分别存下上述两种规则对应的最优分配糖果数。最后分配的时候,对于第i个小朋友,分配给他max(left[i],right[ 阅读全文
posted @ 2020-03-06 09:31 猪突猛进!!! 阅读(114) 评论(0) 推荐(0)
摘要:题目描述: 题解: 第一反应是用暴力去模拟,直接模拟需要O(n^2)的时间复杂度。实际上这题有规律可循 规律一:记res_gas为剩余的gas,res_cost为剩余需要消耗的油量,cur为gas[pos]-cost[pos],pos为当前到达加油站的位置。在模拟到一个节点的时候,res_gas < 阅读全文
posted @ 2020-03-05 15:20 猪突猛进!!! 阅读(195) 评论(0) 推荐(0)
摘要:题目描述: 题解:(一开始的时候一直没有梳理清楚) 有凹槽的地方势必左,右都有比其高的柱子。这里只需要知道当前点左边max以及右边max的柱子高度就可以求出当前位置能蓄多少水。 之前一直在梳理怎么顺序的去处理,思路出了问题。太麻烦的处理一般都不是正解,果然换个思路清晰了很多。 ac代码: 阅读全文
posted @ 2020-01-04 11:21 猪突猛进!!! 阅读(146) 评论(0) 推荐(0)
摘要:C. Valhalla Siege time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Ivar the Boneless is a 阅读全文
posted @ 2018-05-06 16:25 猪突猛进!!! 阅读(251) 评论(0) 推荐(0)
摘要:脑子锈咯,看了题解才理出来。 这里提到的希望n-1个点的距离都一致,为了让加的点尽可能的小,这个距离其实就是这n-2个距离值的公共gcd的最大值。(公共的gcd,对应多个值的最大共同部分,) 这里处理完之后就是利用gcd的前后缀处理一下挖去一个点的之后的区间gcd 阅读全文
posted @ 2018-03-27 16:14 猪突猛进!!! 阅读(183) 评论(0) 推荐(0)
摘要:题解: 先利用dfs找出各个节点之间的关系。然后利用一个sum[i][j] 数组 sum[i][0] 表示i这个节点收到影响的次数 sum[i][1]表示i这个节点的儿子们收到影响的次数 sum[i][2]表示i的孙子们受到影响的次数,那么我们 阅读全文
posted @ 2018-02-26 19:47 猪突猛进!!! 阅读(168) 评论(0) 推荐(0)
摘要:题意:给定一个素数,判定它是不是两个立方数之差。 题解:对于a^3+b^3=(a-b)(a^2-a*b+b^2),而一个素数的因子只有1和其本身,在加上(a^2-a*b+b^2)一定是大于1的,所以只有(a-b)为1的时候,才可能为解。预处理一下,打个表就好了。 ac代码: 阅读全文
posted @ 2017-09-17 20:50 猪突猛进!!! 阅读(178) 评论(0) 推荐(0)
摘要:Duizi and Shunzi Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 73 Accepted Submission(s): 30 Pr 阅读全文
posted @ 2017-08-31 18:46 猪突猛进!!! 阅读(369) 评论(0) 推荐(1)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5212 题意:忽略。。 题解:把题目转化为求每个gcd的贡献。(http://www.cnblogs.com/z1141000271/p/7419717.html 和这题类似 反向容斥)这里先用容斥写了,mobio 阅读全文
posted @ 2017-08-23 20:00 猪突猛进!!! 阅读(150) 评论(0) 推荐(0)
摘要:题解:和前面的多校的一道题目类似,顺序遍历的时候,a元素是比b要小的。用求出来的a去筛一遍b就可以了。 阅读全文
posted @ 2017-08-23 08:36 猪突猛进!!! 阅读(107) 评论(0) 推荐(0)