04 2018 档案
摘要:【题目链接】 点击打开链接 【算法】 很明显,我们可以用线段树解决此题 只需维护区间最值就可以了 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 我们知道,每个编号为a[i]都要被编号是a[i]的约数的牛拍一次头(除了它自己),因此,只需用类似于筛法的方式统计答案, 即可 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 要求M,显然可以通过约数个数定理从1..N暴力计算答案,然而n最大10^6,这个算法的时间复杂度是 O(N * sqrt(N))的,不能通过此题 因此我们换一种思路 不妨考虑每个数对答案的“贡献”,若这个数为i,那么1..n中,共有n / i个数是i的倍数,那么
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 稍加分析可知,问题等价于“求1到n中,因子个数最多的数,若有多个,求最小的” 那么我们该怎么求这个数呢? 约数个数定理 : x = p1^a1p2^a2p3^a3...pn^an 则x的约数个数为 : (a1 + 1)(a2 + 1)(a3 + 1) ... (
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 本题用map很好写,笔者用的是哈希的写法 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 此题初看是大水题,只需调用std :: sort即可 但是,n最大500000,显然会超时 而且,内存限制1MB,我们连数组也开不了! 那怎么做呢 ? 我们发现,一个非众数和众数可以抵消,因此,暴力扫描一遍即可 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 直接暴力dfs一遍,即可 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 将小于m的数看作-1,大于m的看作1 然后求前缀和,如果区间[l,r]的中位数是m,显然有 : sum(r) - sum(l-1) = 0 因此,只需m的位置之前(后)统计每个前缀和出现的次数,然后通过乘法原理计算答案,即可 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 线段树扫描线 推荐一篇比较容易理解的线段树扫描线的文章 : https://blog.csdn.net/u013480600/article/details/22548393 【代码】 注意此题输出格式若使用"%.2lf"会离奇Wrong Answer,要改为"
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 最短路 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 动态规划 f[i][j][k]表示前i行,有j列放了1个,有k列放了两个 分六种情况讨论即可 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 数位DP,注意处理前导零的情况 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 f[i][j]表示第i位,数位和对10取模余j的数的个数 状态转移,计算答案都比较简单,笔者不再赘述 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 数位DP 和上一题 : HDU3555很像 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 数位DP 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 很明显,我们可以用状态压缩动态规划解决此题 f[n][m]表示n-1行已经放满,第n行状态为m的合法的方案数 状态转移方程很好推 注意这题时限较紧,注意加一些小优化 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 按ai * bi升序排序,贪心即可 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 树形DP即可 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 树形DP求树的重心 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 正反两遍EXKMP,即可 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 KMP 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 KMP 沿着失配指针扫一遍即可 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 KMP 和POJ2406很像 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 KMP 如果字符串中存在循环节,则next[len] = (循环节个数 - 1) * 循环节长度 循环节个数 = len / (len - next[len]) 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 KMP 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 EXKMP 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 二分答案,check的时候跑最大流,即可 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 二维线段树(树套树) 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 二维线段树(树套树) 注意标记永久化 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 离散化 + dfs + 树状数组 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 本题用线段树很容易写,但是,笔者为了练习树状数组,就用树状数组的方法做了一遍 我们不妨引入差分数组c, 则sum(n) = c[1] + (c[1] + c[2]) + (c[1] + c[2] + c[3]) + ... + (c[1] + c[2] + c[
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 树状数组的最值查询 详见这篇文章 : https://blog.csdn.net/u010598215/article/details/48206959 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 dijkstra 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 欧拉函数 【代码】
阅读全文
摘要:【题目链接】 点击打开链接【算法】 不难看出,ans = phi(2) + phi(3) + .... + phi(n-1) + phi(n) 线性筛筛出欧拉函数,预处理前缀和,即可【代码】 ...
阅读全文

浙公网安备 33010602011771号