Loading

上一页 1 ··· 20 21 22 23 24 25 26 27 28 ··· 40 下一页
摘要: 给定两个数A和B,求最小的X,满足:A=X+YB=X xor Yxor 表示位运算的异或 异或是不进位的加法,因此A - B 表示的就是X + Y的进位情况。 由于加法得到的进位情况会是异或的两倍。所有 (A - B) / 2 是X 和 Y 的共同都有的部分。所有X可以认为是(A-B)/2/。 in 阅读全文
posted @ 2020-08-17 16:33 MQFLLY 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 求凸包的面积 const double pi = acos(-1.0); const int maxp = 1010; //`Compares a double to zero` int sgn(double x) { if (fabs(x) < eps)return 0; if (x < 0)re 阅读全文
posted @ 2020-08-17 16:05 MQFLLY 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 给定n个点可以形成一个多边形,按照逆时针的顺序输出这n个点。 考虑用叉乘比较极角 struct Point { int x, y; Point(int _x = 0,int _y = 0): x(_x),y(_y){} Point operator -(const Point& b)const { 阅读全文
posted @ 2020-08-17 15:47 MQFLLY 阅读(86) 评论(0) 推荐(0) 编辑
摘要: nCr * pq 求该表达式末尾0的个数。 显然至于2 5 的因子个数有关。 考虑预处理出每个数的2,5的因子个数,并统计前缀和(题个的组合数其实是阶乘) int _2[maxn], _5[maxn]; ll _s2[maxn], _s5[maxn]; int _count(int x, int y 阅读全文
posted @ 2020-08-15 15:05 MQFLLY 阅读(114) 评论(0) 推荐(0) 编辑
摘要: int prime[maxn]; int vis[maxn]; int euler_sieve(int n) { int cnt = 0; vis[1] = 1; for (int i = 2; i <= n; i++) { if (!vis[i]) prime[cnt++] = i; for (i 阅读全文
posted @ 2020-08-11 20:23 MQFLLY 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 在 n×n 的棋盘上放 kk 个国王,国王可攻击相邻的 88 个格子,求使它们无法互相攻击的方案总数。 状压DP是一种比较暴力的DP。 首先dp[i][j][k]表示前i行放置k个国王,且当前行状态是j的方案数。 转移方程 dp[i][j][k] = dp[i - 1][m][k - sum[k]] 阅读全文
posted @ 2020-08-11 19:23 MQFLLY 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 根据斐波那契数列的通项公式可以进行如下推导。 注意到后面是等比数列可以O(1)求出。还要注意的问题是 1 / sqrt(5) 在模意义下处理用二次剩余模板处理出。以及预处理组合数。 当然,直接这样写虽然复杂度上没问题但还会T 考虑以下优化: 1.由于c很大,计算A^c,B^c时用欧拉降幂减少快速幂。 阅读全文
posted @ 2020-08-11 17:53 MQFLLY 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 定理: {an} 是一个p阶等差数列的充要条件是数列的通项 an 为n的一个p次多项式。 题意: 求 这个表达式等价于一个 k + 1 次多项式。因此可以由拉格朗日插值法求得 又由于这里的x是连续的,可以预处理前缀后缀O(n)求得。 ll fac[maxn]; ll pre[maxn]; ll su 阅读全文
posted @ 2020-08-10 18:47 MQFLLY 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 由n + 1 个点可以确定一个n次多项式。 拉格朗日插值法可以在 n^2 复杂度确定一个多项式并进行求解。 模板 ; 给定n 个点,以及k ,求出确定的多项式的 f(k)。 #pragma warning(disable:4996) #include<iostream> #include<algor 阅读全文
posted @ 2020-08-10 18:43 MQFLLY 阅读(153) 评论(0) 推荐(0) 编辑
摘要: ll w; struct num { ll x, y; }; num mul(num a, num b, ll p) { num ans = { 0,0 }; ans.x = ((a.x * b.x % p + a.y * b.y % p * w % p) % p + p) % p; ans.y = 阅读全文
posted @ 2020-08-10 15:20 MQFLLY 阅读(202) 评论(0) 推荐(0) 编辑
上一页 1 ··· 20 21 22 23 24 25 26 27 28 ··· 40 下一页