08 2022 档案
摘要:https://www.codechef.com/submit/ROCKET_PACK?tab=statement 主要思路为,转化为最短路问题,然后对全部点进行扫描。 active集合按dis排序,remove集合按到达边界排序。 当到某点i时,先根据remove,对到达边界小于i(已经不会被用于
阅读全文
摘要:例题: https://ac.nowcoder.com/acm/contest/39100/F 主要思想是跑dijkstra 边权为: (1)当属性相同时,走min(x,y+z) (2)属性不同时,走min(y,x+z) 因为最短路的当前点的后面点变化次数都相同,所以不用考虑路径上的除(1)和(2)
阅读全文
摘要:KMP自动机可以在O(1)的时间内计算kmp。 KMP自动机数组kmp_auto[i][j]可以表示第i位为'a'+j时的最长前缀长度(此前缀可以包含自身)。 kmp[i]数组,表示第i位的最长前缀长度(不含自身) 可以有kmp[i]=kmp_auto[kmp[i-1]][str[i]-'a'];
阅读全文
摘要:题目: https://www.codechef.com/submit/MAKEIT1?tab=statement 题解: https://www.codechef.com/submit/ROCKET_PACK?tab=solution 代码: #include<bits/stdc++.h> #in
阅读全文
摘要:01字典树用于处理数字的前缀 例题: https://codeforces.ml/contest/1720/problem/D2 题解: https://www.bilibili.com/video/BV1mG4y1a7QS?spm_id_from=333.1007.top_right_bar_wi
阅读全文
摘要:https://codeforces.ml/contest/1712/problem/E2 题解: https://www.bilibili.com/video/BV1uB4y167ig?spm_id_from=333.1007.top_right_bar_window_view_later.con
阅读全文
摘要:对于单次查询,可以直接用sqrt(n)遍历。 对于多次查询,每次都遍历会遍历多个无用的数。 可以采用打表法,直接获取数据范围内的全部数据的因子。 代码如下: int N = 100010; vector<int> factor[100010]; for (int i = 1; i <= N; i++
阅读全文
摘要:如果可以确定先入队的距离一定更小的话,则可以(先判断是否为初始值,如果是初始值,可以入队,则)在入队的时候记录距离,例如边权为1的BFS。 如果不能确定, 例如01BFS,可能先对1入队,再对0入队, 由于可以确保出队时是有序的,可以在出队时记录(类似dijkstra), 也可以在入队时记录距离(当
阅读全文
摘要:n堆石子,每次可以选择一堆拿走任意颗石子,不能操作的输,问先手还是后手输。 结论:a1^a2^...^an==0则输,否则赢。 参考证明:https://blog.csdn.net/m0_51755720/article/details/120978376 例题:https://www.codech
阅读全文
摘要:注意,异或(^)和与(&&)、或(||)、位与(&)、位或(|)的优先级类似 都比加减乘除要低。 注意在运算时要加括号
阅读全文
摘要:两个数的LCM的常规求法为,两数之积/GCD, 对于多个数也可以分别以此方法求出。 但是对于数据量较大的数,LCM会超过数据范围, 此时可以采用,记录质因子的数量的方法。 用一个数组,记录全部质因子的最大数量。 然后遍历每个数,求出其全部质因子的数量,并更细全局的质因子最大数量。 最后将全部的质因子
阅读全文
摘要:可以发现,对于部分题目数据量较大,需要用long long存储,可以使用long long。 但是对于题目数据量极大,每一步都要取模的情况下,尽量使用int, 因为对于mod运算,long long比int慢很多(1-2倍),对于时间卡的严格的题目会超时。 例题: https://codeforce
阅读全文
摘要:开放地址法 M一般是N的十倍左右 find用于查找,看返回值是否为INF find用于插入,直接将待插入的值放到find返回的位置 会比unordered_set快5-10倍。
阅读全文
摘要:https://ac.nowcoder.com/acm/contest/38105/D #include<bits/stdc++.h> typedef unsigned long long LL; using namespace std; LL digit = 1e13; LL nums[20001
阅读全文
摘要:对a/b做上取整 1、转为浮点数(可能会有精度问题) int a=1; int b = 1; int res = int(ceil(double(a) / b)); View Code 2、通过判断能否整除(比较直观) int a=1; int b = 1; int res = a % b ? a
阅读全文
摘要:若集合中的任意数在三进制下只含有0和1,则有: 对任意集合中三点x、y、z,有y≠(x+z)/2,即2*y≠x+z,即集合中不存在任意两点x、z的平均值。 (因为2*y全部位均为0或2,而x+z至少存在一位为1) https://atcoder.jp/contests/arc145/editoria
阅读全文
摘要:对于长度为2N的括号序列,合法的数量为C(2N,N)/(N+1) 参考:https://blog.csdn.net/ffmpeg4976/article/details/42340379?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relev
阅读全文
摘要:#include<iostream> #include<string> #include<vector> #include<fstream> #include"output.h" #include"Delaunay.h" #include"c2dtriangle.h" #include<iomani
阅读全文
摘要:1、高级保存选项,保存为utf-8 2、清理解决方案
阅读全文
摘要:https://www.bilibili.com/read/cv13020375/ https://files.cnblogs.com/files/ECJTUACM-873284962/bigint-10-2-src.7z 作者:C语言编程老师 https://www.bilibili.com/re
阅读全文