
算法
文章平均质量分 56
葛济维的博客
总想日更博客的小白
展开
-
字节跳动二面算法题 ——leecode 1044. 最长重复子串(字符串哈希、二分法)
最长重复子串给你一个字符串 s ,考虑其所有 重复子串 :即,s 的连续子串,在 s 中出现 2 次或更多次。这些出现之间可能存在重叠。返回 任意一个 具有最长长度的重复子串。如果 s 不含重复子串,那么答案为 “” 。示例 1:输入:s = “banana”输出:“ana”示例 2:输入:s = “abcd”输出:""题解字符串哈希存储字符串,二分法二分要求的最长长度的重复子串的长度,尽量取最右侧的值。set 集合存储字符串哈希值判断是否有字符串重复,如果重复二分返回 true,否则原创 2022-01-12 17:41:09 · 488 阅读 · 0 评论 -
打乱字母(贪心、二分)————USACO 2012 December Contest Bronze
打乱字母农夫约翰将按字典序排列的 N 头奶牛的名字列表贴在了牛棚的门上。每个奶牛的名字都由一个长度介于 1 到 20 之间的由小写字母构成的唯一字符串表示。麻烦制造者贝茜将列表中的奶牛名字重新排序打乱了列表。此外,她还对每头奶牛的名字中的字母顺序进行了重新排列(也可能保持不变)。给定修改过后的列表,请帮助约翰确定列表中的每个名字可能出现在原始列表中的最低和最高位置。输入格式第一行包含整数 N。接下来 N 行,按照修改过后列表的顺序,给出了修改过后的奶牛的名字。输出格式共 N 行,第 i原创 2022-01-10 11:43:31 · 630 阅读 · 0 评论 -
岛(思维题、枚举、离散化)——USACO 2012 US Open Bronze Division
岛每当下雨时,农夫约翰的田地总是被洪水淹没。由于田地不是完全水平的,所以一些地方充满水后,留下了许多被水隔开的“岛”。约翰的田地被描述为由 N 个连续高度值 H1,…,HN 指定的一维场景。假设该场景被无限高的围墙包围着,请考虑暴雨期间发生的情况:最低处首先被水覆盖,形成一些不连贯的岛,随着水位的不断上升,这些岛最终都会被覆盖。一旦水位等于一块田地的高度,那块田地就被认为位于水下。上图显示了一个示例:在左图中,我们只加入了刚好超过 1 单位的水,此时剩下 4 个岛(最大岛屿剩余数量),而在右原创 2022-01-07 18:18:59 · 257 阅读 · 0 评论 -
拖拉机(双端队列的广搜)——USACO 2012 March Contest Silver Division
拖拉机干了一整天的活,农夫约翰完全忘记了他把拖拉机落在田地中央了。他的奶牛非常调皮,决定对约翰来场恶作剧。她们在田地的不同地方放了 N 捆干草,这样一来,约翰想要开走拖拉机就必须先移除一些干草捆。拖拉机的位置以及 N 捆干草的位置都是二维平面上的整数坐标点。拖拉机的初始位置上没有干草捆。当约翰驾驶拖拉机时,他只能沿平行于坐标轴的方向(北,南,东和西)移动拖拉机,并且拖拉机必须每次移动整数距离。例如,驾驶拖拉机先向北移动 2 单位长度,然后向东移动 3 单位长度。拖拉机无法移动到干草捆占据的位原创 2022-01-07 16:07:34 · 531 阅读 · 0 评论 -
电路维修(搜索、双端队列BFS)————《算法竞赛进阶指南》
电路维修达达是来自异世界的魔女,她在漫无目的地四处漂流的时候,遇到了善良的少女翰翰,从而被收留在地球上。翰翰的家里有一辆飞行车。有一天飞行车的电路板突然出现了故障,导致无法启动。电路板的整体结构是一个 R 行 C 列的网格(R,C≤500),如下图所示。每个格点都是电线的接点,每个格子都包含一个电子元件。电子元件的主要部分是一个可旋转的、连接一条对角线上的两个接点的短电缆。在旋转之后,它就可以连接另一条对角线的两个接点。电路板左上角的接点接入直流电源,右下角的接点接入飞行车的发动装置。达原创 2022-01-07 15:43:26 · 631 阅读 · 0 评论 -
4202. 穿过圆(倍增、LCA、bitset)——AcWing,第31场周赛
穿过圆在一个二维平面上有 n 个点和 m 个圆。点的编号为 1∼n。不存在某个点恰好在某个圆的边上的情况。任意两个圆之间没有公共点。现在,请你回答 k 个询问。每个询问给定两个点 ai,bi,并请你回答从点 ai 出发沿任意连续路径到达点 bi,至少需要穿过多少个圆。输入格式第一行包含三个整数 n,m,k。接下来 n 行,其中第 i 行包含两个整数 xi,yi,表示点 i 的坐标为 (xi,yi)。注意,点的位置可以重合。再接下来 m 行,其中第 i 行包含三个整数 ri,cxi,cyi原创 2021-12-26 17:49:40 · 316 阅读 · 0 评论 -
线性同余方程(扩展欧几里得算法)模板题
线性同余方程给定 n 组数据 ai,bi,mi,对于每组数求出一个 xi,使其满足 ai×xi≡bi(modmi),如果无解则输出 impossible。输入格式第一行包含整数 n。接下来 n 行,每行包含一组数据 ai,bi,mi。输出格式输出共 n 行,每组数据输出一个整数表示一个满足条件的 xi,如果无解则输出 impossible。每组数据结果占一行,结果可能不唯一,输出任意一个满足条件的结果均可。输出答案必须在 int 范围之内。数据范围1≤n≤10^5,1≤ai,bi,mi原创 2021-11-30 22:38:23 · 487 阅读 · 0 评论 -
4080. 第k个数(二分搜索)————acwing杯27场周赛
第k个数给定一个 n×m 的方格矩阵,每个方格内都有一个整数元素。其中第 i 行第 j 列的方格中的元素为 i×j(行和列都从 1 开始编号)。现在,需要你将这 n×m 个整数按照非严格单调递增的顺序一一写出。请问,你写出的第 k 个整数是多少。输入格式一行,三个整数 n,m,k。输出格式一行,输出你写出的第 k 个整数。数据范围前 6 个测试点满足 1≤n,m≤10。所有测试点满足 1≤n,m≤5×10^5,1≤k≤n×m。输入样例1:2 2 2输出样例1:2输入样例2:原创 2021-11-28 16:40:02 · 603 阅读 · 0 评论 -
X的因子链(筛质数、分解质因数、组合计数)————《信息学奥赛一本通》 , POJ
X的因子链输入正整数 X,求 X 的大于 1 的因子组成的满足任意前一项都能整除后一项的严格递增序列的最大长度,以及满足最大长度的序列的个数。输入格式输入包含多组数据,每组数据占一行,包含一个正整数表示 X。输出格式对于每组数据,输出序列的最大长度以及满足最大长度的序列的个数。每个结果占一行。数据范围1≤X≤220输入样例:23410100输出样例:1 11 12 12 24 6题解思路由算数基本定理得X一定可以拆分成多个质数的乘积,序列可以以一个质因数开头,每原创 2021-11-26 19:55:25 · 682 阅读 · 1 评论 -
4078. 01串(DP)
01串给定一个整数 k。现在,我们可以对 01 字符串进行如下操作:选择其中恰好 k 个连续的 1,将它们都变为 0。如果一个 01 字符串可以通过若干次上述操作,变为一个全 0 字符串,那么就称这个字符串很优秀。本题共需要回答 T 组询问,每组询问给定两个整数 l,r,并请你计算长度在 [l,r] 范围内的所有 01 字符串中优秀字符串的数量。输入格式第一行包含两个整数 T 和 k。接下来 T 行,每行包含两个整数 l,r。输出格式共 T 行,第 i 行输出第 i 组询问的答案对 10原创 2021-11-21 09:58:59 · 1093 阅读 · 0 评论 -
大臣的旅费(树的直径、dfs、bfs、树形dp)——第四届蓝桥杯省赛C++A组
大臣的旅费很久以前,T王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。同时,如果不重复经过大城市,从首都到达每个大城市的方案都是唯一的。J是T国重要大臣,他巡查于各大城市之间,体察民情。所以,从一个城市马不停蹄地到另一个城市成了J最常做的事情。他有一个钱袋,用于存放往来城市间的路费。聪明的J发现,如果不在某个城市停下来修整,在连续行原创 2021-11-20 11:00:30 · 149 阅读 · 0 评论 -
红与黑(BFS、Flood Fill)——《信息学奥赛一本通》
红与黑有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻(上下左右四个方向)的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。输入格式输入包括多个数据集合。每个数据集合的第一行是两个整数 W 和 H,分别表示 x 方向和 y 方向瓷砖的数量。在接下来的 H 行中,每行包括 W 个字符。每个字符表示一块瓷砖的颜色,规则如下1)‘.’:黑色的瓷砖;2)‘#’:红色的瓷砖;3)‘@’:黑色的瓷砖,并且你站在这块瓷砖上。该字符在每个原创 2021-11-19 09:33:43 · 142 阅读 · 0 评论 -
置换群问题—交换瓶子(图论、环、置换群、贪心)——第七届蓝桥杯省赛C++B组
交换瓶子有 N 个瓶子,编号 1∼N,放在架子上。比如有 5 个瓶子:2 1 3 5 4要求每次拿起 2 个瓶子,交换它们的位置。经过若干次后,使得瓶子的序号为:1 2 3 4 5对于这么简单的情况,显然,至少需要交换 22 次就可以复位。如果瓶子更多呢?你可以通过编程来解决。输入格式第一行包含一个整数 N,表示瓶子数量。第二行包含 N 个整数,表示瓶子目前的排列状况。输出格式输出一个正整数,表示至少交换多少次,才能完成排序。数据范围1≤N≤10000输入样例1:53原创 2021-11-18 23:14:25 · 444 阅读 · 0 评论 -
日志统计(滑动窗口,双指针问题)——第九届蓝桥杯省赛C++B组
日志统计小明维护着一个程序员论坛。现在他收集了一份”点赞”日志,日志共有 N 行。其中每一行的格式是:ts id表示在 ts 时刻编号 id 的帖子收到一个”赞”。现在小明想统计有哪些帖子曾经是”热帖”。如果一个帖子曾在任意一个长度为 D 的时间段内收到不少于 K 个赞,小明就认为这个帖子曾是”热帖”。具体来说,如果存在某个时刻 T 满足该帖在 [T,T+D) 这段时间内(注意是左闭右开区间)收到不少于 K 个赞,该帖就曾是”热帖”。给定日志,请你帮助小明统计出所有曾是”热帖”的帖子编号。原创 2021-11-18 19:45:28 · 120 阅读 · 0 评论 -
螺旋折线(数学找规律题)——第九届蓝桥杯省赛C++B组
如下图所示的螺旋折线经过平面上所有整点恰好一次。对于整点 (X,Y),我们定义它到原点的距离 dis(X,Y) 是从原点到 (X,Y) 的螺旋折线段的长度。例如 dis(0,1)=3,dis(−2,−1)=9给出整点坐标 (X,Y),你能计算出 dis(X,Y) 吗?输入格式包含两个整数 X,Y。输出格式输出一个整数,表示 dis(X,Y)。数据范围−109≤X,Y≤109输入样例:0 1输出样例:3题解分析:#include <iostream>#includ原创 2021-11-18 17:03:54 · 513 阅读 · 0 评论 -
三体攻击(三维前缀和、三维差分)——第九届蓝桥杯省赛C++A组
三体攻击三体人将对地球发起攻击。为了抵御攻击,地球人派出了 A×B×C 艘战舰,在太空中排成一个 A 层 B 行 C 列的立方体。其中,第 i 层第 j 行第 k 列的战舰(记为战舰 (i,j,k))的生命值为 d(i,j,k)。三体人将会对地球发起 m 轮“立方体攻击”,每次攻击会对一个小立方体中的所有战舰都造成相同的伤害。具体地,第 t 轮攻击用 7 个参数 lat,rat,lbt,rbt,lct,rct,ht 描述;所有满足 i∈[lat,rat],j∈[lbt,rbt],k∈[lct,r原创 2021-11-17 22:59:56 · 790 阅读 · 0 评论 -
4074. 铁路与公路(Floyd算法,单源最短路)
4074. 铁路与公路某国家有 n 个城市(编号 1∼n)和 m 条双向铁路。每条铁路连接两个不同的城市,没有两条铁路连接同一对城市。除了铁路以外,该国家还有公路。对于每对不同的城市 x,y,当且仅当它们之间没有铁路时,它们之间会存在一条双向公路。经过每条铁路或公路都需要花费 1 小时的时间。现在有一列火车和一辆汽车同时离开城市 1,它们的目的地都是城市 n。它们不会在途中停靠(但是可以在城市 n 停靠)。火车只能沿铁路行驶,汽车只能沿公路行驶。请你为它们规划行进路线,每条路线中可重复经过原创 2021-11-14 22:12:45 · 282 阅读 · 0 评论 -
线段树模板题——动态求连续区间和(《信息学奥赛一本通》)
给定 n 个数组成的一个数列,规定有两种操作,一是修改某个元素,二是求子数列 [a,b] 的连续和。输入格式第一行包含两个整数 n 和 m,分别表示数的个数和操作次数。第二行包含 n 个整数,表示完整数列。接下来 m 行,每行包含三个整数 k,a,b (k=0,表示求子数列[a,b]的和;k=1,表示第 a 个数加 b)。数列从 1 开始计数。输出格式输出若干行数字,表示 k=0 时,对应的子数列 [a,b] 的连续和。数据范围1≤n≤100000,1≤m≤100000,1≤a≤b≤n原创 2021-11-12 20:41:38 · 485 阅读 · 0 评论 -
(树状数组的应用)数星星——《信息学奥赛一本通》 , Ural 1028
天空中有一些星星,这些星星都在不同的位置,每个星星有个坐标。如果一个星星的左下方(包含正左和正下)有 k 颗星星,就说这颗星星是 k 级的。1.png例如,上图中星星 5 是 3 级的(1,2,4 在它左下),星星 2,4 是 1 级的。例图中有 1 个 0 级,2 个 1 级,1 个 2 级,1 个 3 级的星星。给定星星的位置,输出各级星星的数目。换句话说,给定 N 个点,定义每个点的等级是在该点左下方(含正左、正下)的点的数目,试统计每个等级有多少个点。输入格式第一行一个整数 N,表示原创 2021-11-12 17:35:15 · 120 阅读 · 0 评论 -
(模拟)1241. 外卖店优先级——第十届蓝桥杯省赛C++A/C组,
1241. 外卖店优先级“饱了么”外卖系统中维护着 N 家外卖店,编号 1∼N。每家外卖店都有一个优先级,初始时 (0 时刻) 优先级都为 0。每经过 1 个时间单位,如果外卖店没有订单,则优先级会减少 1,最低减到 0;而如果外卖店有订单,则优先级不减反加,每有一单优先级加 2。如果某家外卖店某时刻优先级大于 5,则会被系统加入优先缓存中;如果优先级小于等于 3,则会被清除出优先缓存。给定 T 时刻以内的 M 条订单信息,请你计算 T 时刻时有多少外卖店在优先缓存中。输入格式第一行包含 3原创 2021-11-12 11:19:53 · 196 阅读 · 0 评论 -
788. 逆序对的数量(分治思想、利用归并排序求逆序对 详细思路阐述)
给定一个长度为 n 的整数数列,请你计算数列中的逆序对的数量。逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i<j 且 a[i]>a[j],则其为一个逆序对;否则不是。输入格式第一行包含整数 n,表示数列的长度。第二行包含 n 个整数,表示整个数列。输出格式输出一个整数,表示逆序对的个数。数据范围1≤n≤100000,数列中的元素的取值范围 [1,109]。输入样例:62 3 4 5 6 1输出样例:5题目思路:此题利用归并排序解决逆序对问题原创 2021-11-10 21:44:22 · 495 阅读 · 0 评论 -
1231. 航班时间——第九届蓝桥杯省赛C++A组
1231. 航班时间小 h 前往美国参加了蓝桥杯国际赛。小 h 的女朋友发现小 h 上午十点出发,上午十二点到达美国,于是感叹到“现在飞机飞得真快,两小时就能到美国了”。小 h 对超音速飞行感到十分恐惧。仔细观察后发现飞机的起降时间都是当地时间。由于北京和美国东部有 12 小时时差,故飞机总共需要 14 小时的飞行时间。不久后小 h 的女朋友去中东交换。小 h 并不知道中东与北京的时差。但是小 h 得到了女朋友来回航班的起降时间。小 h 想知道女朋友的航班飞行时间是多少。对于一个可能跨时原创 2021-11-10 14:41:25 · 309 阅读 · 0 评论 -
归并排序模板题
归并排序模板题给定你一个长度为 n 的整数数列。请你使用归并排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式输入共两行,第一行包含整数 n。第二行包含 n 个整数(所有整数均在 1∼109 范围内),表示整个数列。输出格式输出共一行,包含 n 个整数,表示排好序的数列。数据范围1≤n≤100000输入样例:53 1 2 4 5输出样例:1 2 3 4 5#include <iostream>#include <cstring>原创 2021-11-09 11:35:20 · 138 阅读 · 0 评论 -
1236. 递增三元组(枚举、桶排序、前缀和)——第九届蓝桥杯省赛B组
递增三元组给定三个整数数组A=[A1,A2,…AN],B=[B1,B2,…BN],C=[C1,C2,…CN],请你统计有多少个三元组 (i,j,k) 满足:1≤i,j,k≤NAi<Bj<Ck输入格式第一行包含一个整数 N。第二行包含 N 个整数 A1,A2,…AN。第三行包含 N 个整数 B1,B2,…BN。第四行包含 N 个整数 C1,C2,…CN。输出格式一个整数表示答案。数据范围1≤N≤10^5,0≤Ai,Bi,Ci≤10^5输入样例:31 1 .原创 2021-11-08 12:52:42 · 309 阅读 · 0 评论 -
连号区间数——第四届蓝桥杯省赛C++B组
连号区间数小明这些天一直在思考这样一个奇怪而有趣的问题:在 1∼N 的某个排列中有多少个连号区间呢?这里所说的连号区间的定义是:如果区间 [L,R] 里的所有元素(即此排列的第 L 个到第 R 个元素)递增排序后能得到一个长度为 R−L+1 的“连续”数列,则称这个区间连号区间。当 N 很小的时候,小明可以很快地算出答案,但是当 N 变大的时候,问题就不是那么简单了,现在小明需要你的帮助。输入格式第一行是一个正整数 N,表示排列的规模。第二行是 N 个不同的数字 Pi,表示这 N 个数字的某原创 2021-11-07 15:43:23 · 131 阅读 · 0 评论 -
1214. 波动数列——第五届蓝桥杯省赛C++A组(动态规划难题)
1214. 波动数列观察这个数列:1 3 0 2 -1 1 -2 …这个数列中后一项总是比前一项增加2或者减少3,且每一项都为整数。栋栋对这种数列很好奇,他想知道长度为 n 和为 s 而且后一项总是比前一项增加 a 或者减少 b 的整数数列可能有多少种呢?输入格式共一行,包含四个整数 n,s,a,b,含义如前面所述。输出格式共一行,包含一个整数,表示满足条件的方案数。由于这个数很大,请输出方案数除以 100000007 的余数。数据范围1≤n≤1000,−109≤s≤109,1≤a原创 2021-11-07 12:49:40 · 263 阅读 · 0 评论 -
(4维动态规划dp问题)地宫取宝——第五届蓝桥杯省赛C++A/B/C组
1212. 地宫取宝X 国王有一个地宫宝库,是 n×m 个格子的矩阵,每个格子放一件宝贝,每个宝贝贴着价值标签。地宫的入口在左上角,出口在右下角。小明被带到地宫的入口,国王要求他只能向右或向下行走。走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿)。当小明走到出口时,如果他手中的宝贝恰好是 k 件,则这些宝贝就可以送给小明。请你帮小明算一算,在给定的局面下,他有多少种不同的行动方案能获得这 k 件宝贝。输入格式第一行 3 个整数,n,m,原创 2021-11-06 22:05:25 · 118 阅读 · 0 评论 -
DP经典问题———最长上升子序列(动态规划、线性DP)
895. 最长上升子序列给定一个长度为 N 的数列,求数值严格单调递增的子序列的长度最长是多少。输入格式第一行包含整数 N。第二行包含 N 个整数,表示完整序列。输出格式输出一个整数,表示最大长度。数据范围1≤N≤1000,−109≤数列中的数≤109输入样例:73 1 2 1 8 5 6输出样例:4题目思路:设dp[i]dp[i]dp[i]表示为以 第 i 个整数结尾的最长上升子序列的长度集合:以结尾倒数第二个整数划分每种情况,倒数第二个整数可以是从 1 ~ i-1属性原创 2021-11-03 21:59:11 · 176 阅读 · 0 评论 -
激光炸弹(二维前缀和)——《算法竞赛进阶指南》, HNOI2003
99. 激光炸弹地图上有 N 个目标,用整数 Xi,Yi 表示目标在地图上的位置,每个目标都有一个价值 Wi。注意:不同目标可能在同一位置。现在有一种新型的激光炸弹,可以摧毁一个包含 R×R 个位置的正方形内的所有目标。激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆炸范围,即那个正方形的边必须和 x,y 轴平行。求一颗炸弹最多能炸掉地图上总价值为多少的目标。输入格式第一行输入正整数 N 和 R,分别代表地图上的目标数目和正方形的边长,数据用空格隔开。接下来 N 行,每行输入一组数据原创 2021-10-31 19:29:16 · 145 阅读 · 0 评论 -
leetcode 64 场双周赛 5899. 两个最好的不重叠活动 (二分搜索)
两个最好的不重叠活动给你一个下标从 0 开始的二维整数数组 events ,其中 events[i] = [startTimei, endTimei, valuei] 。第 i 个活动开始于 startTimei ,结束于 endTimei ,如果你参加这个活动,那么你可以得到价值 valuei 。你 最多 可以参加 两个时间不重叠 活动,使得它们的价值之和 最大 。请你返回价值之和的 最大值 。注意,活动的开始时间和结束时间是 包括 在活动时间内的,也就是说,你不能参加两个活动且它们之一的开始时.原创 2021-10-31 16:40:16 · 3474 阅读 · 0 评论 -
四平方和——(第七届蓝桥杯省赛C++A/B组,第七届蓝桥杯省赛JAVAB/C组)
四平方和四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多 4 个正整数的平方和。如果把 0 包括进去,就正好可以表示为 4 个数的平方和。比如:5=02+02+12+227=12+12+12+22对于一个给定的正整数,可能存在多种平方和的表示法。要求你对 4 个数排序:0≤a≤b≤c≤d并对所有的可能表示法按 a,b,c,d 为联合主键升序排列,最后输出第一个表示法。输入格式输入一个正整数 N。输出格式输出4个非负整数,按从小到大排序,中间用空格分开。数据范围0&原创 2021-10-29 16:50:21 · 187 阅读 · 0 评论 -
今日头条2019,笔试题 机器人跳跃问题 (二分法、数学推导)
机器人跳跃问题机器人正在玩一个古老的基于 DOS 的游戏。游戏中有 N+1 座建筑——从 0 到 N 编号,从左到右排列。编号为 0 的建筑高度为 0 个单位,编号为 i 的建筑高度为 H(i) 个单位。起初,机器人在编号为 0 的建筑处。每一步,它跳到下一个(右边)建筑。假设机器人在第 k 个建筑,且它现在的能量值是 E,下一步它将跳到第 k+1 个建筑。如果 H(k+1)>E,那么机器人就失去 H(k+1)−E 的能量值,否则它将得到 E−H(k+1) 的能量值。游戏目标是到达第原创 2021-10-29 10:53:28 · 271 阅读 · 0 评论 -
矩阵前缀和例题——796. 子矩阵的和(容斥原理、矩阵前缀和)
796. 子矩阵的和输入一个 n 行 m 列的整数矩阵,再输入 q 个询问,每个询问包含四个整数 x1,y1,x2,y2,表示一个子矩阵的左上角坐标和右下角坐标。对于每个询问输出子矩阵中所有数的和。输入格式第一行包含三个整数 n,m,q。接下来 n 行,每行包含 m 个整数,表示整数矩阵。接下来 q 行,每行包含四个整数 x1,y1,x2,y2,表示一组询问。输出格式共 q 行,每行输出一个询问的结果。数据范围1≤n,m≤1000,1≤q≤200000,1≤x1≤x2≤n,1≤y1原创 2021-10-28 20:57:46 · 412 阅读 · 0 评论 -
实数二分例题 790. 数的三次方根
790. 数的三次方根给定一个浮点数 n,求它的三次方根。输入格式共一行,包含一个浮点数 n。输出格式共一行,包含一个浮点数,表示问题的解。注意,结果保留 6 位小数。数据范围−10000≤n≤10000输入样例:1000.00输出样例:10.000000#include <iostream>#include <cstring>#include <algorithm>using namespace std;int main(){原创 2021-10-28 19:41:09 · 168 阅读 · 0 评论 -
每日一题 数的范围 (二分查找左边界和右边界)(模板题)
789. 数的范围给定一个按照升序排列的长度为 n 的整数数组,以及 q 个查询。对于每个查询,返回一个元素 k 的起始位置和终止位置(位置从 0 开始计数)。如果数组中不存在该元素,则返回 -1 -1。输入格式第一行包含整数 n 和 q,表示数组长度和询问个数。第二行包含 n 个整数(均在 1∼10000 范围内),表示完整数组。接下来 q 行,每行包含一个整数 k,表示一个询问元素。输出格式共 q 行,每行包含两个整数,表示所求元素的起始位置和终止位置。如果数组中不存在该元素,则返回原创 2021-10-28 19:34:12 · 138 阅读 · 0 评论 -
飞行员兄弟 ——《算法竞赛进阶指南》 枚举、位运算解决
飞行员兄弟“飞行员兄弟”这个游戏,需要玩家顺利的打开一个拥有 16 个把手的冰箱。已知每个把手可以处于以下两种状态之一:打开或关闭。只有当所有把手都打开时,冰箱才会打开。把手可以表示为一个 4×4 的矩阵,您可以改变任何一个位置 [i,j] 上把手的状态。但是,这也会使得第 i 行和第 j 列上的所有把手的状态也随着改变。请你求出打开冰箱所需的切换把手的次数最小值是多少。输入格式输入一共包含四行,每行包含四个把手的初始状态。符号 + 表示把手处于闭合状态,而符号 - 表示把手处于打开状态。原创 2021-10-28 11:17:54 · 137 阅读 · 0 评论 -
带分数 (第四届蓝桥杯省赛C++B/C组) 递归 搜索 剪枝
100 可以表示为带分数的形式:100=3+69258714100=3+\frac{69258}{714}100=3+71469258还可以表示为:100=82+3546197100=82+\frac{3546}{197}100=82+1973546注意特征:带分数中,数字 1∼9 分别出现且只出现一次(不包含 0)。类似这样的带分数,100 有 11 种表示法。输入格式一个正整数。输出格式输出输入数字用数码 1∼9 不重复不遗漏地组成带分数表示的全部种数。数据范围1≤N<10^原创 2021-10-27 13:22:40 · 186 阅读 · 0 评论 -
516. 最长回文子序列 - 力扣(LeetCode)动态规划,转移方程
最长回文子序列给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。示例 1:输入:s = “bbbab”输出:4解释:一个可能的最长回文子序列为 “bbbb” 。示例 2:输入:s = “cbbd”输出:2解释:一个可能的最长回文子序列为 “bb” 。提示:1 <= s.length <= 1000s 仅由小写英文字母组成题目解析:动态规划dp设dp[i][.原创 2021-10-25 20:37:53 · 159 阅读 · 0 评论 -
Codeforces Round #749 A Windblume 、B. Omkar and Heavenly Tree题解 (Div. 1 + Div. 2)
A. Windblume OdeYou have obtained the elegant bow known as the Windblume Ode. Inscribed in the weapon is an array of n (n≥3) positive distinct integers (i.e. different, no duplicates are allowed).Find the largest subset (i.e. having the maximum number of原创 2021-10-18 18:29:49 · 706 阅读 · 0 评论 -
AcWing杯 - 第 21 场周赛 ( 3997. 整数幂、 3998. 变成1 、3999. 最大公约数)
AcWing 3997. 整数幂给定两个整数 k 和 l,请判断是否存在一个正整数 n,满足 k^n=l。输入格式第一行包含整数 T,表示共有 T 组测试数据。每组数据占两行,第一行包含整数 k,第二行包含整数 l。输出格式每组数据输出一行结果,如果存在 n,则输出 YES,否则输出 NO。数据范围前三个测试点满足,2≤k,l≤100。所有测试点满足,1≤T≤10,2≤k,l≤2^31−1。输入样例:252538输出样例:YESNO题解:暴力枚举#include &l原创 2021-10-17 17:51:19 · 257 阅读 · 0 评论