Loading

03 2020 档案

摘要:给出n给点,求出最大的三角形的面积 有用的点只有凸包上的点,因此只需枚举凸包上的点即可 数据比较简单,暴力即可 #include<iostream> #include<unordered_map> #include<algorithm> #include<string> #include<cmath 阅读全文
posted @ 2020-03-31 19:25 MQFLLY 阅读(176) 评论(0) 推荐(0)
摘要:给出n个点,计算从0开始每加入一个点最近点对点的距离的平方,累加答案 思路:用模板直接暴力复杂度太高,考虑平衡树来支持插入操作(set) 由于此题只涉及点的操作,无需写大量计算几何模板,直接利用分治求最近点对,加入以后check最近的即可 #include<iostream> #include<un 阅读全文
posted @ 2020-03-31 19:23 MQFLLY 阅读(178) 评论(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 阅读(149) 评论(0) 推荐(0)
摘要:非常好的数论题 结合了很多不知道的知识点 易得代码 #include<iostream> #include<unordered_map> #include<algorithm> #include<string> #include<cmath> #include<cstring> #include<v 阅读全文
posted @ 2020-03-20 23:11 MQFLLY 阅读(216) 评论(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 阅读(262) 评论(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 阅读(147) 评论(0) 推荐(0)
摘要:易得知 答案为 对于方程 2x+y=n的每个正整数解的 关于x,y的全排列,这里用到全排列公式 由于答案会很大 ,考虑java高精度 import java.util.*; import java.math.*; public class Main { public static void main 阅读全文
posted @ 2020-03-17 11:17 MQFLLY 阅读(133) 评论(0) 推荐(0)
摘要:java可做 先用C++打出表发现如下规律: 若n对应答案为x ,则下一个不同答案对应的n为x+1 不同答案的递推关系有 f[n]=4*f[n-1]-f[n-2] ,因此可java秒 import java.util.Scanner; import java.math.BigInteger; pub 阅读全文
posted @ 2020-03-17 10:41 MQFLLY 阅读(121) 评论(0) 推荐(0)
摘要:java初学 借鉴他人代码 求R的n次,R是小数 import java.util.*; import java.math.*; public class Main { public static void main(String[] args) { Scanner in=new Scanner(S 阅读全文
posted @ 2020-03-17 10:38 MQFLLY 阅读(133) 评论(0) 推荐(0)
摘要:高斯-约旦消元法 int n; double a[maxn][maxn]; void Gauss() { scanf("%d", &n); for (int i = 1; i <=n; i++) { for (int j = 1; j <=n + 1; j++) { scanf("%lf", &a[ 阅读全文
posted @ 2020-03-12 12:33 MQFLLY 阅读(125) 评论(0) 推荐(0)
摘要:紫书中给出的解法是分块,非常重要的思想, 但是网上题解给出的更加简单DFS ,统计每位数对答案的贡献即可。 注意边界 具体见代码 #include<iostream> #include<string> #include<cmath> #include<cstring> #include<vector 阅读全文
posted @ 2020-03-10 21:48 MQFLLY 阅读(122) 评论(0) 推荐(0)
摘要:给出一DAG,求最小多少个控制点,能够使得控制图中所有点,控制点可以控制本身和他直接能到的点 题解:只需按拓扑序控制每个点即可 #include<iostream> #include<string> #include<unordered_map> #include<cmath> #include<c 阅读全文
posted @ 2020-03-09 20:47 MQFLLY 阅读(160) 评论(0) 推荐(0)
摘要:容易发现同一连通块的答案相等 ,故可以一次遍历图中empty点的答案并保存,保存方法可以建立一个数组,下表是对应的连通块序号 #include<iostream> #include<string> #include<cmath> #include<cstring> #include<vector> 阅读全文
posted @ 2020-03-09 20:43 MQFLLY 阅读(174) 评论(0) 推荐(0)
摘要:莫比乌斯函数 求单个莫比乌斯函数 O(sqrt(n)) ll getu(ll x) { ll v = 1; for (int i = 2; i * i <= x; i++) { if (x % i == 0) { v = -v, x /= i; if (x % i == 0) return 0; } 阅读全文
posted @ 2020-03-08 20:29 MQFLLY 阅读(202) 评论(0) 推荐(0)
摘要:1.5 高速缓存至关重要 hello程序的机器指令最初是放在磁盘上的,当程序加载时,他们被复制到主存;当处理器允许程序时,指令又从主存复制到处理器。从程序员的角度看,这些复制就是开销,减慢了程序“真正”的工作。因此,系统设计者的一个主要目标就是使这些复制操作尽可能快地完成。 根据机械原理,较大的存储 阅读全文
posted @ 2020-03-04 19:17 MQFLLY 阅读(127) 评论(0) 推荐(0)
摘要:A. People Couting 给出一个人的固定形状(3*3)的方框内,有许多人合影,最后拍的照不一定完整但每个人至少会出现一部分 ,问图中有几人 有点思维题的意思,最后发现只要遍历整个图判断满足条件的坐标有任何一个人的“部件”答案就能++,果然这种题一般都有比较巧妙的方法 反思:有时候不要把问 阅读全文
posted @ 2020-03-02 17:38 MQFLLY 阅读(152) 评论(0) 推荐(0)
摘要:A.爆炸题 图论,最短路,思维 给出一个图,从1点开始每秒为1米的速度火焰扩展,如果遇到大于一个火焰相遇就会爆炸,问最终爆炸的个数 容易得出以下规律:如果在某个点爆炸,那么这个点存在大于1的入度使得最短路相等 如果在边上爆炸,那么这条边不在最短路上 #include<iostream> #inclu 阅读全文
posted @ 2020-03-01 12:59 MQFLLY 阅读(180) 评论(0) 推荐(0)