<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Skyed_blue的博客]]></title><description><![CDATA[emm...fresh power]]></description><link>https://blog.csdn.net/Skyed_blue</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; Skyed_blue]]></copyright><item><title><![CDATA[【leetcode】rand7()实现rand10()]]></title><link>https://blog.csdn.net/Skyed_blue/article/details/115116103</link><guid>https://blog.csdn.net/Skyed_blue/article/details/115116103</guid><author>Skyed_blue</author><pubDate>Tue, 23 Mar 2021 12:23:57 +0800</pubDate><description><![CDATA[已有方法 rand7 可生成 1 到 7 范围内的均匀随机整数，试写一个方法 rand10 生成 1 到 10 范围内的均匀随机整数。
不要使用系统的 Math.random() 方法。
示例 1:
输入: 1
输出: [7]
示例 2:
输入: 2
输出: [8,4]
示例 3:
输入: 3
输出: [8,1,10]
提示:
rand7 已定义。
传入参数: n 表示 rand10 的调用次数。
进阶:
rand7()调用次数的 期望值 是多少 ?
你能否尽量少调用 rand7() ?
思路分析
首先，r]]></description><category></category></item><item><title><![CDATA[【美团2021校招第十场】贪心，贪心，模拟，不会...]]></title><link>https://blog.csdn.net/Skyed_blue/article/details/114849653</link><guid>https://blog.csdn.net/Skyed_blue/article/details/114849653</guid><author>Skyed_blue</author><pubDate>Mon, 15 Mar 2021 20:44:52 +0800</pubDate><description><![CDATA[第一题
[编程题]淘汰分数
时间限制：C/C++ 1秒，其他语言2秒
空间限制：C/C++ 256M，其他语言512M
某比赛已经进入了淘汰赛阶段,已知共有n名选手参与了此阶段比赛，他们的得分分别是a_1,a_2….a_n,小美作为比赛的裁判希望设定一个分数线m，使得所有分数大于m的选手晋级，其他人淘汰。
但是为了保护粉丝脆弱的心脏，小美希望晋级和淘汰的人数均在[x,y]之间。
显然这个m有可能是不存在的，也有可能存在多个m，如果不存在，请你输出-1，如果存在多个，请你输出符合条件的最低的分数线。
输入描述]]></description><category></category></item><item><title><![CDATA[【leetcode】盈利计划（二维费用01背包）]]></title><link>https://blog.csdn.net/Skyed_blue/article/details/114802247</link><guid>https://blog.csdn.net/Skyed_blue/article/details/114802247</guid><author>Skyed_blue</author><pubDate>Sun, 14 Mar 2021 20:43:16 +0800</pubDate><description><![CDATA[集团里有 n 名员工，他们可以完成各种各样的工作创造利润。
第 i 种工作会产生 profit[i] 的利润，它要求 group[i] 名成员共同参与。如果成员参与了其中一项工作，就不能参与另一项工作。
工作的任何至少产生 minProfit 利润的子集称为盈利计划。并且工作的成员总数最多为 n 。
有多少种计划可以选择？因为答案很大，所以 返回结果模 10^9 + 7 的值。
示例 1：
输入：n = 5, minProfit = 3, group = [2,2], profit = [2,3]
输出：2]]></description><category></category></item><item><title><![CDATA[高并发学生选课系统设计]]></title><link>https://blog.csdn.net/Skyed_blue/article/details/114176870</link><guid>https://blog.csdn.net/Skyed_blue/article/details/114176870</guid><author>Skyed_blue</author><pubDate>Sat, 27 Feb 2021 15:46:21 +0800</pubDate><description><![CDATA[高并发选课系统设计
简述
学生选课系统类似于秒杀系统，都是要在一个时间段内抗住高并发。因此我们的学生选课系统可以按照秒杀系统来设计。
学生选课系统的QPS其实远远不及秒杀系统，毕竟一个学校最多也就同时几千个人选课，因此在架构上可以不用设计的太麻烦，只要能抗住高并发，让学生都有操作空间就可。但本文想抛开现实，按照秒杀系统来好好设计一下选课系统。
开发技术
SpringCloud，Mybatis-plus，MySQL，Redis，redisson，RabbitMQ，Quartz
数据表设计
teacher(教师]]></description><category></category></item><item><title><![CDATA[《需求工程——软件建模与分析》读书笔记]]></title><link>https://blog.csdn.net/Skyed_blue/article/details/111713140</link><guid>https://blog.csdn.net/Skyed_blue/article/details/111713140</guid><author>Skyed_blue</author><pubDate>Fri, 25 Dec 2020 23:07:20 +0800</pubDate><description><![CDATA[《需求工程——软件建模与分析》，整体来说这本书内容还是挺多的。我先从目录看起，看看这本书的知识框架是怎样的，整个需求分析会涉及到哪些知识。
该书共分为5个部分：绪论，需求获取，需求分析，需求的格式化与验证，需求的管理及工程管理。
下面将会简述每一部分部分里面的章节并结合自己的项目和Excel截取的记录做出一些思考，算是我对这本书的心得吧。
第一章：需求工程导论
​	主要讲解了需求问题的具体原因分析，需求工程（requirement engineering）的简介，重要性和复杂性，然后引出需求工程师这一职业。]]></description><category></category></item><item><title><![CDATA[【腾讯2020校招】压缩算法（栈）]]></title><link>https://blog.csdn.net/Skyed_blue/article/details/109819730</link><guid>https://blog.csdn.net/Skyed_blue/article/details/109819730</guid><author>Skyed_blue</author><pubDate>Thu, 19 Nov 2020 17:50:53 +0800</pubDate><description><![CDATA[时间限制：C/C++ 2秒，其他语言4秒
空间限制：C/C++ 256M，其他语言512M
小Q想要给他的朋友发送一个神秘字符串，但是他发现字符串的过于长了，于是小Q发明了一种压缩算法对字符串中重复的部分进行了压缩，对于字符串中连续的m个相同字符串S将会压缩为m|S，例如字符串ABCABCABC将会被压缩为[3|ABC]，现在小Q的同学收到了小Q发送过来的字符串，你能帮助他进行解压缩么？
输入描述:
输入第一行包含一个字符串s，代表压缩后的字符串。
S的长度&lt;=1000;
S仅包含大写字母、[、]、|]]></description><category></category></item><item><title><![CDATA[【leetcode】统计字典序元音字符串的数目（dp，3种写法）]]></title><link>https://blog.csdn.net/Skyed_blue/article/details/109606565</link><guid>https://blog.csdn.net/Skyed_blue/article/details/109606565</guid><author>Skyed_blue</author><pubDate>Tue, 10 Nov 2020 20:50:05 +0800</pubDate><description><![CDATA[给你一个整数 n，请返回长度为 n 、仅由元音 (a, e, i, o, u) 组成且按 字典序排列 的字符串数量。
字符串 s 按 字典序排列 需要满足：对于所有有效的 i，s[i] 在字母表中的位置总是与 s[i+1] 相同或在 s[i+1] 之前。
示例 1：
输入：n = 1
输出：5
解释：仅由元音组成的 5 个字典序字符串为 [“a”,“e”,“i”,“o”,“u”]
示例 2：
输入：n = 2
输出：15
解释：仅由元音组成的 15 个字典序字符串为
[“aa”,“ae”,“ai”,“ao”]]></description><category></category></item><item><title><![CDATA[【leetcode】可以到达的最远建筑 （贪心）]]></title><link>https://blog.csdn.net/Skyed_blue/article/details/109498032</link><guid>https://blog.csdn.net/Skyed_blue/article/details/109498032</guid><author>Skyed_blue</author><pubDate>Wed, 04 Nov 2020 20:14:58 +0800</pubDate><description><![CDATA[给你一个整数数组 heights ，表示建筑物的高度。另有一些砖块 bricks 和梯子 ladders 。
你从建筑物 0 开始旅程，不断向后面的建筑物移动，期间可能会用到砖块或梯子。
当从建筑物 i 移动到建筑物 i+1（下标 从 0 开始 ）时：
如果当前建筑物的高度 大于或等于 下一建筑物的高度，则不需要梯子或砖块
如果当前建筑的高度 小于 下一个建筑的高度，您可以使用 一架梯子 或 (h[i+1] - h[i]) 个砖块
如果以最佳方式使用给定的梯子和砖块，返回你可以到达的最远建筑物的下标（下标 ]]></description><category></category></item><item><title><![CDATA[校门外的树 （合并区间，线段树）]]></title><link>https://blog.csdn.net/Skyed_blue/article/details/109467888</link><guid>https://blog.csdn.net/Skyed_blue/article/details/109467888</guid><author>Skyed_blue</author><pubDate>Tue, 03 Nov 2020 13:55:36 +0800</pubDate><description><![CDATA[https://www.luogu.com.cn/problem/P1047
思路分析：
因为最后只需要一次查询，因此一个直观的想法是将所有的区间合并，用总数减去区间长度即可。
关键就是如何合并区间，这个可能不太好想，需要点思维。总体时间复杂度O(nlgn)
合并区间可以参考这篇博客：
https://blog.csdn.net/Skyed_blue/article/details/109467628
#include &lt;iostream&gt;
#include &lt;algorithm&gt;.]]></description><category></category></item><item><title><![CDATA[【leetcode】合并区间 (贪心)]]></title><link>https://blog.csdn.net/Skyed_blue/article/details/109467628</link><guid>https://blog.csdn.net/Skyed_blue/article/details/109467628</guid><author>Skyed_blue</author><pubDate>Tue, 03 Nov 2020 13:41:01 +0800</pubDate><description><![CDATA[给出一个区间的集合，请合并所有重叠的区间。
示例 1:
输入: intervals = [[1,3],[2,6],[8,10],[15,18]]
输出: [[1,6],[8,10],[15,18]]
解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].
示例 2:
输入: intervals = [[1,4],[4,5]]
输出: [[1,5]]
解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。
注意：输入类型已于2019年4月15日更改。 请重置默认代码定义以获取新方法]]></description><category></category></item><item><title><![CDATA[四方定理 (dp，二维费用背包)]]></title><link>https://blog.csdn.net/Skyed_blue/article/details/109382762</link><guid>https://blog.csdn.net/Skyed_blue/article/details/109382762</guid><author>Skyed_blue</author><pubDate>Fri, 30 Oct 2020 12:21:28 +0800</pubDate><description><![CDATA[思路分析：
我一开始没往背包那想，我想的是dp[i][j]表示 i 值 剩余 j 次分解位的方案总数。
第一层 for 遍历 i 值 (1-32768)
第二层for 遍历 j 分解位个数 (0-4)
第三层for 遍历 k 平方数 (1-sqrt(i))
dp[i][j] = dp[i-k*k][j-1]
这样写理论上可以实现，但是无法去重。
假设i=5, j=1，k 可以取 1, 2. k取1就由dp[4][0]推来，k取2就由dp[1][0]推来。这样就包含了[1,2]和[2,1]两种情况。
后来看.]]></description><category></category></item><item><title><![CDATA[摆花 (dp，背包，各种优化)]]></title><link>https://blog.csdn.net/Skyed_blue/article/details/109380047</link><guid>https://blog.csdn.net/Skyed_blue/article/details/109380047</guid><author>Skyed_blue</author><pubDate>Fri, 30 Oct 2020 11:40:28 +0800</pubDate><description><![CDATA[题目描述
小明的花店新开张，为了吸引顾客，他想在花店的门口摆上一排花，共m盆。通过调查顾客的喜好，小明列出了顾客最喜欢的n种花，从1到n标号。为了在门口展出更多种花，规定第i种花不能超过ai  盆，摆花时同一种花放在一起，且不同种类的花需按标号的从小到大的顺序依次摆列。
试编程计算，一共有多少种不同的摆花方案。
输入格式
第一行包含两个正整数n和m，中间用一个空格隔开。
第二行有n个整数，每两个整数之间用一个空格隔开，依次表示a1,a2,…,an
输出格式
一个整数，表示有多少种方案。注意：因为方案数可能很]]></description><category></category></item><item><title><![CDATA[装箱问题 (dp，两种方法)]]></title><link>https://blog.csdn.net/Skyed_blue/article/details/109353838</link><guid>https://blog.csdn.net/Skyed_blue/article/details/109353838</guid><author>Skyed_blue</author><pubDate>Thu, 29 Oct 2020 10:59:00 +0800</pubDate><description><![CDATA[题目描述
有一个箱子容量为V（正整数，0≤V≤20000），同时有n个物品（0&lt;n≤30，每个物品有一个体积（正整数）。
要求n个物品中，任取若干个装入箱内，使箱子的剩余空间为最小。
输入格式
1个整数，表示箱子容量
1个整数，表示有n个物品
接下来n行，分别表示这n个物品的各自体积
输出格式
1个整数，表示箱子剩余空间。
输入输出样例
输入
24
6
8
3
12
7
9
7
输出
0
思路分析
其实就是背包问题。但是在做的时候想了个新思路。
令dp[i] = true表示在 i 体积可以被若干个箱]]></description><category></category></item><item><title><![CDATA[【蓝桥杯】调手表(bfs)]]></title><link>https://blog.csdn.net/Skyed_blue/article/details/109299596</link><guid>https://blog.csdn.net/Skyed_blue/article/details/109299596</guid><author>Skyed_blue</author><pubDate>Mon, 26 Oct 2020 21:45:56 +0800</pubDate><description><![CDATA[小明买了块高端大气上档次的电子手表，他正准备调时间呢。在 M78 星云，时间的计量单位和地球上不同，M78 星云的一个小时有 n 分钟。大家都知道，手表只有一个按钮可以把当前的数加一。在调分钟的时候，如果当前显示的数是 0 ，那么按一下按钮就会变成 1，再按一次变成 2 。如果当前的数是 n - 1，按一次后会变成 0 。作为强迫症患者，小明一定要把手表的时间调对。如果手表上的时间比当前时间多1，则要按 n - 1 次加一按钮才能调回正确时间。
小明想，如果手表可以再添加一个按钮，表示把当前的数加 k 该多]]></description><category></category></item><item><title><![CDATA[灾难预警（bfs+二分）]]></title><link>https://blog.csdn.net/Skyed_blue/article/details/109265083</link><guid>https://blog.csdn.net/Skyed_blue/article/details/109265083</guid><author>Skyed_blue</author><pubDate>Sat, 24 Oct 2020 20:49:09 +0800</pubDate><description><![CDATA[众所周知，浙农林是一条河。 由于浙江农林大学的特殊地形，当你在下雨后漫步在农林大路上的时候难免会出现一脚踩进一个水坑的情况的情况。而农农非常不喜欢踩到水坑的感觉，请你帮忙设计一个程序来帮助农农判断他能否在不踩入水坑的情况下回到寝室。
已知，浙江农林大学可以表示为一个 N * N 的矩阵。
对于每个位置有一个海拔数据 h[i][j]，当水位高度大于 h[i][j] 的时候，
这个位置就会形成一个水坑。
农农现在的坐标是 (1, 1), 他的宿舍位于 (n， n).
农农只可以沿着上下左右四个方向走。
假如农农]]></description><category></category></item><item><title><![CDATA[【蓝桥杯】k倍区间 (前缀和+分析+数论)]]></title><link>https://blog.csdn.net/Skyed_blue/article/details/109060830</link><guid>https://blog.csdn.net/Skyed_blue/article/details/109060830</guid><author>Skyed_blue</author><pubDate>Tue, 13 Oct 2020 21:10:13 +0800</pubDate><description><![CDATA[资源限制
时间限制：2.0s   内存限制：256.0MB
问题描述
　　给定一个长度为N的数列，A1, A2, … AN，如果其中一段连续的子序列Ai, Ai+1, … Aj(i &lt;= j)之和是K的倍数，我们就称这个区间[i, j]是K倍区间。
你能求出数列中总共有多少个K倍区间吗？
输入格式
　　第一行包含两个整数N和K。(1 &lt;= N, K &lt;= 100000)
　　以下N行每行包含一个整数Ai。(1 &lt;= Ai &lt;= 100000)
输出格式
　　输出一个整数，代表K]]></description><category></category></item><item><title><![CDATA[【蓝桥杯】分巧克力 (二分)]]></title><link>https://blog.csdn.net/Skyed_blue/article/details/109059096</link><guid>https://blog.csdn.net/Skyed_blue/article/details/109059096</guid><author>Skyed_blue</author><pubDate>Tue, 13 Oct 2020 20:05:59 +0800</pubDate><description><![CDATA[资源限制
时间限制：1.0s   内存限制：256.0MB
问题描述
儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。
小明一共有N块巧克力，其中第i块是Hi x Wi的方格组成的长方形。
为了公平起见，小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们。切出的巧克力需要满足：

