Loading

摘要: 所谓的三分套三分 , 题意RT #include<iostream> #include<algorithm> #include<fstream> #include<string> #include<cmath> #include<cstring> #include<vector> #include< 阅读全文
posted @ 2020-05-31 20:13 MQFLLY 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 给定整数 n,求它的所有原根。 为了减小你的输出量,给出输出参数 dd,设 nn 的所有原根有 cc 个,从小到大分别为 g_1,\ldots,g_cg1​,…,gc​,你只需要依次输出 int phi[maxn]; int prime[maxn]; int vis[maxn]; int rt[ma 阅读全文
posted @ 2020-05-18 11:51 MQFLLY 阅读(200) 评论(0) 推荐(0) 编辑
摘要: Nim游戏 HDU1846 若各堆石子异或和为不为零,则先手胜 ,后手当且仅当异或和为零时取胜 此题问要想先手取胜第一步的取法,考虑到上述引理,只需遍历一遍石子找到异或和的最高位匹配的个数。 int a[105]; int main() { int m; while (scanf("%d", &m) 阅读全文
posted @ 2020-04-06 20:31 MQFLLY 阅读(352) 评论(0) 推荐(1) 编辑
摘要: 第一做容斥原理,开始真的不太好理解 题意:给出a,b<=1e19 n<=1e9 ,问[a,b]中与n互质的个数 考虑[a,b]中与n不互质的个数,对n唯一分解定理,与n不互质的个数即为n/p,但是考虑到会有重复,且若数字个数是奇数则要+,偶数减去,因此借助二进制遍历每一种情况(极其神奇的思想) 代码 阅读全文
posted @ 2020-04-01 20:49 MQFLLY 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 给出n给点,求出最大的三角形的面积 有用的点只有凸包上的点,因此只需枚举凸包上的点即可 数据比较简单,暴力即可 #include<iostream> #include<unordered_map> #include<algorithm> #include<string> #include<cmath 阅读全文
posted @ 2020-03-31 19:25 MQFLLY 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 给出n个点,计算从0开始每加入一个点最近点对点的距离的平方,累加答案 思路:用模板直接暴力复杂度太高,考虑平衡树来支持插入操作(set) 由于此题只涉及点的操作,无需写大量计算几何模板,直接利用分治求最近点对,加入以后check最近的即可 #include<iostream> #include<un 阅读全文
posted @ 2020-03-31 19:23 MQFLLY 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 用于解决大部分区间离线问题的离线算法 主要思想是分块 时间复杂度O(n sqrt(n)) 对于当前区间 [L,R] 1.加上当前区间左边一格的贡献,Add(--L) 2.加上当前区间右边一格的贡献 Add(++R) 3.减去当前区间最左一格的贡献 Sub(L++) 4.减去当前区间最右一格的贡献 S 阅读全文
posted @ 2020-03-25 21:24 MQFLLY 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 非常好的数论题 结合了很多不知道的知识点 易得代码 #include<iostream> #include<unordered_map> #include<algorithm> #include<string> #include<cmath> #include<cstring> #include<v 阅读全文
posted @ 2020-03-20 23:11 MQFLLY 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 第一问: 我们知道10的n次位数是n+1,2的p次等于10的log(10)2p ,所以结果就是log(10)2p+1 ,直接用库函数即可 第二问 考虑用大数快速幂对最后500位计算答案即可 此题学到的知识点 java大数取模,pow,快速幂模板 import java.util.*; import 阅读全文
posted @ 2020-03-19 23:00 MQFLLY 阅读(239) 评论(0) 推荐(0) 编辑
摘要: ll f(ll a,ll b,ll c,ll n) ///用于求解$Sigma_{i=0}^{n} floor((a*i+b)/c)$ { ll m = (a*n+b)/c; if(n==0||m==0) return (b/c); if(n==1) return ((b/c)+((a+b)/c)) 阅读全文
posted @ 2020-03-17 11:22 MQFLLY 阅读(136) 评论(0) 推荐(0) 编辑