上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 28 下一页
摘要: 多重背包问题可以用单调队列进行优化 原理见:提高课1.3.1 背包模型(一) 离题:6. 多重背包问题 III 单调队列的deque实现如下: #include<bits/stdc++.h> using namespace std; int v[1010]; int w[1010]; int s[1 阅读全文
posted @ 2022-05-19 21:45 80k 阅读(41) 评论(0) 推荐(0)
摘要: 1、在图的邻接表存储中,可以使用模拟链表法: const int N,M=2*N; h[N],e[M],ne[M],idx;//链表头/链表结点的序号/链表节点的下一个节点 void add(int a,int b) { e[idx]=b; ne[idx]=h[a]; h[a]=idx++;} 也可 阅读全文
posted @ 2022-05-01 20:05 80k 阅读(36) 评论(0) 推荐(0)
摘要: https://codingcompetitions.withgoogle.com/codejam/round/0000000000877b42/0000000000afdf76#problem 数学题,利用和的平方与平方的和以及交叉项的关系求解。 可以在k<=2的范围内得到一个有效的解。 #inc 阅读全文
posted @ 2022-05-01 17:00 80k 阅读(46) 评论(0) 推荐(0)
摘要: https://codingcompetitions.withgoogle.com/codejam/round/0000000000877b42/0000000000afe6a1#analysis 一道复杂的字符串拼接模拟题。 可以考虑对每个字符串进行预处理。 如果在middle的字符在其他字符串中 阅读全文
posted @ 2022-05-01 16:36 80k 阅读(52) 评论(0) 推荐(0)
摘要: 正方形经过任意的旋转(90°)和翻转后,只能有8种情况,而非4!种。 解释如下: http://www.360doc.com/content/18/0407/14/30048172_743530034.shtml 可以用4种旋转和1种翻转,遍历到这8中情况。 例题: LCP 58. 积木拼接 先处理 阅读全文
posted @ 2022-04-25 10:23 80k 阅读(402) 评论(0) 推荐(0)
摘要: 在进行普通的BFS时,会将新的节点加入队尾。 但是由于01BFS的路径长度可能为0,故使用双端队列记录节点。如果路径为0,则加入队头,否则加入队尾。 例题:LCP 56. 信物传送 leetcode 2290. 到达角落需要移除障碍物的最小数目 class Solution { public: in 阅读全文
posted @ 2022-04-25 08:31 80k 阅读(46) 评论(0) 推荐(0)
摘要: 如果题目中数据较大,则尽可能将全部int替换为long long。因为很多地方都可能出现int*int爆int的情况 阅读全文
posted @ 2022-04-15 19:50 80k 阅读(72) 评论(0) 推荐(0)
摘要: 基数排序的思想是,对于一个给定的基数,每次排序构建基数数量的桶,并将数分配到桶里。 可以用count数组对桶中的数量计数,并转化为前缀数组记录桶中数字的位置。 LeetCode 164. 最大间距题解 class Solution { public: int maximumGap(vector<in 阅读全文
posted @ 2022-04-15 10:19 80k 阅读(42) 评论(0) 推荐(0)
摘要: 1、分治 2、记忆化 3、动态规划 https://codingcompetitions.withgoogle.com/codejam/round/0000000000877ba5/0000000000aa9280#problem #include <bits/stdc++.h> using nam 阅读全文
posted @ 2022-04-11 21:19 80k 阅读(44) 评论(0) 推荐(0)
摘要: 想要将集合中数字分为两个总和相等的集合,可以使用启发式优化的方式。 方法为:将数字依次加入到,两个集合中,当前和较小的集合。 这样可以将两个集合的误差降到一个数字的大小(|n|)级别,而非sum(|n|). 阅读全文
posted @ 2022-04-11 11:41 80k 阅读(80) 评论(0) 推荐(0)
上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 28 下一页