上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 24 下一页
摘要: 沙僧 思路: dfs序+差分数组 分层考虑,通过dfs序来查找修改的区间段,然后用差分数组修改 代码: 阅读全文
posted @ 2018-07-08 09:38 Wisdom+.+ 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 1088 思路: 模拟,确定第1和2格后所有的格子都能确定 代码: 阅读全文
posted @ 2018-07-07 17:31 Wisdom+.+ 阅读(151) 评论(0) 推荐(0) 编辑
摘要: C - Two Squares 思路: 点积叉积应用 代码: 阅读全文
posted @ 2018-07-07 16:39 Wisdom+.+ 阅读(345) 评论(0) 推荐(0) 编辑
摘要: 2242 思路:BSGS+逆元 代码: 阅读全文
posted @ 2018-07-07 11:28 Wisdom+.+ 阅读(180) 评论(0) 推荐(0) 编辑
摘要: HDU - 4609 思路:记录每个木棍长度出现的次数,然后就可以用用类似多项式的乘法(专业术语:卷积,因为是下标和为一特定值的积的和(x+y=k),相当于在笛卡尔坐标系中将这条直线卷起来,故得名卷积)的方法计算两个组合后每个长度的木棍的个数,然后用容斥减去多余的。 然后对它求个前缀和sum 假设两 阅读全文
posted @ 2018-06-08 12:33 Wisdom+.+ 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 推荐阅读资料:算法导论第30章 本文不做证明,详细证明请看如上资料。 FFT在算法竞赛中主要用来加速多项式的乘法 普通是多项式乘法时间复杂度的是O(n2),而用FFT求多项式的乘法可以使时间复杂度达到O(nlogn) FFT求多项式的乘法步骤主要如下图 其中求值是将系数表达转换成点值表达,带入的自变 阅读全文
posted @ 2018-06-07 19:35 Wisdom+.+ 阅读(476) 评论(0) 推荐(0) 编辑
摘要: B - RGB Coloring 求ax + by = k (0<=x<=n && 0<=y<=n)的方案数,最后乘上C(n, x)*C(n,y) 代码: 阅读全文
posted @ 2018-06-06 14:55 Wisdom+.+ 阅读(244) 评论(0) 推荐(0) 编辑
摘要: F - AND Graph 思路: 首先,x & (~x) == 0 其次,~x 的 子集 y = ((~x) ^ (1<<k)), 0<= k < n(如果k这一位是1),y&x == 0 所以枚举 a[i] ,如果a[i]每被标记,搜索 (~a[i])的子集, 子集的子集......,边搜索边标 阅读全文
posted @ 2018-06-01 15:26 Wisdom+.+ 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 4747 思路: 线段树 先求出mex(1,1), mex(1, 2) , mex(1,3),...,mex(1,n)(单调上升),先将这些mex放进线段树里求和 然后再求出next[i]表示下一次出现a[i] 的位置 然后从前往后不停的删数,对于一个数a[i],我们删掉他的影响是:l为mex大于a 阅读全文
posted @ 2018-05-31 19:23 Wisdom+.+ 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 题目已经没有了 思路: 莫队+分块 首先有一个结论:所有的答案都在0到n之间,用反正法就能证明,所以所有大于n的数都可以看成n 离线,对询问区间进行莫队,再对答案的范围0到n进行分块 复杂度(n+2*m)√n 代码: #include<bits/stdc++.h> using namespace s 阅读全文
posted @ 2018-05-31 15:55 Wisdom+.+ 阅读(230) 评论(0) 推荐(0) 编辑
摘要: E - Addition on Segments 思路: dp dp[i]表示构成i的区间的右端点 先将询问按r排序 然后,对于每次询问,每次枚举 i 从 n-x 到 1,如果dp[i] >= l , 那么 dp[i+x] = max(dp[i+x], dp[j]) 阅读全文
posted @ 2018-05-30 15:26 Wisdom+.+ 阅读(157) 评论(0) 推荐(0) 编辑
摘要: HDU 4812 思路: 点分治 先预处理好1e6 + 3以内到逆元 然后用map 映射以分治点为起点的链的值a 成他的下标 u 然后暴力跑出以分治点儿子为起点的链的值b,然后在map里查找inv[b]*k 代码: 阅读全文
posted @ 2018-05-29 18:16 Wisdom+.+ 阅读(161) 评论(0) 推荐(0) 编辑
摘要: POJ - 1741 思路: 点分治入门题 2019.3 阅读全文
posted @ 2018-05-28 18:19 Wisdom+.+ 阅读(147) 评论(0) 推荐(0) 编辑
摘要: HDU 4804 思路: 轮廓线dp 阅读全文
posted @ 2018-05-27 14:47 Wisdom+.+ 阅读(153) 评论(0) 推荐(0) 编辑
摘要: HDU - 1400 思路: 轮廓线dp入门题 阅读全文
posted @ 2018-05-27 13:53 Wisdom+.+ 阅读(161) 评论(0) 推荐(0) 编辑
摘要: F - Isomorphic Strings 思路:字符串hash 对于每一个字母单独hash 对于一段区间,求出每个字母的hash值,然后排序,如果能匹配上,就说明在这段区间存在字母间的一一映射 代码: 阅读全文
posted @ 2018-05-23 15:12 Wisdom+.+ 阅读(205) 评论(0) 推荐(0) 编辑
摘要: E - Pencils and Boxes 思路: dp 先排个序,放进一个袋子里的显然是一段区间 定义状态:pos[i]表示小于等于i的可以作为(放进一个袋子里的)一段区间起点的离i最近的位置 显然,初始状态:pos[i] = 1,1 <= i <= k 状态转移: pos[i+1] = i+1 阅读全文
posted @ 2018-05-22 23:44 Wisdom+.+ 阅读(482) 评论(0) 推荐(0) 编辑
摘要: D - Sand Fortress 思路: 二分 有以下两种构造, 分别二分取个最小。 代码: 阅读全文
posted @ 2018-05-22 22:34 Wisdom+.+ 阅读(319) 评论(0) 推荐(0) 编辑
摘要: 按点赞数降序 297 二分 #include<bits/stdc++.h> using namespace std; #define fi first #define se second #define pi acos(-1.0) #define LL long long #define mp ma 阅读全文
posted @ 2018-05-21 18:05 Wisdom+.+ 阅读(449) 评论(0) 推荐(0) 编辑
摘要: D - XOR-pyramid 思路: 区间dp dp[l][r]表示ƒ([l, r])的值 显然,状态转移方程为dp[l][r] = dp[l][r-1] ^ dp[l+1][r] 初始状态dp[i][i] = a[i] 可是,这道题求的是这段区间包含的某一连续区间的最大值 那么用差不多的转移方程 阅读全文
posted @ 2018-05-16 13:29 Wisdom+.+ 阅读(323) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 24 下一页