02 2017 档案

摘要:用四进制表示状态。 用hash表把一个四进制数映射到一个小数上。 这样就可以memset了。 转移的时候分类讨论一下,特判下边界情况。 阅读全文
posted @ 2017-02-28 23:24 SD_le 阅读(228) 评论(0) 推荐(1)
摘要:为什么这道题网上所有题解写的都是N*Len的trie树的暴力啊,4E的复杂度。。。 为什么暴力还跑这么快啊TAT。。 有一个O(Len)的做法就是先把AC自动机建出来,因为每个字典串的长度很小,所以我们可以用fail树状压一发,每个节点记录一个值ss,表示这个点向前(1~10)的长度的串是不是一个字 阅读全文
posted @ 2017-02-28 16:55 SD_le 阅读(1315) 评论(0) 推荐(1)
摘要:显然如果收集了k天,ans=k*(k+1)/2=(k^2+k)/2.那么现在要求的就是这个东西的期望。 设f[i]表示已有i张邮票,收集到n张的期望次数,g[i]表示已有i张邮票,收集到n张的次数的平方的期望。 显然i这个点有 $\frac{i}{n}$ 的概率走自环,有 $\frac{n-i}{n 阅读全文
posted @ 2017-02-27 19:09 SD_le 阅读(1180) 评论(7) 推荐(2)
摘要:#include #include #include #include #include #define ll long long using namespace std; int n; ll x,mx; ll gcd(ll a,ll b) { if(!b)return a; return gcd(b,a%b); } i64 mul(i64 a,i64 b,i64 c){ ... 阅读全文
posted @ 2017-02-27 11:06 SD_le 阅读(255) 评论(0) 推荐(0)
摘要:第一眼看到题比较裸的状压dp就是f[i][j][s]表示考虑到第i个点,连了j条边,i和i左边k个点奇偶性状态为s的方案数,然后枚举i和谁连边向j+1转移,每个s再向i+1转移。 写完后发现这个做法有bug,因为同一个状态因为i向外连边的顺序不同而被重复记数了。比如: 第一个状态就在第四个状态中被重 阅读全文
posted @ 2017-02-27 09:32 SD_le 阅读(615) 评论(0) 推荐(0)
摘要:因为NOI WC的时候一直在生病,浑浑噩噩就过去了7天,基本没什么记忆了,所以就压到一篇里好了。 day -1 第一次发现高铁的椅子原来还可以转过来,于是我们四个小伙伴面对面愉快的打了一路宣红A。 在火车上就感觉嗓子有点疼,有种不详的预感。 day 0 宿舍晚上开着空调,宿舍里奇干无比,嗓子疼的睡不 阅读全文
posted @ 2017-02-26 22:41 SD_le 阅读(1468) 评论(1) 推荐(0)
摘要:好久没做组合的题竟然懵逼了好长时间,去吃了顿饭就突然会做了。。。 如果没有每个人至少一个的限制的话那么答案显然是∏(c(n-1,a[i]+n-1)),相当于把每一种物品排成一排然后每排放(n-1)个隔板,第i个隔板和第i+1个隔板之间的物品就是第i个人的物品,显然每种方案对应着一种实际方案(会组合的 阅读全文
posted @ 2017-02-26 21:58 SD_le 阅读(403) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2017-02-25 21:12 SD_le 阅读(3) 评论(0) 推荐(0)
摘要:直接写的裸的半平面交,已经有点背不过模板了。。。 这题卡精度,要用long double ,esp设1e-20。。。 阅读全文
posted @ 2017-02-25 12:03 SD_le 阅读(220) 评论(0) 推荐(0)
摘要:1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 int n; 9 const double eps = 1e-13; 10 struct node 11 { 12 double x,y,r; 13 }b[1006],a[1006];int... 阅读全文
posted @ 2017-02-24 10:25 SD_le 阅读(344) 评论(0) 推荐(0)
摘要:一眼AC自动机上DP,f[i][j][0]到第j个节点表示前i位与n一样的方案,1表示不一样的方案。 事实证明我每回写数位dp都要wa到神志模糊,数据一有0就跪,所以加了各种特判。。。 因为如果数据中有0032这种的话直接dp会把32判为不合法,而事实上它是合法的,因为要去掉前缀0. 所以每回从根向 阅读全文
posted @ 2017-02-23 22:47 SD_le 阅读(273) 评论(0) 推荐(0)
摘要:1 #include 2 #include 3 #include 4 #include 5 #include 6 #define ll long long 7 #define N 300005 8 using namespace std; 9 const int ni = 3; 10 const int p = 1004535809; 11 ll pw(ll x,int y) ... 阅读全文
posted @ 2017-02-22 17:00 SD_le 阅读(268) 评论(0) 推荐(0)
摘要:一直忘了放模板。。。 把两个串连起来做个后缀自动机对每个字串统计答案就行了。 阅读全文
posted @ 2017-02-18 23:53 SD_le 阅读(284) 评论(0) 推荐(0)
摘要:1 2 #include 3 #include 4 #include 5 #include 6 #include 7 #define ll long long 8 #define N 2000005 9 using namespace std; 10 const int now=1mp; 47 int g(int x) 48 { 49 if(xmmp; 61 ll ... 阅读全文
posted @ 2017-02-18 22:54 SD_le 阅读(432) 评论(0) 推荐(0)
摘要:3772: 精神污染 Description 兵库县位于日本列岛的中央位置,北临日本海,南面濑户内海直通太平洋,中央部位是森林和山地,与拥有关西机场的大阪府比邻而居,是关西地区面积最大的县,是集经济和文化于一体的一大地区,是日本西部门户,海陆空交通设施发达。濑户内海沿岸气候温暖,多晴天,有日本少见的 阅读全文
posted @ 2017-02-17 19:52 SD_le 阅读(486) 评论(0) 推荐(0)
摘要:一道好题~~ 一个点到根传染需要的时间是这段路径上不同颜色的数目,一个点子树到根平均传染时间就是加权平均数了(好像是废话)。 所以只要用线段树维护dfs序就这个可以了,换根的话一个点的子树要么在dfs序中不变,要么被截成了[1,l)和(r,n]两段(当这个点为当前root的祖先),l和r即为包含当前 阅读全文
posted @ 2017-02-15 11:38 SD_le 阅读(377) 评论(0) 推荐(0)
摘要:f[i][j]表示i接j后面的最长长度,枚举中间的那个数用个hash表转移就行了。 水题。 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<map> #define N 2005 u 阅读全文
posted @ 2017-02-15 11:21 SD_le 阅读(258) 评论(0) 推荐(0)
摘要:这道题用到了Kruskal重构树,有个性质是这棵树是一个大根堆,而且每个点所能延伸出去的联通块在树的dfs序中是连续的一段,所以就可以用主席树维护了。 1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<c 阅读全文
posted @ 2017-02-15 11:19 SD_le 阅读(188) 评论(0) 推荐(0)
摘要:第一步先莫队分块。 对于每一块l~r,初始右端点设为r+1,然后每个询问先将右端点往右移,然后处理询问在l~r之间的部分,最后用一个栈再把l~r的复原。 具体来说是维护两个数组now1和now2,一个向右最长的长度,一个向左的长度,每插入一个值x,用x+1的now2更新x的now2,用x-1的now 阅读全文
posted @ 2017-02-13 19:55 SD_le 阅读(877) 评论(0) 推荐(0)
摘要:实现了线段树的分裂合并。题意大概是在长度2^30的序列中实现区间提取,区间合并。 复杂度nlogn,我也不知道为什么。 阅读全文
posted @ 2017-02-12 09:50 SD_le 阅读(872) 评论(0) 推荐(0)
摘要:替罪羊树套权值线段树。 计数式垃圾回收。 复杂度nlog2^n。 写了半个冬令营。 阅读全文
posted @ 2017-02-12 09:47 SD_le 阅读(200) 评论(0) 推荐(0)
摘要:动态最小生成树 阅读全文
posted @ 2017-02-12 09:42 SD_le 阅读(474) 评论(0) 推荐(0)

重置按钮