随笔分类 - ICPC
摘要:https://www.luogu.com.cn/problem/P1955
阅读全文
摘要:https://ac.nowcoder.com/acm/contest/22904/1027 开了ll还见祖宗 注意x^2 + y2算完之后先判断有没有超4r2的范围,没有的话再计算z^2,算是对long long溢出的特判 #include<bits/stdc++.h> typedef long
阅读全文
摘要:https://ac.nowcoder.com/acm/contest/22904/1024 参考 https://www.luogu.com.cn/problem/solution/P2024 这是一个典型的并查集问题,可以通过“带有偏移的并查集”来解决。由于题目涉及食物链的关系,可以将“同类”与
阅读全文
摘要:https://ac.nowcoder.com/acm/contest/22904/1022 并查集:通过并查集找到所有与1连通的节点。 动态规划:使用01背包来处理这些与1连通的节点,在精力范围内求得最大利益。 #include <iostream> #include <vector> #incl
阅读全文
摘要:https://ac.nowcoder.com/acm/contest/22904/1010 思路来源: https://www.cnblogs.com/BlankYang/p/16459928.html @空白菌 思路描述: 输入处理:给定 n 个用户编号从 1 到 n,以及 m 条服务线,每条服
阅读全文
摘要:https://ac.nowcoder.com/acm/contest/22904/1004 1. 为什么要排序? 排序是为了先处理人数限制大的士兵。因为人数限制小的士兵会影响后续的选择,优先处理人数限制大的士兵可以让我们选出更多的士兵,最大化战斗力。 如果不排序,可能会先处理人数限制小的士兵,导致
阅读全文
摘要:https://ac.nowcoder.com/acm/contest/22669/L 要点: 利用pos实现懒排序,用另外一个数组记录被移动的元素现在的理论位置,而不进行物理操作。最后再排序 利用l和r标志标记最小的元素的索引。注意,这里l和r用的是相对位置,所以没有实际含义,只是表示哪个元素在哪
阅读全文
摘要:https://ac.nowcoder.com/acm/contest/22669/K 小技巧 遍历list且最后一个元素后没有多余空格 for (auto it = mylist.begin(); it != mylist.end(); ++it) { if (it != mylist.begin
阅读全文
摘要:对于这样一个题,最简单的想法就是用堆来模拟m次切割的过程,不过时间复杂度为O((n+m)log(n+m))(要用楼下所讲的进行优化),只能通过65%的数据。 https://ac.nowcoder.com/acm/contest/22669/J make_pair的对于三个元素比较大小并且获得最大值
阅读全文
摘要:https://ac.nowcoder.com/acm/contest/22669/I 堆的用法 Type: 队列中存储元素的类型。例如 int,double,pair<int, int> 等。 Container: 底层存储数据的容器类型,默认为 vector,但可以换成 deque 或其他容器。
阅读全文
摘要:https://ac.nowcoder.com/acm/contest/22669/D 这次直接ac,很爽 判断入栈后出栈序列的基本模板,需要熟练掌握 判断排列是否可行: 初始化 j = 1,表示当前需要匹配的排列序列下标。 for 循环遍历从 1 到 n 的车厢号,模拟将车厢入栈。 每次入栈后,通
阅读全文
摘要:https://ac.nowcoder.com/acm/contest/22669/B 两个char相加的结果是对应的ascii值相加 string和char相加的结果是字符串拼接的结果 试比较: string s = ""; char a = 'a'; char b = 'b'; char c =
阅读全文
摘要:https://ac.nowcoder.com/acm/contest/22669/A 考虑巧妙地反向遍历数组,获取一个元素之后元素地最大值,相比正序遍历,减少了遍历次数 #include <bits/stdc++.h> #include <chrono> using namespace std;
阅读全文
摘要:https://ac.nowcoder.com/acm/contest/22353/G 注意点:check中,不仅要判断用的joker数是否大于joker牌的数量,还要判断组成套数是否小于用的joker数量, 原文链接:https://blog.csdn.net/a_forever_dream/ar
阅读全文
摘要:https://ac.nowcoder.com/acm/contest/22353/F 注意点是count += length / mid,在题目中,count += length / mid 的含义是计算每根木棍可以被裁剪成多少段长度为 mid 的木棍。这里的整除是指 length / mid,它
阅读全文
摘要:https://ac.nowcoder.com/acm/contest/22353/E 有的时候50%通不过真的很无助orz 二分查找最小幸福值: 我们希望找出一个最大的 mid,即最小幸福值,使得 Bessie 能够在 d 天内吃完巧克力,并且每天的幸福值都不低于这个 mid。 我们可以通过二分查
阅读全文
摘要:https://ac.nowcoder.com/acm/contest/22353/C 正确的思路是二分查找 + 贪心。具体来说,可以通过二分来猜测一个最小的跳跃距离,然后通过贪心算法判断是否可以通过移除石头使所有的跳跃都满足这个最小跳跃距离。这种方法的核心是逐步逼近最优解,而不是直接删除前 m 小
阅读全文
摘要:https://ac.nowcoder.com/acm/contest/21763/1002 pow(2, ans) 计算的是2的ans次幂,但是 pow() 函数返回的是 double 类型的结果。由于 pow() 函数主要用于浮点数计算,它返回浮点数结果,而后你可能需要对该结果进行整数操作。如果
阅读全文
摘要:本质 最多有二十六个节点的树(假设只看小写英文字母)。空间换时间 nex[p]是一个节点,根据c的取值最多有26个分支,nex[p][c]存的是下一个节点 有意思的情况: 为什么Trie的树用数组实现,二叉树用指针实现: 当创建和使用Trie树时,以下是一般的步骤和操作: 创建Trie树的节点结构:
阅读全文
摘要:冗余连接 如果两个顶点属于相同的连通分量,则说明在遍历到当前的边之前,这两个顶点之间已经连通,因此当前的边导致环出现,为附加的边,将当前的边作为答案返回 Python class Solution: def findRedundantConnection(self, edges: List[List
阅读全文