上一页 1 2 3 4 5 6 7 8 9 ··· 28 下一页
摘要: 因为行数比较少(最多20),所以可以考虑每行建立一颗线段树进行操作,进而想到可以只建一颗线段树,将矩阵查询变成多次线段查询。另外需要注意的是两种lazy标记的优先级,只要有赋值操作,之前的所有操作都会被替代,所以pushdown的时候要先放下赋值的lazy标记。 1 #include 2 #i... 阅读全文
posted @ 2015-10-01 16:59 hxy_has_been_used 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 类似背包的简单dp,dp[i][j]表示枚举前i个数字的组合mod p的值为j的方法数,要求的答案即为dp[n][0]。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 const int MOD = 100000000... 阅读全文
posted @ 2015-09-19 23:06 hxy_has_been_used 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 因为xor具有前缀和性质,所以可以建立一颗二维树状数组,写起来只是稍微有点改变,感觉此题还是很不错的,结合了数据结构和博弈。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 const int N = 501; 7 in... 阅读全文
posted @ 2015-09-19 23:01 hxy_has_been_used 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 中等递推题:ans[i] = ans[i - 2] + ans[i - 1] +( sum[i - 2] + cnt[i - 2] * len[i - 1] ) * cnt[i - 1] - sum[i - 1] * cnt[i - 2];其中,ans[i]代表答案,cnt[i]代表ith个mess... 阅读全文
posted @ 2015-09-19 18:56 hxy_has_been_used 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 动态建立结点就不用离散化了,细节见代码,相信还是比较好理解的。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 7 const int N = 500000; 8 set s; 9 ... 阅读全文
posted @ 2015-09-17 12:00 hxy_has_been_used 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 和上一题大同小异,经过思考,visit数组可以省去第一维。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 const int N = 10007; 7 const int M = 10; 8 int n, m, hea... 阅读全文
posted @ 2015-09-16 11:43 hxy_has_been_used 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 定义状态visit[i][j]表示最后一位是i且该数字mod n的余数是j的情况,然后按位来bfs即可,转移时先考虑1再考虑2,这样求出来的答案就是长度和数值都最小的了。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 ... 阅读全文
posted @ 2015-09-16 11:01 hxy_has_been_used 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 比较简单的线段树,查询的时候如果左子树够的话就向左递归,否则向右递归,到叶子时终止。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 const int N = 200001; 7 int h, w, n; 8 9 i... 阅读全文
posted @ 2015-09-14 21:26 hxy_has_been_used 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 给定一个序列,有两种操作:对一个区间内的数字开方和求区间内所有数字的和。注意到一个即使很大的数经过没几次开方操作以后就会变成1,而1开方还是1。所以可以用线段树来维护,对于那些全部都是1的区间(即区间和等于区间长度)我们不用更新,剩下的就是区间求和了。 1 #include 2 #includ... 阅读全文
posted @ 2015-09-14 18:58 hxy_has_been_used 阅读(203) 评论(0) 推荐(0) 编辑
摘要: remove的过程就像是拓扑排序,而最后统计sum可以用并查集,每个集合维护集合的size、sum。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 typ... 阅读全文
posted @ 2015-09-14 09:52 hxy_has_been_used 阅读(231) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 28 下一页