自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

无敌兔0x01

无欲速,无见小利。欲速,则不达;见小利,则大事不成。

  • 博客(1409)
  • 资源 (2)
  • 问答 (5)
  • 收藏
  • 关注

原创 c_lc_递增顺序搜索树(中序遍历 + 修改指针/重新构造树)

将其重新排列为一棵递增顺序搜索树,使树中最左边的节点成为树的根节点,并且每个节点没有左子节点,只有一个右子节点。方法一:中序遍历+修改指针var fw, ans *TreeNodefunc dfs(root *TreeNode) { if root == nil { return } dfs(root.Left) if fw == nil { fw = root ans = fw } else { fw.Right = root root.Left = nil fw

2021-04-25 23:19:14 360

原创 急,【网络安全】期末复习全套重点笔记

2

2020-12-25 21:12:51 749 2

原创 【多重背包】A000_AW_硬币(贪心+dp)

给定N种硬币,其中第 i 种硬币的面值为Ai,共有Ci个。从中选出若干个硬币,把面值相加,若结果为S,则称“面值S能被拼成”。求1~M之间能被拼成的面值有多少个。输入格式输入包含多组测试用例。每组测试用例第一行包含两个整数N和M。第二行包含2N个整数,分别表示A1,A2,…,AN和C1,C2,…,CN。当输入用例N=0,M=0时,表示输入终止,且该用例无需处理。输出格式每组用例输出一个结果,每个结果占一行。数据范围1≤N≤100,1≤M≤10^5,1≤Ai≤10^5,1≤Ci≤1

2020-09-01 22:04:38 467

原创 【图论】B067_AW_紧急情况(最短路计数+扩展)

作为城市的紧急救援团队负责人,你将获得一张你所在国家的特殊地图。该地图显示了一些通过道路连接的分散城市,道路是双向的。地图上标出了每个城市的救援队数量以及每对城市之间的每条道路的长度。当其他城市发出紧急求援信息时,你的工作是尽快带领你的士兵前往该地点,同时,在途中尽可能多地调动救援帮手。输入格式第一行包含四个整数 N,表示城市数量(城市编号从 0 到 N−1),M 表示道路数量,C1 表示你当前所在的城市编号,C2 表示发出紧急求援信息的城市编号。第二行包含 N 个整数,其中第 i 个整数表示城

2020-09-01 20:07:08 364

原创 【图论】B066_AW_农场派对 & 最短距离(暴力d[i][j] spfa / 建反图+增加来两个虚拟起点)

N 头牛要去参加在某农场举行的一场编号为 X 的牛的派对。有 M 条有向道路,每条路长 Ti;每头牛参加完派对后都必须回到家,每头牛都会选择最短路径。求这 N 头牛的最短路径(一个来回)中最长的一条的长度。特别提醒:可能有权值不同的重边。输入格式第一行包含三个整数 N,M,X。接下来 M 行,每行包含三个整数 Ai,Bi,Ti,表示有一条从 Ai 到 Bi 的路,长度为 Ti。输出格式共一行,一个数,表示最短路中最长的一条的长度。数据范围1≤N≤1000,1≤X≤N,1≤M≤105,

2020-09-01 16:03:16 485

原创 【图论】B065_AW_逃学的小孩(spfa最短路+树直径)

克里斯再次逃学去朋友家里玩了,生气的克里斯的父母决定把他给捉回来。他的父母深知克里斯一定是在夏尔米或者七枷社家里玩。克里斯所在的城市由N个居住点和M条连接居住点的双向街道组成,经过街道x需要花费Tx分钟。可以保证,任意两个居住点之间有且仅有一条通路。克里斯家在点C,夏尔米和七枷社家分别在点A和点B。为了尽快找到克里斯,他的父母在寻找他时将遵守如下两条规则:如果A距离C比B距离C近,则他的父母先到夏尔米家去找他,如果找不到,再去七枷社家。反之亦然。克里斯的父母总沿着两点间唯一的通路行走。但

2020-09-01 11:21:26 256

原创 【图论】B063_AW_寻找道路(建反图+dfs预处理连通性+bfs求最短路)

在有向图G中,每条边的长度均为1,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件:1.路径上的所有点的出边所指向的点都直接或间接与终点连通。2.在满足条件1的情况下使路径最短。注意:图G中可能存在重边和自环,题目保证终点没有出边。请你输出符合条件的路径的长度。输入格式第一行有两个用一个空格隔开的整数n和m,表示图有n个点和m条边。接下来的m行每行2个整数x、y,之间用一个空格隔开,表示有一条边从点x指向点y。最后一行有两个用一个空格隔开的整数s、t,表示起点为s,终

2020-09-01 08:50:37 223

原创 【图论】B061_AW_昂贵的聘礼(枚举等级区间+最短路)

年轻的探险家来到了一个印第安部落里。在那里他和酋长的女儿相爱了,于是便向酋长去求亲。酋长要他用10000个金币作为聘礼才答应把女儿嫁给他。探险家拿不出这么多金币,便请求酋长降低要求。酋长说:”嗯,如果你能够替我弄到大祭司的皮袄,我可以只要8000金币。如果你能够弄来他的水晶球,那么只要5000金币就行了。”探险家就跑到大祭司那里,向他要求皮袄或水晶球,大祭司要他用金币来换,或者替他弄来其他的东西,他可以降低价格。探险家于是又跑到其他地方,其他人也提出了类似的要求,或者直接用金币换,或者找到其他东

2020-08-31 21:38:10 234

原创 【图论】B060_AW_棋盘(带几个约束的最短路)

有一个m×m的棋盘,棋盘上每一个格子可能是红色、黄色或没有任何颜色的。你现在要从棋盘的最左上角走到棋盘的最右下角。任何一个时刻,你所站在的位置必须是有颜色的(不能是无色的),你只能向上、下、左、右四个方向前进。当你从一个格子走向另一个格子时,如果两个格子的颜色相同,那你不需要花费金币;如果不同,则你需要花费1个金币。另外,你可以花费2个金币施展魔法让下一个无色格子暂时变为你指定的颜色。但这个魔法不能连续使用,而且这个魔法的持续时间很短,也就是说,如果你使用了这个魔法,走到了这个暂时有颜色的格子上,

2020-08-31 17:20:38 234

原创 【图论】C059_AW_GF和猫咪的玩具 & 分糖果(floyd求最短路中的最长路 | 最后一个小朋友吃完的时间)

GF同学和猫咪得到了一个特别的玩具,这个玩具由n个金属环(编号为1—n),和m条绳索组成,每条绳索连接两个不同的金属环,并且长度相同。GF左手拿起金属环L,猫咪右手(或者说:爪)拿起金属环R(L不等于R),然后尽量的向两边拉,他希望选择合适的L和R,使得被拉紧的绳索尽量的多。注:如果像样例那样1-2-4-3-5-6-1构成了一个环,我们认为拉1和3时只能拉紧一边(1-2-4-3或3-5-6-1)而不算全部拉紧。通俗地说,也就是当两个环之间有几个绳索数相等的连接方法时,只算其中一条连接方法拉紧,不算全部

2020-08-31 16:12:48 417

原创 【模拟】C006_LQ_跑步训练 & 字符串编码(充分利用剩余体力 | 小贪心)

一、跑步训练小明要做一个跑步训练。初始时,小明充满体力,体力值计为 10000。如果小明跑步,每分钟损耗600 的体力。如果小明休息,每分钟增加 300 的体力。体力的损耗和增加都是均匀变化的。小明打算跑一分钟、休息一分钟、再跑一分钟、再休息一分钟……如此循环。如果某个时刻小明的体力到达 0,他就停止锻炼。请问小明在多久后停止锻炼。为了使答案为整数,请以秒为单位输出答案3880#include<bits/stdc++.h>using namespace std;typedef

2020-08-31 13:54:32 237

原创 【分治】A001_LC_将子数组重新排序得到同一个二叉查找树的方案数(分治+组合数)

给你一个数组 nums 表示 1 到 n 的一个排列。我们按照元素在 nums 中的顺序依次插入一个初始为空的二叉查找树(BST)。请你统计将 nums 重新排序后,统计满足如下条件的方案数:重排后得到的二叉查找树与 nums 原本数字顺序得到的二叉查找树相同。比方说,给你 nums = [2,1,3],我们得到一棵 2 为根,1 为左孩子,3 为右孩子的树。数组 [2,3,1] 也能得到相同的 BST,但 [3,2,1] 会得到一棵不同的 BST 。请你返回重排 nums 后,与原数组 nums 得到

2020-08-31 09:13:39 255

原创 【搜索】B086_LC_使陆地分离的最少天数(暴力删除1,bfs找连通块)

给你一个由若干 0 和 1 组成的二维网格 grid ,其中 0 表示水,而 1 表示陆地。岛屿由水平方向或竖直方向上相邻的 1 (陆地)连接形成。如果 恰好只有一座岛屿 ,则认为陆地是 连通的 ;否则,陆地就是 分离的 。一天内,可以将任何单个陆地单元(1)更改为水单元(0)。返回使陆地分离的最少天数方法一:复杂度分析Time:O()O()O(),Space:O()O()O()...

2020-08-31 07:55:59 221

原创 【线性 dp】B012_LC_乘积为正数的最长子数组长度(分类讨论负数和正数)

给你一个整数数组 nums ,请你求出乘积为正数的最长子数组的长度。一个数组的子数组是由原数组中零个或者更多个连续数字组成的数组。请你返回乘积为正数的最长子数组长度。示例 1:输入:nums = [1,-2,-3,4]输出:4解释:数组本身乘积就是正数,值为 24 。示例 2:输入:nums = [0,1,-2,-3,-4]输出:3解释:最长乘积为正数的子数组为 [1,-2,-3] ,乘积为 6 。注意,我们不能把 0 也包括到子数组中,因为这样乘积为 0 ,不是正数提示:1

2020-08-31 00:05:33 172

原创 【并查集】A021_LQ_网络分析(建树+树形dp)

小明正在做一个网络实验。他设置了 n 台电脑,称为节点,用于收发和存储数据。初始时,所有节点都是独立的,不存在任何连接。小明可以通过网线将两个节点连接起来,连接后两个节点就可以互相通信了。两个节点如果存在网线连接,称为相邻。小明有时会测试当时的网络,他会在某个节点发送一条信息,信息会发送到每个相邻的节点,之后这些节点又会转发到自己相邻的节点,直到所有直接或间接相邻的节点都收到了信息。所有发送和接收的节点都会将信息存储下来。一条信息只存储一次。给出小明连接和测试的过程,请计算出每个节点存储信息的大

2020-08-30 16:45:19 254

原创 【字符串】A058_LC_最短回文串(找逆序串的最短后缀)

给定一个字符串 s,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。示例 1:输入: "aacecaaa"输出: "aaacecaaa"示例 2:输入: "abcd"输出: "dcbabcd"方法一:最烦的就是可以添加字符串,添加的字符不难想到,即:要使 s 为回文串,那添加的那若干个字符一定是与 s 的后半部分的几个字符相同,故可先得到 s 的翻转串 rs,然后在 rs 中找一个最短的后缀 suf_re,如果 suf_rs 是 s 的子串,则非

2020-08-30 00:10:25 275

原创 【模拟】C005_LQ_海盗与金币(递归模拟12次)

12名海盗在一个小岛上发现了大量的金币,后统计一共有将近5万枚。登上小岛是在夜里,天气又不好。由于各种原因,有的海盗偷拿了很多,有的拿了很少。后来为了“均贫富”,头目提出一个很奇怪的方案:每名海盗都把自己拿到的金币放在桌上。然后开始一个游戏。金币最多的海盗要拿出自己的金币来补偿其他人。补偿的额度为正好使被补偿人的金币数目翻番(即变为原来的2倍)。游戏要一直进行下去,直到无法完成。(当金币数最多的不只一个人或最多金币的人持有金币数不够补偿他人的)游戏就这样紧张地进行了,一直进行了12轮,恰好每

2020-08-29 17:17:56 248

原创 【思维题】B053_LQ_连号区间数 & 最大降雨量(记录区间最大最小值 / 不知道有没有更优解法)

小明这些天一直在思考这样一个奇怪而有趣的问题:在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是: 如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增排序后能得到一个长度为R-L+1的“连续”数列,则称这个区间连号区间。当N很小的时候,小明可以很快地算出答案,但是当N变大的时候,问题就不是那么简单了,现在小明需要你的帮助。输入第一行是一个正整数N (1 <= N <= 50000), 表示全排列的规模。第二行是N个不同的数字Pi(1 <= P

2020-08-29 11:50:31 220

原创 【位运算】C018_LQ_明码(C++ bitset<k> / 人工转二进制)

汉字的字形存在于字库中,即便在今天,16点阵的字库也仍然使用广泛。16点阵的字库把每个汉字看成是16x16个像素信息。并把这些信息记录在字节中。一个字节可以存储8位信息,用32个字节就可以存一个汉字的字形了。把每个字节转为2进制表示,1表示墨迹,0表示底色。每行2个字节,一共16行,布局是:第1字节,第2字节第3字节,第4字节…第31字节, 第32字节这道题目是给你一段多个汉字组成的信息,每个汉字用32个字节表示,这里给出了字节作为有符号整数的值。题目的要求隐藏在这些信息中。你的任务是复

2020-08-28 23:04:03 203

原创 手链样式 & 平方末尾

小明有3颗红珊瑚,4颗白珊瑚,5颗黄玛瑙。他想用它们串成一圈作为手链,送给女朋友。现在小明想知道:如果考虑手链可以随意转动或翻转,一共有多少不同的组合样式?1170方法一:全排列由于转动难以模拟,故直接让初始字符串 s 进行拼接,然后存到 vector 中,如果 s 转动过,则一定可以在 vector 中的某个字符串中找到,翻转也是如此,vector 使用来去重的…#include<bits/stdc++.h>using namespace std;typedef long lo

2020-08-27 23:52:32 227

原创 【数学】C107_LQ_报纸页数 & 平方怪圈 & 猴子分香蕉 & 方格计数 & 矩形切割(归纳法 | 打印归纳)

X星球日报和我们地球的城市早报是一样的,都是一些单独的纸张叠在一起而已。每张纸印有4版。比如,某张报纸包含的4页是:5,6,11,12,可以确定它应该是最上边的第2张报纸。我们在太空中捡到了一张X星球的报纸,4个页码分别:1125,1126,1727,1728请你计算这份报纸一共多少页(也就是最大页码,并不是用了几张纸哦)?请填写表示总页数的数字。方法一:归纳法抱歉我不常看报,这个一张报纸四版是指啥?我虽然是指 4 页,但可能报纸的四个页码并不是(1,2,3,4)都是连着的,故我认为一张报纸的页数

2020-08-27 19:00:40 491

原创 【思维题】C052_LQ_交换瓶子(一直交换)

有N个瓶子,编号 1 ~ N,放在架子上。比如有5个瓶子:2 1 3 5 4,要求每次拿起2个瓶子,交换它们的位置。经过若干次后,使得瓶子的序号为:1 2 3 4 5对于这么简单的情况,显然,至少需要交换2次就可以复位。如果瓶子更多呢?你可以通过编程来解决。输入输入存在多组测试数据,对于每组测试数据:第一行:一个正整数N(N<10000), 表示瓶子的数目第二行:N个正整数,用空格分开,表示瓶子目前的排列情况输出对于每组测试数据输出一行,包含一个正整数表示答案样例输入53 1

2020-08-27 17:57:41 244

原创 【字符串】C057_LQ_Fibonacci 数列与黄金分割 & 生成回文数 & 复数幂(大数除法+大数保留n为小数)

Fibonacci 数列是非常著名的数列:F[1] = 1,F[2] = 1,对于 i > 3,F[i] = F[i − 1] + F[i − 2]Fibonacci 数列有一个特殊的性质,前一项与后一项的比值,F[i]/F[i + 1], 会趋近于黄金分割。为了验证这一性质,给定正整数 N,请你计算 F[N]/F[N + 1],并保留 8 位 小数。输入一个正整数 N。(1 ≤ N ≤ 2000000000)输出F[N]/F[N + 1]。答案保留 8 位小数。样例输入2样例

2020-08-26 20:57:18 270

原创 【双指针】B031_LQ_人物相关性分析(细节+模拟)

小明正在分析一本小说中的人物相关性。他想知道在小说中 Alice 和 Bob 有多少次同时出现。更准确的说,小明定义 Alice 和 Bob“同时出现”的意思是:在小说文本 中 Alice 和 Bob 之间不超过 K 个字符。例如以下文本: This is a story about Alice and Bob. Alice wants to send a private message to Bob. 假设 K = 20,则 Alice 和 Bob 同时出现了 2 次,分别是”Alice and Bo

2020-08-26 19:03:46 205

原创 【数学】B106_LQ_等差数列 & 等差素数列(gcd算共差+通项公式 / 二分找公差)

数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一部分的数列,只记得其中 N 个整数。现在给出这 N 个整数,小明想知道包含这 N 个整数的最短的等差数列有几项?输入输入的第一行包含一个整数 N。 第二行包含N个整数A1,A2,···,AN。(注意A1 ∼AN并不一定是按等差数列中的顺序给出)输出输出一个整数表示答案样例输入52 6 4 10 20样例输出10方法一:复杂度分析Time:O()O()O(),Space:O()O()O(),方法二:

2020-08-26 15:34:25 300

原创 【并查集】B020_LQ_修改数组(跳跃检查 / uf)

给定一个长度为 N 的数组 A = [A1, A2, · · · AN ],数组中有可能有重复出现 的整数。现在小明要按以下方法将其修改为没有重复整数的数组。小明会依次修改 A2,A3,··· ,AN。当修改 Ai 时,小明会检查 Ai 是否在 A1 ∼ Ai−1 中出现过。如果出现过,则 小明会给 Ai 加上 1 ;如果新的 Ai 仍在之前出现过,小明会持续给 Ai 加 1 ,直 到 Ai 没有在 A1 ∼ Ai−1 中出现过。当 AN 也经过上述修改之后,显然 A 数组中就没有重复的整数了。 现在

2020-08-26 11:54:56 222

原创 【模拟】B004_LQ_外卖店优先级(将每个店铺的订单时间点排序)

“饱了么”外卖系统中维护着 N 家外卖店,编号 1 ∼ N。每家外卖店都有 一个优先级,初始时 (0 时刻) 优先级都为 0。每经过 1 个时间单位,如果外卖店没有订单,则优先级会减少 1,最低减 到 0;而如果外卖店有订单,则优先级不减反加,每有一单优先级加 2。如果某家外卖店某时刻优先级大于 5,则会被系统加入优先缓存中;如果 优先级小于等于 3,则会被清除出优先缓存。给定 T 时刻以内的 M 条订单信息,请你计算 T 时刻时有多少外卖店在优 先缓存中。输入第一行包含 3 个整数 N、M 和

2020-08-26 10:42:09 296

原创 【状压 dp】B005_LQ_糖果(加速:预处理每包糖果的贡献)

糖果店的老板一共有 M 种口味的糖果出售。为了方便描述,我们将 M 种 口味编号 1 ∼ M小明希望能品尝到所有口味的糖果。遗憾的是老板并不单独出售糖果,而 是 K 颗一包整包出售。幸好糖果包装上注明了其中 K 颗糖果的口味,所以小明可以在买之前就知 道每包内的糖果口味。给定 N 包糖果,请你计算小明最少买几包,就可以品尝到所有口味的糖果。输入第一行包含三个整数 N、M 和 K接下来 N 行每行 K 这整数 T1, T2, · · · , TK,代表一包糖果的口输出一个整数表示答案。如果小明

2020-08-26 08:58:56 181

原创 【树】B056_LQ_完全二叉树的权值(利用性质求深度)

给定一棵包含 N 个节点的完全二叉树,树上每个节点都有一个权值,按从 上到下、从左到右的顺序依次是 A1, A2, · · · AN,如下图所示:现在小明要把相同深度的节点的权值加在一起,他想知道哪个深度的节点 权值之和最大?如果有多个深度的权值和同为最大,请你输出其中最小的深度。注:根的深度是 1.输入第一行包含一个整数 N。 第二行包含N个整数 A1,A2,··· AN输出输出一个整数代表答案。样例输入71 6 5 4 3 2 1样例输出2方法一:性质这题如果用 bfs 建

2020-08-25 22:46:14 213

原创 【搜索】B084_LQ_迷宫与陷阱(遇到.时k也要计数)

小明在玩一款迷宫游戏,在游戏中他要控制自己的角色离开一间由NxN个格子组成的2D迷宫。小明的起始位置在左上角,他需要到达右下角的格子才能离开迷宫。每一步,他可以移动到上下左右相邻的格子中(前提是目标格子可以经过)。迷宫中有些格子小明可以经过,我们用’.‘表示;有些格子是墙壁,小明不能经过,我们用’#'表示。此外,有些格子上有陷阱,我们用’X’表示。除非小明处于无敌状态,否则不能经过。有些格子上有无敌道具,我们用’%'表示。当小明第一次到达该格子时,自动获得无敌状态,无敌状态会持续K步。之后如

2020-08-25 22:12:07 270

原创 【模拟】C003_LQ_缩位求和(字符串加法)

在电子计算机普及以前,人们经常用一个粗略的方法来验算四则运算是否正确。比如:248 * 15 = 3720把乘数和被乘数分别逐位求和,如果是多位数再逐位求和,直到是1位数,得2 + 4 + 8 = 14 ==> 1 + 4 = 5;1 + 5 = 65 * 6而结果逐位求和为 35 * 6 的结果逐位求和与3符合,说明正确的可能性很大!!(不能排除错误)请你写一个计算机程序,对给定的字符串逐位求和:输入输入为一个由数字组成的串,表示n位数(n<1000);输出输出为一位数

2020-08-25 20:28:53 235

原创 【递推型 dp】A021_LQ_耐摔指数(摔坏或没坏)

x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机。各大厂商也就纷纷推出各种耐摔型手机。x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后才允许上市流通。x星球有很多高耸入云的高塔,刚好可以用来做耐摔测试。塔的每一层高度都是一样的,与地球上稍有不同的是,他们的第一层不是地面,而是相当于我们的2楼。如果手机从第7层扔下去没摔坏,但第8层摔坏了,则手机耐摔指数=7。特别地,如果手机从第1层扔下去就坏了,则耐摔指数=0。如果到了塔的最高层第n层扔没摔坏,则耐摔指数

2020-08-25 18:38:59 235

原创 【图论】B058_LQ_小朋友崇拜圈(拓扑排序+dfs求最大环)

班里N个小朋友,每个人都有自己最崇拜的一个小朋友(也可以是自己)。在一个游戏中,需要小朋友坐一个圈,每个小朋友都有自己最崇拜的小朋友在他的右手边。求满足条件的圈最大多少人?小朋友编号为1,2,3,…N输入输入第一行,一个整数N(3<N<100000)接下来一行N个整数,由空格分开。输出要求输出一个整数,表示满足条件的最大圈的人数。样例输入93 4 2 5 3 8 4 6 9样例输出4方法一:拓扑排序+dfs环上的结点的入度都非 0,可用 topo 排序将入度为

2020-08-25 17:24:52 235

原创 【双指针】B030_LQ_乘积最大(分类讨论)

给定N个整数A1, A2, … AN。请你从中选出K个数,使其乘积最大。请你求出最大的乘积,由于乘积可能超出整型范围,你只需输出乘积除以1000000009的余数。注意,如果X<0, 我们定义X除以1000000009的余数是负(-X)除以1000000009的余数。即:0-((0-x) % 1000000009)输入第一行包含两个整数N和K。以下N行每行一个整数Ai。输出一个整数,表示答案样例输入5 3 -100000 -10000 2 100000 100

2020-08-25 16:28:46 159

原创 【哈希表】B019_LQ_日志统计(反向思维)

小明维护着一个程序员论坛。现在他收集了一份"点赞"日志,日志共有N行。其中每一行的格式是:ts id 表示在ts时刻编号id的帖子收到一个"赞"。现在小明想统计有哪些帖子曾经是"热帖"。如果一个帖子曾在任意一个长度为D的时间段内收到不少于K个赞,小明就认为这个帖子曾是"热帖"。具体来说,如果存在某个时刻T满足该帖在[T, T+D)这段时间内(注意是左闭右开区间)收到不少于K个赞,该帖就曾是"热帖"。给定日志,请你帮助小明统计出所有曾是"热帖"的帖子编号。输入第一行包含三个整数N、D和K。以下

2020-08-25 10:56:26 190

原创 【完全背包】A006_LQ_包子凑数(欧几里得+正向背包)

小明几乎每天早晨都会在一家包子铺吃早餐。这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子每种蒸笼都有非常多笼,可以认为是无限笼。每当有顾客想买X个包子,卖包子的大叔就会选出若干笼包子来,使得这若干笼中恰好一共有X个包子。比如一共有3种蒸笼,分别能放3、4和5个包子。当顾客想买11个包子时,大叔就会选2笼3个的再加1笼5个的(也可能选出1笼3个的再加2笼4个的)。当然有时包子大叔无论如何也凑不出顾客想买的数量。比如一共有3种蒸笼,分别能放4、5和6个包子。而顾客想买7个包子时,大叔就凑不出来了

2020-08-24 20:46:58 247

原创 【二分】B031_LQ_分巧克力(h/len × w/len 是切分的巧克力数)

儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有N块巧克力,其中第i块是 Hi×WiH_i × W_iHi​×Wi​ 的方格组成的长方形。为了公平起见,小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们。切出的巧克力需要满足:形状是正方形,边长是整数大小相同例如一块6x5的巧克力可以切出6块2x2的巧克力或者2块3x3的巧克力。当然小朋友们都希望得到的巧克力尽可能大,你能帮小明计算出最大的边长是多少么?输入第一行包含两个整数N和K。(1 <

2020-08-24 18:47:26 199

原创 【前缀和】B014_LQ_k倍区间(烂公式转换)

给定一个长度为N的数列,A1, A2, … AN,如果其中一段连续的子序列Ai, Ai+1, … Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间。你能求出数列中总共有多少个K倍区间吗?输入第一行包含两个整数N和K。(1 <= N, K <= 100000)以下N行每行包含一个整数Ai。(1 <= Ai <= 100000)输出输出一个整数,代表K倍区间的数目。样例输入5 212345样例输出6方法一:前缀和s[i]

2020-08-24 17:37:00 177

原创 【搜索】B083_LQ_青蛙跳杯子(bfs+枚举所有位置)

X星球的流行宠物是青蛙,一般有两种颜色:白色和黑色。X星球的居民喜欢把它们放在一排茶杯里,这样可以观察它们跳来跳去。如下图,有一排杯子,左边的一个是空着的,右边的杯子,每个里边有一只青蛙。*WWWBBB其中,W字母表示白色青蛙,B表示黑色青蛙,*表示空杯子。X星的青蛙很有些癖好,它们只做3个动作之一跳到相邻的空杯子里。隔着1只其它的青蛙(随便什么颜色)跳到空杯子里。隔着2只其它的青蛙(随便什么颜色)跳到空杯子里。对于上图的局面,只要1步,就可跳成该局面:WWW*BBB本题的任务就是已

2020-08-24 11:58:34 199

原创 【图论】B057_LQ_分考场(图着色+尽量避免新开考场)

n个人参加某项特殊考试。为了公平,要求任何两个认识的人不能分在同一个考场。求是少需要分几个考场才能满足条件。输入第一行,一个整数n(1<n<100),表示参加考试的人数。第二行,一个整数m,表示接下来有m行数据以下m行每行的格式为:两个整数a,b,用空格分开 (1<=a,b<=n) 表示第a个人与第b个人认识。输出一行一个整数,表示最少分几个考场。样例输入581 21 31 42 32 42 53 44 5样例输出4方法一:复杂度分

2020-08-24 09:50:28 230

初一数学知识点汇总图.7z

参与《原力计划【第二季】— 打卡挑战》的文章入选【打卡挑战周榜】的博主,即可获得此勋章。参与《原力计划【第二季】— 打卡挑战》的文章入选【打卡挑战周榜】的博主,即可获得此勋章。参与《原力计划【第二季】— 打卡挑战》的文章入选【打卡挑战周榜】的博主,即可获得此勋章。

2020-05-20

icpc2019.pdf

icpc 基础,推荐一下!

2020-04-03

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除