摘要: 1856: [Scoi2010]字符串 Description lxhgww最近接到了一个生成字符串的任务,任务需要他把n个1和m个0组成字符串,但是任务还要求在组成的字符串中,在任意的前k个字符中,1的个数不能少于0的个数。现在lxhgww想要知道满足要求的字符串共有多少个,聪明的程序员们,你们能 阅读全文
posted @ 2017-03-10 18:52 SD_le 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 写一篇博客备忘,以后应该会渐渐加一些东西。 关于组合数的一些公式 $$\sum_{i=0}^{n}C_{n}^{i}*C_{m}^{i+k}=\sum_{i=0}^{n}C_{n}^{n-i}*C_{m}^{i+k}=C_{n+m}^{n+k}$$ 相当于把n+m个物品分两半,枚举前一半和后一半分别 阅读全文
posted @ 2017-03-10 18:34 SD_le 阅读(1288) 评论(8) 推荐(3) 编辑
摘要: 因为要在n个里面选k个,所以我们先枚举选的是哪$k$个,方案数为$C_{n}^k$ 确定选哪k个之后就需要算出集合交集正为好这$k$个的方案数,考虑用容斥原理。 我们还剩下$n-k$个元素,交集至少为$k$的方案数为$2^{2^{n-k}}$。 相当于在仅有剩下$n-k$个元素的集合里随便选,最后再 阅读全文
posted @ 2017-03-10 10:39 SD_le 阅读(695) 评论(2) 推荐(0) 编辑
摘要: 把每张卡牌看成两个点,裸的线段树维护连通性。 阅读全文
posted @ 2017-03-08 20:45 SD_le 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 题目大意是让你在一棵树上找到一条路径使得(路径边权和*路径最小值) 最大。 这道题有两种方法。 1.点分治,考虑过重心的每条路径是否可能成为答案,枚举从根出发的每一条路径中的最小值等于总路径的最小值,那么选的另一条从根出发且不走同一棵子树的路径中的最小值必须大于等于这条路径的最小值,所以我们可以先把 阅读全文
posted @ 2017-03-08 16:05 SD_le 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 这题好神啊,居然是fft,表示一直在往数据结构上想。 把'*'当成0,那么两个串可以匹配当且仅当$$\sum (a[i]-b[i])^2\times a[i]\times b[i]==0$$ 我们可以把平方拆开,然后就变成了几个乘积相加的形式,那就大力翻转一个串然后跑FFT。 因为最开始MLE了所以 阅读全文
posted @ 2017-03-06 20:19 SD_le 阅读(498) 评论(2) 推荐(0) 编辑
摘要: 因为曼哈顿距离很好求,所以要把每个点的坐标转换一下。 转自:http://blog.csdn.net/slongle_amazing/article/details/50911504 题解 两个点的切比雪夫距离为d=max(|x1−x2|,|y1−y2|) 写一下曼哈顿距离的常用处理方法 两个点(x 阅读全文
posted @ 2017-03-06 17:01 SD_le 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 用的括号序列,听说比较快。 然并不会预处理,只会每回暴力找匹配的括号。 阅读全文
posted @ 2017-03-01 20:23 SD_le 阅读(267) 评论(0) 推荐(1) 编辑
摘要: 用四进制表示状态。 用hash表把一个四进制数映射到一个小数上。 这样就可以memset了。 转移的时候分类讨论一下,特判下边界情况。 阅读全文
posted @ 2017-02-28 23:24 SD_le 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 为什么这道题网上所有题解写的都是N*Len的trie树的暴力啊,4E的复杂度。。。 为什么暴力还跑这么快啊TAT。。 有一个O(Len)的做法就是先把AC自动机建出来,因为每个字典串的长度很小,所以我们可以用fail树状压一发,每个节点记录一个值ss,表示这个点向前(1~10)的长度的串是不是一个字 阅读全文
posted @ 2017-02-28 16:55 SD_le 阅读(1300) 评论(0) 推荐(0) 编辑
摘要: 显然如果收集了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 阅读(1154) 评论(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 阅读(245) 评论(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 阅读(589) 评论(0) 推荐(0) 编辑
摘要: 因为NOI WC的时候一直在生病,浑浑噩噩就过去了7天,基本没什么记忆了,所以就压到一篇里好了。 day -1 第一次发现高铁的椅子原来还可以转过来,于是我们四个小伙伴面对面愉快的打了一路宣红A。 在火车上就感觉嗓子有点疼,有种不详的预感。 day 0 宿舍晚上开着空调,宿舍里奇干无比,嗓子疼的睡不 阅读全文
posted @ 2017-02-26 22:41 SD_le 阅读(1440) 评论(1) 推荐(0) 编辑
摘要: 好久没做组合的题竟然懵逼了好长时间,去吃了顿饭就突然会做了。。。 如果没有每个人至少一个的限制的话那么答案显然是∏(c(n-1,a[i]+n-1)),相当于把每一种物品排成一排然后每排放(n-1)个隔板,第i个隔板和第i+1个隔板之间的物品就是第i个人的物品,显然每种方案对应着一种实际方案(会组合的 阅读全文
posted @ 2017-02-26 21:58 SD_le 阅读(391) 评论(0) 推荐(0) 编辑
重置按钮