自定义博客皮肤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)
  • 收藏
  • 关注

原创 hdu 2870 Largest Submatrix 最大子矩阵

题意:有若干种 转换字母的方法,问转化后 可以得到的 最大相同字母矩阵 是多大。 矩阵大小= n*m做法:全转成a,然后不能的位子是0,可以的位子是1。然后 deal 里就是一维的最大矩阵 的处理了。 是一种dp。 做法和一维的 hdu 1506 差不多。然后再把 全是 b和c 的求出来 求最大值就好了。

2015-09-14 21:47:40 923

原创 hdu 5442 Favorite Donut 最小表示法+KMP 2015长春网络赛

题意:有一个len长度的环,问有没有 最大的 长度为 len 的 串在 这个环里。如果有的话,且只有一个 ,输出其 开头的下标, 下标从1 开始, 再输出0 表示 顺时针 1 表示逆时针如果多个,输出 开头下标最小的那个。如果 还有 ,就是顺时针 逆时针 一样的情况 输出 下标 0。做法:很容易想到最小表示法然后 正序直接用最大表示法 ,可以得到 最大字典序,最小下标的 开头位置。逆序 就把串反下,用最大表示法,可以得到 最大字典序, 也是下标最小的 开头位置, 但是因

2015-09-13 19:08:01 1696 2

原创 spoj 10606 BALNUM - Balanced Numbers 数位dp

题意:问A到B之间有多少个数,有多少数 符合以下两个条件。数位0-9 中 ,每一个奇数数位有 偶数个, 偶数数位有奇数个。也就是如果有1 的话,那必须有偶数个1。如果有2的话,必须有奇数个2,当然没有也可以。做法:弄个三进制记录状态,表示0-9 数位,各个数位出现过没有,没有出现在对应的三进制位标记0,出现奇数次 标记1, 出现偶数次标记2。注意前导零是不能算的。

2015-09-05 10:30:29 1422

原创 hdu 5204 Rikka with sequence yy题

题意:n个操作。一开始一个空序列op==1 给你一个数, 如果序列为空,就添加这个数。序列非空,就在集最前面加这个数,并在以后的所有数字后面加上这个数字。op==2 询问区间第k大。做法:有一个规律。 对于1到L区间。前一个1操作产生的数 出现 (L+1)/2 次,然后再前一个出现 (L-(L+1)/2+1)/2次类推。每次 都会 折半,所以最多出现60个数。所以先把1到(L-1)区间 中 出现的数 -1, 然后把1到R 区间中出现的数 +1,然后排序下这60个数,数到第

2015-09-04 19:29:15 804

原创 hdu 4507 吉哥系列故事——恨7不成妻 数位dp

做法:dp[i][j][k] 表示pos位之后 当之前的的 位数和%7 ==j 之前的 十进制数在pos位之前%7 == k 的 数的平方和。开个结构体 ,表示这个dp 状态的 答案存在 fang里, 然后有多少个数 存在 ge里, 这些数的和 存在 sum里。然后 算式推下,转移下。

2015-09-04 13:08:44 644

原创 hdu 3045 Picnic Cows 斜率优化 dp中有间隔限定

题意:有n头牛,选若干个集合,每个集合中至少要有T头牛。 要求把集合中 欢乐值高的 降到全一样。问最少要降多少。做法:分组肯定接近的数分一起,所以可以先排个序。然后 dp[i]表示 前i头牛 需要最少降多少欢乐值,使其达到要求。dp[i]=min{dp[j]+sum[i]-sum[j]-(i-j)*num[j+1];可以推出:y(j)=dp[j]-sum[j]+j*(num[j+1])x(j)=num[j+1] 在这种集合有个数要求的斜率优化中,在优化第i个时,入队是 入 i-k

2015-09-04 09:45:58 682

原创 hdu 4734 F(x) 数位dp

题意:问 0到b 之间有多少x符合 F(x)<=F(a)做法:数位dp之前想到的状态,第二维sum 代表 这位之前 二进制数 加和是 sum, 这位及之后 有多少种数 二进制加和 + sum<=F(a)然后超时了一发,加了个999的剪枝,200ms 过了。原因是里的dp意义和F(a)有关,所以每次要清空数组后来看了别人的,发现原来很简单,正确的状态 sum 表示 这位及之后 有多少种数 二进制 加和<=sum这里的dp值是固定的,每次不用清空,所以速度快很多。

2015-09-03 19:12:17 511

原创 hdu 3480 Division 斜率优化

题意:把n个数字 分成m个集合。 每个集合的价值是 这个集合中 (max-min)^2。 输出最少的价值做法:如果想价值最小,不妨先排个序。这样 最后的答案肯定在排序后的数组中 是连续的。可以得到数组 dp[i][c]=min{dp[j][c-1]+(num[i]-num[j+1])^2直接dp 复杂度 N*N*M 瞬间爆炸。可以斜率优化来写;推导出 y(j)=dp[j][c-1]+num[j+1]*num[j+1]x(j)=num[j+1]当 k<j<i[y(j)-y

2015-09-03 09:02:43 661

原创 hdu 2829 Lawrence 斜率优化

题意:n长度的轨道,截m处。 每段的价值是 这段里 每个数两两相乘的和。问不同的截法最大的价值和。做法:i是轨道长度,j是炸药的量cost[i]是前i个数字 两两相乘的和。dp[i][j]=min{dp[k][j-1]+cost[i]-cost[k]-sum[k]*(sum[i]-sum[k])}可以推倒出来: y(i)=dp[i][]-cost[i]+sum[i]^2x(i)=sum[i]斜率是 sum[i]

2015-09-01 21:34:05 692

空空如也

空空如也

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

TA关注的人

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