04 2022 档案
摘要:正方形经过任意的旋转(90°)和翻转后,只能有8种情况,而非4!种。 解释如下: http://www.360doc.com/content/18/0407/14/30048172_743530034.shtml 可以用4种旋转和1种翻转,遍历到这8中情况。 例题: LCP 58. 积木拼接 先处理
阅读全文
摘要:在进行普通的BFS时,会将新的节点加入队尾。 但是由于01BFS的路径长度可能为0,故使用双端队列记录节点。如果路径为0,则加入队头,否则加入队尾。 例题:LCP 56. 信物传送 leetcode 2290. 到达角落需要移除障碍物的最小数目 class Solution { public: in
阅读全文
摘要:如果题目中数据较大,则尽可能将全部int替换为long long。因为很多地方都可能出现int*int爆int的情况
阅读全文
摘要:基数排序的思想是,对于一个给定的基数,每次排序构建基数数量的桶,并将数分配到桶里。 可以用count数组对桶中的数量计数,并转化为前缀数组记录桶中数字的位置。 LeetCode 164. 最大间距题解 class Solution { public: int maximumGap(vector<in
阅读全文
摘要:1、分治 2、记忆化 3、动态规划 https://codingcompetitions.withgoogle.com/codejam/round/0000000000877ba5/0000000000aa9280#problem #include <bits/stdc++.h> using nam
阅读全文
摘要:想要将集合中数字分为两个总和相等的集合,可以使用启发式优化的方式。 方法为:将数字依次加入到,两个集合中,当前和较小的集合。 这样可以将两个集合的误差降到一个数字的大小(|n|)级别,而非sum(|n|).
阅读全文
摘要:理论上unordered_map的存取速度很快。 但是在数据量很大的时候,哈希冲突过多会导致速度变慢。 此时可以使用map替代。(存疑) 同时,虽然unordered_map理论的插入是O(1),但是实际一秒只能运行1e5次左右,远低于1e8-1e9的数量级。 https://codeforces.
阅读全文
摘要:方法1:使用round()函数 方法2:(long long)(num/2.+0.5); 如果不加0.5,则会舍去造成数据不准。
阅读全文
摘要:https://codingcompetitions.withgoogle.com/codejam/round/0000000000876ff1/0000000000a45fc0#problem 1、利用总边数=度数/2。 2、为了解决度数不平衡的问题,交替使用T(随机传送)和W(邻接传送)操作。
阅读全文
摘要:std::endl、std::ends、std::flush 位于头文件<ostream> 作用分别为: endl:Insert newline and flush (刷新缓存区并插入换行符) ends:Insert null character (插入空字符) flush:Flush stream
阅读全文
摘要:在使用STL中的算法时一定要统一输入的数据类型。 否则会出现参数按照最右边进行解析的情况。 例如 对 vector<long long> v; long long res=accumulate(v.begin(),v.end(),0); 可能会返回错误的结果,因为模板对0解析是int型,内部求和也会
阅读全文
摘要:可以使用R"()"令字符串中的内容不进行转义 例如 string str=R"(//str\n//)"; //string str(R"(//str\n//)"); 等 cout<<str<<endl; 结果为//str\n//
阅读全文
摘要:#pragma GCC optimize(3,"Ofast","inline") #include<bits/stdc++.h> #define fore(x,y,z) for(LL x=(y);x<=(z);x++) #define forn(x,y,z) for(LL x=(y);x<(z);x
阅读全文