自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 Codeforce round340 div2

Codeforces round 340 div2A:题意:每次可以走1-5步,问你最少多少步走到x。不说了..#include #include #include #include #include #include #include #include using namespace std;int Ans,n;int main() { scanf("%d",&

2016-01-24 09:58:04 590

原创 Codeforce Educational Round 6

Codeforce Educational Round 6A:答案就是max(abs(x1-x2),abs(y1-y2)).B:打一张表就行了。C:题意:将一个序列尽量分成多的线段,线段两两不相交且每一条线段中都有且仅有一对权值相同的数。贪心即可,用map代替hash,每次找到2个就clear。#include #include #include #include #i

2016-01-22 09:33:23 470

原创 bzoj3926诸神眷顾的幻想乡

题意:给出一棵树,每个节点上有一个字符,问整棵树一共多少不同的串?(保证叶子节点小于等于20)难点1在于怎么统计到所有的子串,直接统计肯定是不行的,我们注意到叶子节点小于等于20,我们考虑将每个叶子节点作为根把树给提起来,然后定义这棵树的子串为从上到下的一个串(深度从浅到深),首先我们发现这样可以不考虑树上子串的复杂问题了(因为是有序的),其次我们发现这样之后包含了树上的所有子串(虽然我不

2016-01-21 19:03:00 948 1

原创 bzoj3998

题意:给出字符串,求其中字典序第k小的子串。我们设Ans[s]为状态s之后一共有多少子串,这个在建完图之后倒叙更新一遍就可以了。#include#include#include#include#include#include#include#includeusing namespace std;int n,T,K;char s[1000010];struct node

2016-01-21 18:56:30 447

原创 bzoj2946公共串

题意:求n个字符串的最长公共子串。    我们先建出一个串的后缀自动机。考虑后缀自动机的一个性质就是到当前状态s的所有路径都是互相包含的,这说明了什么呢?我们设Ans[i]是i状态目前能够匹配到的最长长度,那么假设当前串在i匹配的长度是x,那么Ans[i] = min(Ans[i].x),能直接取min就是因为上面的兴致。所以我们现在的目的就是求出所有的Ans[i],再取max就行了。

2016-01-21 18:53:39 468

原创 后缀自动机

基础知识:step[i]表示的是字符串i在原字符串中的位置。Pareint[i]表示root到parent[i]的子串是root到i的最长后缀。后缀自动机遍历可以得到原字符串的所有子串。特殊技巧:一.后缀自动机的不同子串数有两种求法:1.       Ans = step[i]–step[parent[i]] (12.       Ans[i] = Ans[son[i]

2016-01-21 18:52:48 518

原创 bzoj1758+WC2010

题目大意,给出一棵树,有边权,找出其中一条包含了不少于L,不多于R条边的路径,使得  Average(v(e)) 最大,上式表示所有选择的边的平均权值。(n思路:因为是平均数所以想到了二分(其实根本想不到),我们二分最后的答案,将树上所有边都减去当前二分到的的平均数,然后再在树中找有没有一条包含了不少于L,不多于R条边的路径,使得路径总长>=0了,如果有,说明当前答案小了,否则当前答案大了

2016-01-19 20:36:18 978 1

原创 Codeforces round339 div1 D

第一次做虚树的题…题意:给出一棵树,多次询问,每次给出k[i]个点,询问将这些点从树上分离开来最少需要删除多少个点,保证k[i]的和不超过100000.我们先建虚树,然后在虚树上Dp就可以了,我们设Dp[i][0/1],若为0表示这个点子树中所有关键点与这个点都断开了,1表示还有1个关键点连在这个点上。(不可能有大于等于2个点,不然就不合法了)。那么若当前点是关键点,Dp[i][0

2016-01-18 11:59:38 433

原创 虚树入门

今天学了一下虚树,简单谈一下有什么用。    所谓虚树,其实就是把询问中需要用到的点建到另一棵树上,比如如果我们当前询问一条链上的两个端点,原本如果做dfs dp的话我们的复杂度是o(n)的,但是如果是虚树,那么树上就只会有这两个端点,两个端点之间的那条边记录了原本整条链上的信息。于是复杂度变成了o(2)的。    那么怎么建虚树呢?一般题中除了给出的询问点(之后成为关键点),我们还会用到

2016-01-18 11:58:41 8209

原创 求n维前缀和

#include #include #include #include #include #include #include #include using namespace std;int n,A[2000010];int main() { scanf("%d",&n); for(int i = 0;i <= n;i ++) scanf("%d",&A[i]); for

2016-01-16 16:05:03 1204 1

原创 无名概率题1

题目大意:n个点构成一个环,相邻两点之间有一条边,每次随机选出两个点,l,r,从l走到r,(若l==r则绕环一整圈),问期望多少次走完所有的边。(n(保留10位小数,不四舍五入,得分是与标答相等的位数)思路:数据范围感人啊,骗分的话直接随机跑个几十亿次,这样几乎能保证每个点3-4分,但是既然数据都这么小了,为什么不记忆化状态压缩搜索呢?我们设f[i]为从i状态走完所有边的期望步数,

2016-01-16 16:01:29 374

原创 Codeforces Educational round 5

A:比较字符串的大小,去除前导零,没啥说的…#include #include #include #include #include #include #include #include using namespace std;int A,B,lens,lent;char s[1000010],t[1000010];int main(){ gets(s + 1);

2016-01-15 20:19:10 320

原创 Codeforces round339 div2

A:大意:给出l,r,k,输出k在l到r之间的所有整数次幂,没有输出-1.(l,r,我做过最坑的A题,没有之一,原本我根本没有想到枚举,在那里乱做除法(不过好像也是我除法写错了的问题),结果后来发现枚举是logk的复杂度….python好多啊..用c++直接乘会爆long long,所以判断是否乘过了r用除法判断,即r/now < k ?#include #include #inc

2016-01-15 19:55:56 245

原创 无名线段树2

题目大意:维护一个算式,,每次询问一个x带入算式的值是多少,从左到右计算,计算有三种:’+’,’*’,’^’,例子如下:    算式为 +2 *3 ^2 +4    X=3时,Ans=((3+2)*3)^2+4=229.    X=2时,Ans=((2+2)*3)^2+4=148.支持这两种操作:    1:询问x带入算式的值。    2:将第k个地方的计算符号改变。

2016-01-14 20:19:30 245

原创 中国剩余定理

不考知道啊....

2016-01-14 18:37:30 287

原创 poj openjudge 1036 gugle seating

传送门点击打开链接题目大意 :给出n*m的矩阵,若矩阵该位置为1,则为一个人,若为2则为一台电脑,若为0,则为空地,求最大匹配人数。(匹配的意思是如果一个人相邻有两台电脑,且这两台电脑不在同一行或者同一列,即人,两台电脑在矩阵中构成了‘L’型,则算一种匹配,一台电脑只能和一个人匹配。)(n,m 思路:首先我们意识到一个人所匹配的电脑一定是不同行的,即不同奇偶,奇偶让我们想到

2016-01-13 19:39:34 419

原创 无名网络流1

题目大意:给出一个无向图,边权等于这条边连接的两个点的点权的抑或值,一直一部分点权,填出剩下的点权使得所有边权之和最小,求出这个最小值。(n思路:    1)首先无论是暴力还是标算都需要先考虑到一点就是拆位,将每一位分开考虑,这样才能比较方便的判断这个点取0还是1划算(暴力是拆位+穷举).    2)那么拆位之后我们就发现了,问题转化成了一些黑白点,一些未染色的点,我们将未

2016-01-13 08:14:15 271

原创 无名数学题1(国王奇遇记减弱版)

真的是难啊......证明如下:然后k^2递推就可以了

2016-01-12 21:39:29 297

原创 无名线段树1

题目大意:给出一个序列A,每次询问l到r之间的和,之后将这段区间的数全部平方。(答案Mod 9223372034707292160输出)序列长度小于等于10w,序列中的数一开始小于Mod.操作数量小于等于10w。看起来确实很难。仔细玩一玩那个合数也没有发现什么有趣的性质,(虽然phi[Mod]=2^30(好像是这个)),但是更加可怕的性质还在后面。我们发现对于任何一

2016-01-12 18:37:44 363

原创 网络流论文推荐

这次下决心要一次性解决网络流和数学问题了,突然才发现自己连费用流都没怎么写过,看来还是太naive.最大流与费用流点击打开链接最小割等问题(bzoj1001)点击打开链接有上下界的网络流问题(如营救皮卡丘等)点击打开链接

2016-01-11 22:09:20 745

原创 初学polya

一篇比较好的论文:http://wenku.baidu.com/link?url=KSN5ZBbKMsHr17dRdMIXnXQHi0HLMM8cRhC2d32zFmHFk3LF288Y9h50yIQCBNnkgeAPFM0iC1Y8HT-TyLK-wTaQq-eW5WV3UU4tHKBjLAW基本定理 :    1,burnside引理: Ans=(D(1)+D(2)+...D(G))/

2016-01-11 22:04:56 612

原创 JSOI2015 day1

JSOI2015 day1t1:题目大意 设全集为1个拥有n个数的集合,现在把全集的子集填入k行的三角形中,其中三角形第i行有i列(有点像杨辉三角).要求对于i行j列填入的子集f[i][j],必须使得f[i][j]为f[i-1][j]的子集,同时也要是f[i][j+1]的子集.(当f[i][j]==f[i-1][j]这种情况发生时也认作合法).给出n和k,求方案数mod(1e9+7

2016-01-09 16:39:17 1022

原创 Codeforces round338 div2

codeforces round338 div2总结A:....B:英文阅读题啊...先Dp出到每个点的最长上升序列,统计答案即可.注意一下平时的习惯,这道题我一开始以为无所谓就搜索就t了,fst了之后才反应过来....注意:开long longC:暴力跑kmp.(后缀自动机可以o(n)做).D:pp水爆了...答案就是(i^c[i])连乘,c[i]为质

2016-01-09 16:23:34 402

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除