Loading

摘要: 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 阅读(171) 评论(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 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 根据斐波那契数列的通项公式可以进行如下推导。 注意到后面是等比数列可以O(1)求出。还要注意的问题是 1 / sqrt(5) 在模意义下处理用二次剩余模板处理出。以及预处理组合数。 当然,直接这样写虽然复杂度上没问题但还会T 考虑以下优化: 1.由于c很大,计算A^c,B^c时用欧拉降幂减少快速幂。 阅读全文
posted @ 2020-08-11 17:53 MQFLLY 阅读(177) 评论(0) 推荐(0) 编辑