形状是正方形，边长是整数
大小相同

例如一块6x5的巧克力可以切出6块2x2的巧克力或者2块3x3的巧克力。
当然小朋友们都希望得到的巧克力尽可能大，你能帮小Hi计算出最大的边长是多少么？
输入格式
]]></description><category></category></item><item><title><![CDATA[【dfs】深度优先遍历剖析（含泪推荐）]]></title><link>https://blog.csdn.net/Skyed_blue/article/details/108952482</link><guid>https://blog.csdn.net/Skyed_blue/article/details/108952482</guid><author>Skyed_blue</author><pubDate>Wed, 07 Oct 2020 16:43:22 +0800</pubDate><description><![CDATA[文章目录前言dfs原理分析dfs题型举例dfs代码细节
前言
我学的第一个算法就是dfs. 直到一年多后的今天，为了准备比赛我重新复习算法，我发现自己第一个学的算法，dfs，居然写的如此的慢，如此纠结。虽然最后能调试成功，但是感觉费了不少精力。一开始我准备了8道dfs复习，到最后我把这8道题用dfs统统做了四遍，用着不同的写法。终于，我明白自己为什么dfs写的如此之慢了。
下面，我将我的血泪史总结出一份自己满意的答卷。
dfs原理分析
其实，dfs就是暴力枚举。因此题目中遇到需要枚举才能取得结果的题都可以用]]></description><category></category></item><item><title><![CDATA[【算法基础总结】算法基础 (算法竞赛，面试...)]]></title><link>https://blog.csdn.net/Skyed_blue/article/details/104911487</link><guid>https://blog.csdn.net/Skyed_blue/article/details/104911487</guid><author>Skyed_blue</author><pubDate>Mon, 16 Mar 2020 23:38:10 +0800</pubDate><description><![CDATA[算法基础
​																	   	（By: Skyed_blue 转载注明作者)
文章目录算法基础前言dfs(深度优先遍历)bfs(广度优先遍历)二分查找(二分枚举)并查集位运算双指针栈(stack)字典树(trie)前缀和初等数论贪心动态规划(dp)结语
前言
本篇为算法基础整合，主要偏向于对基础算法的总结和整理。本篇将会介绍个人刷算法题的一些经验，基础算法的简要描述，基础算...]]></description><category></category></item><item><title><![CDATA[Stall Reservations (贪心, 区间问题)]]></title><link>https://blog.csdn.net/Skyed_blue/article/details/104838953</link><guid>https://blog.csdn.net/Skyed_blue/article/details/104838953</guid><author>Skyed_blue</author><pubDate>Fri, 13 Mar 2020 13:34:32 +0800</pubDate><description><![CDATA[Stall Reservations
Oh those picky N (1 &lt;= N &lt;= 50,000) cows! They are so picky that each one will only be milked over some precise time interval A…B (1 &lt;= A &lt;= B &lt;= 1,000,000), which in...]]></description><category></category></item></channel></rss>