自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 问答 (7)
  • 收藏
  • 关注

原创 codeforces 842C dp

题目大意:给你一棵树,树上的每一个节点有一个值,定义一个节点的美丽值为这个节点到根节点的的路径上的每一个个节点(包括自己)的所有的值的最大公约数,现在给定一种操作,对于某一个点的美丽值现在可以把路径上的任意一个点的值变为0,(规定GCD(x,0)=x)问对于每一个个点单独考虑,输出每一个点的美丽值的最大值。思路:在大佬的帮助下明白了dp的思路,定义dp[i][0]表示从根节点到i已经有一个被改变为0

2017-08-31 13:55:51 295

原创 2017多校9 Two string hdu 6170 dp

题目链接 题目大意:给你两个字符串A B,A由大小写字母组成,B由大小写字符和 . 和 *组成现在问你AB能够匹配 其中 . 可以匹配任何字符 * 表示其前面一位的字符可以出现任意多次 可以为0次。思路:首先来考虑dp[i][j]表示A串1-i用B串的1-j能否匹配 转移的时候就考虑B串 如果当前字符是 . 那么dp[i][j]=dp[i-1][j-1] 如果是普通字符 dp[i][j] =

2017-08-26 21:08:52 199

原创 hdu6138 多校2017 ac自动机or后缀数组

题目链接 题目大意:给定n个字符串,m个询问,对于每一个询问,给出x,y 问第x个串和第y个串的相同连续子串当中,作为其他(包括自己)串的前缀的最长长度。两种思路:第一种ac自动机 首先把所有的串建立一个fail树,那么对于询问把第一个串在树上跑一遍,把所有匹配的节点标记,然后让第二串跑一遍,如果遇到相同匹配的节点,记录当前的最大深度就可以了。 代码:#include<iostream>#i

2017-08-23 21:03:39 446

原创 2017 CCPC网络赛 hdu6153 KMP

题目链接 题意:给你连个字符串,s,t 求出t的所有后缀在s中出现的次数乘后缀的长度。 一开始想的后缀数组,tle,最后才知道是kmp 首先把s 和 他翻转一下,这是后就相当于求前缀了,然后求出t的next数组,然后对s跑kmp,跑的时候记录每一个长度匹配的次数,然后对于某个长度,如果他匹配了 比他小的也就匹配了,所以最后在类似求一个后缀和。 代码:#include<iostream>#i

2017-08-20 13:44:43 338

原创 2017 多校7场 hdu6129 蜜汁规律

首先来考虑前面每个数在m次变换后对后面的某一个数的异或次数,因为偶次异或相当于没有异或,奇次相当于异或一次。我们来考虑一下第一个数对后面的贡献次数 第一次 1 0 0 0 0 第二次 1 1 1 1 1 第三次 1 2 3 4 5 第四次 1 3 6 10 15 斜着看其实就是一个杨辉三角。 那么对于每一个次数就是C(x+y-2,x-1),然后就是判断这个值的奇偶就可以了,可以去百度一发

2017-08-16 21:51:20 659

原创 关于曼哈顿距离的最小生成树 POJ3241

题目地址 题目就是给你n个点 求n个点的曼哈顿距离的最小生成树 输出所有边中第k大的的边的权重。 n个点那么有有n∗(n−1)n*(n-1)条边如果采用朴素的prim算法建边就是O(n2)O(n^2)的复杂度,我们来考虑一下曼哈顿距离的特殊性,其实不是所有的边都需要,在建边的时候就可以去掉很多多余的边。 如图,对于给定的一些点我们选取一个点那么可以以这个点为原点建立一个直角坐标系,然后把每一个

2017-08-09 21:57:37 1041

原创 hdu6070 多校第四场 线段树+二分

看了题解才知道这怎么做,其实之前做过一道类似的线段树的题这里,但是比赛的时候还是没有做出来。根据官方给的题解 其实我们要求的就是这个size(l,r)r−l+1\frac{size(l,r)}{r-l+1} 那么我们令ans=size(l,r)r−l+1ans = \frac{size(l,r)}{r-l+1} 现在就是求一个最小的ans,我们来二分枚举答案,也就是说如果存在:mid>size(

2017-08-06 15:55:30 305

原创 codeforces 835D 区间dp

简单的区间dp dp[i][j]dp[i][j]表示区间i-j的回文度数 转移方程就是在si=sj且dp[i+1][j−1]>0s_i=s_j 且 dp[i+1][j-1]>0时dp[i][j]=dp[i+1][(i+j)/2]+1dp[i][j]=dp[i+1][(i+j)/2]+1#include<iostream>#include<cstdio>#include<cmath>#in

2017-08-02 17:07:27 256

原创 codeforces #426 div2(The Bakery)834d

题目链接 本菜感觉这个题目真是难,看了好久的题解才懂起,大致题意就是给一个数组,把数组连续的分为k部分,每一部分的值等于这部分不同的数字的个数,要让所有的值加起来最大,问怎样分。首先我们来看一下dp: dp[i][j]dp[i][j]表示前i个数字分成j组的的最优方案,那么很容易就能够得出一个状态转移公式 dp[i][j]=max(dp[t][j−1]+F(t+1,i),j−1<=t<i)dp

2017-08-01 21:52:24 132

空空如也

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

TA关注的人

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