02 2017 档案

摘要://By SiriusRen #include <cstdio> using namespace std; int n,m,a[1005]; typedef long long ll; ll C[2005][2005],f[2005][2005],g[2005],mod=1000000007ll; 阅读全文
posted @ 2017-02-27 23:03 SiriusRen 阅读(119) 评论(0) 推荐(0)
摘要:http://www.cnblogs.com/CXCXCXC/p/5093584.html//By SiriusRen#include using namespace std;int n,m,K,mod=1000000007,f[33][33][666][9];int main()... 阅读全文
posted @ 2017-02-27 23:02 SiriusRen 阅读(142) 评论(0) 推荐(0)
摘要:论O(1)快速乘和O(logn)快速乘的差距….//By SiriusRen#include #include using namespace std;typedef long long ll;ll shai[10]={2,3,5,7,11,13,17,19,23,29};ll m... 阅读全文
posted @ 2017-02-27 22:59 SiriusRen 阅读(207) 评论(0) 推荐(0)
摘要:思路: N=P*Q 求出来P和Q 模拟就好…//By SiriusRen#include #include using namespace std;typedef long long ll;ll shai[10]={2,3,5,7,11,13,17,19,21,23};ll mu... 阅读全文
posted @ 2017-02-27 22:57 SiriusRen 阅读(199) 评论(0) 推荐(0)
摘要:思路: 这像是 阶梯Nim之类的东西 我们 直接把sg函数 设成mod(L+1)的 一棵子树 向下的奇数层上的石子xor起来 就是答案 有加点和改值的操作 就splay维护一下//By SiriusRen#include #include #include using name... 阅读全文
posted @ 2017-02-26 16:10 SiriusRen 阅读(202) 评论(0) 推荐(0)
摘要:借鉴了别人的代码……//By SiriusRen#include #include #include #include using namespace std;#define N 66666struct Blocks{ int a[210],size; void Ins... 阅读全文
posted @ 2017-02-26 13:59 SiriusRen 阅读(150) 评论(0) 推荐(0)
摘要:思路: 就是把带修莫队移到了树上 块的大小开到(n^2/3)/2 比较好… 这是一个卡OJ好题 //By SiriusRen#include #include #include #include using namespace std;const int N=100050;int ... 阅读全文
posted @ 2017-02-25 16:28 SiriusRen 阅读(155) 评论(0) 推荐(0)
摘要:思路: 暴力能过的 嘿嘿嘿我是来练带修莫队的嗯 复杂度 O(n^5/3)//By SiriusRen#include #include #include using namespace std;const int N=1050000;int n,m,a[N],cnt1,cnt2,... 阅读全文
posted @ 2017-02-25 16:24 SiriusRen 阅读(168) 评论(0) 推荐(0)
摘要:这里就算是一个小总结吧… 附参考的网址: http://blog.sina.com.cn/s/blog_6a46cc3f0100s2qf.html http://www.cnblogs.com/hankers/archive/2012/08/03/2622231.html 首先 B... 阅读全文
posted @ 2017-02-20 23:46 SiriusRen 阅读(173) 评论(0) 推荐(0)
摘要:思路: 先处理出来f[j]表示这i个物品都可用 填满容量j的方案数容斥一发处理出来g[j]=g[j-w[i]] 表示i不能用的时候 填满容量j的方案数//By SiriusRen#include using namespace std;int n,m,w[2005],f[2005... 阅读全文
posted @ 2017-02-17 19:46 SiriusRen 阅读(142) 评论(0) 推荐(0)
摘要:题意: N个数,M组询问,每次问[l,r]中有多少个数出现正偶数次。 思路: 把N个数分成sqrt(n)块,预处理d[i][j]表示第i块起点到第j块末尾的答案 枚举起点i,并维护一个数组记录每个数到目前为止出现的次数,从偶变奇、从奇变偶时相应增减答案。 把每个数在数列中出现的位置... 阅读全文
posted @ 2017-02-15 16:11 SiriusRen 阅读(168) 评论(0) 推荐(0)
摘要:这是一个坑 竟然卡nsqrt(n)logn T死 等更 //By SiriusRen #include <cmath> #include <cstdio> #include <algorithm> using namespace std; #define Max(x,y) x>y?x:y; cons 阅读全文
posted @ 2017-02-15 00:19 SiriusRen 阅读(185) 评论(0) 推荐(0)
摘要:思路: 这个DP太神了… 完全没想到 http://blog.csdn.net/geotcbrl/article/details/49663401//By SiriusRen#include #include #include using namespace std;int n;l... 阅读全文
posted @ 2017-02-15 00:17 SiriusRen 阅读(129) 评论(0) 推荐(0)
摘要:思路: 肯定从小往大填合适了 f[i][j]表示第i个数是j的最少逆序对数 f[i][j]=min(f[i-1][k]+cost,f[i][j]) 优化一下成O(nk)就好啦~ (不优化也可以过的…)//By SiriusRen#include #include #include... 阅读全文
posted @ 2017-02-15 00:16 SiriusRen 阅读(175) 评论(0) 推荐(0)
摘要:思路: 主席树维护可持久化数组 剩下的就是普通的并查集了…//By SiriusRen#include #include #include using namespace std;const int N=200050;int n,m,op,xx,yy,L[N*50],R[N*50]... 阅读全文
posted @ 2017-02-15 00:14 SiriusRen 阅读(190) 评论(0) 推荐(0)
摘要:思路: f[i][j] 表示节点i 染成j时 子树的最小权值 (我会猜这个j很小 你打我吖~) 随便DP一发就好了 (证明我也不会)//By SiriusRen#include #include #include using namespace std;const int N=20... 阅读全文
posted @ 2017-02-15 00:13 SiriusRen 阅读(155) 评论(0) 推荐(0)
摘要:思路: 线段树表示的是时间 每回最多log个段 区间覆盖 一直到叶子 的线性基 xor 一下 就是答案 一开始没有思路 看了这篇题解 豁然开朗 http://www.cnblogs.com/joyouth/p/5333181.html (还是本省的前辈呢)//By Siri... 阅读全文
posted @ 2017-02-15 00:08 SiriusRen 阅读(197) 评论(0) 推荐(0)
摘要:思路: 写得我头脑发蒙,,, 旁边还有俩唱歌的 抓狂 (感谢lh大爷查错) 首先 1、w是s1的子串 2、w是s2的子串 这两步很好办啊~ 后缀数组一下O(n)就可以搞 重点是 这个:3、s3不是w的子串 怎么办呢 把 1、3做一发KMP 那么取一下min就好了 注意重叠的情... 阅读全文
posted @ 2017-02-13 11:51 SiriusRen 阅读(291) 评论(0) 推荐(0)
摘要:思路: 首先我们已经会了后缀数组求本质不同的子串个数 这道题跟那个差不多 首先我们可以知道按字典序排好的每个后缀之前包含多少本质不同的字串 就是sigma(n-sa[i]+1-ht[i]+bi[i-1]) 在这上面二分就可以求出来原串是什么了 就把两个后缀的LCP和原串的长度取个m... 阅读全文
posted @ 2017-02-12 21:16 SiriusRen 阅读(131) 评论(0) 推荐(0)
摘要:借鉴(抄)了一下题解…… 线段树合并的裸题吧…//By SiriusRen#include #include #include using namespace std;#define N 4000050typedef long long LL; int n,cnt,tree[N],... 阅读全文
posted @ 2017-02-11 22:25 SiriusRen 阅读(124) 评论(0) 推荐(0)
摘要:思路: 1.线段树合并(nlogn的) 2.splay+启发式合并线段树合并比较好写 我手懒//By SiriusRen#include #include #include using namespace std;const int N=100050;int n,m,q,a[N],... 阅读全文
posted @ 2017-02-11 22:23 SiriusRen 阅读(137) 评论(0) 推荐(0)
摘要:这题可以直接nth_element过去 比如这样子//By SiriusRen#include #include using namespace std;int n,a[100500];int main(){ scanf("%d",&n); for(int i=1;i#... 阅读全文
posted @ 2017-02-11 16:41 SiriusRen 阅读(264) 评论(0) 推荐(0)
摘要:写了一半 没了啊啊啊 重新写的 思路: 先不考虑后缀自动机 (我不会啊)那这道题只能用后缀数组了 先把原串倒一下 后缀->前缀 相当于每回在前面加了一个字母 求不同的子串个数 首先 正常的求子串个数我们是会的 SPOJ 705 但是这道题比较坑 它让你每回都... 阅读全文
posted @ 2017-02-01 17:38 SiriusRen 阅读(129) 评论(0) 推荐(0)
摘要:思路: f[i][a][b][c][d] 表示在第i天 昨天1矿吃的是a 前天1矿吃的是b 昨天2矿吃的是c 前天2矿吃的是d 的最优解暴力转移 哦 需要优化一下空间… 变成i%2 就好了//By SiriusRen#include #include #include usin... 阅读全文
posted @ 2017-02-01 15:25 SiriusRen 阅读(150) 评论(0) 推荐(0)
摘要:思路: 可以把题目转化成 给你一些沿坐标轴方向的线段 让你求交点个数 然后就线段树+扫描线 搞一搞 (线段不包含断点 最后+n 这种方式 比线段包含断点+各种特判要好写得多)//By SiriusRen#include #include using namespace std;... 阅读全文
posted @ 2017-02-01 10:46 SiriusRen 阅读(215) 评论(0) 推荐(0)