自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

穹妹的家

In solitude , where we are least alone.

  • 博客(11)
  • 收藏
  • 关注

原创 [dp+树状数组优化] CF597C. Subsequences

题意:给定1~n的一种排列,求长度为k+1的上升子序列的个数。 (0 题解:DP。首先可以很容易的想到DP[i][j],表示以i为结尾长度为j的上升子序列的个数。也可以很容易的想到转移 DP[i][j] = sum(DP[k][j-1]) ( k 但是我们也可以很容易的发现,这个转移是O(n)的。由于是1~n的排列,而且n这样做之后如何转移呢?DP[i][j] = getsum

2016-03-27 11:33:44 636

原创 [容斥+lucas] LightOJ 1124 - Cricket Ranking

LightOJ 1124 - Cricket Ranking题意:有k个区间[l, r],从每个区间里取一个整数,问k个数和为n的方法数。题解:显然的,题目可以转化成从k个区间[0, r[i]-l[i]] (1可以理解成x1+x2+x3+...xn = s的非负整数解的个数,其中xi∈[0, v[i]]。A*表示我们需要求的多重集合,A*={v[1]*a1, v[2]*a2,

2016-03-26 19:11:31 698

原创 [堆+贪心] CF596C. Wilbur and Points

CF596C. Wilbur and Points题意:太难懂了。有一个平面点集,对集合中任意一点(x,y),满足以原点和(x,y)构成的矩形边上和内部的所有点也都在集合里。现在要给点标号,为了美观,当给(x,y)标号为i时,要求以(x,y)为左下角的矩形边上和内部所有点(如果在集合内)的标号都不小于i。然后还有一个条件,标号为i的点(x,y)必须满足 y-x == wi。

2016-03-24 20:49:26 355

原创 [DP] CF415D. Mashmokh and ACM

[DP] CF415D. Mashmokh and ACM题意:一个序列a1, a2, ...., an,如果满足ai%ai-1 == 0 ( 2 <= i <= n ),那么就叫做好序列。现在给定n和k,其中1<=a1<=a2<=....<=an <= n,求长度为k的好序列的个数,答案对1e9+7取模。题解:水DP,用dp[i][j]表示最后一项是i,长度为k的好序列的个数。

2016-03-24 19:17:28 723

原创 [BFS] CF653E. Bear and Forgotten Tree 2

E. Bear and Forgotten Tree 2题意:bear有一颗n个节点的树,现在他忘了这个树的结构,只知道有m条边不可能存在,还记得1号节点的出度是k,问可不可能存在这样一棵满足条件的树。题解:首先保证1号点的出度要大于等于 k,然后去掉1号节点,看其他点的连通性,求出连通块缩点,然后试着用1号节点去连接这些连通块,显然当连通块的数量大于k的时候就是无解。还有种情况就

2016-03-23 15:34:50 615

原创 [数位dp+二分] LightOJ 1105 - Fi Binary Number

题意:定义Fi-Binary Number,只含有0和1,不含前导0和连续的1。按字典序,前几个数为1,10,100,101,1000,1001。求第n个FBnumber。题解:通过数位dp可以快速求出0~n中有多少个FBnumber,然后二分求出最小的n就行了。#include#define ll long long intusing namespace std;const ll

2016-03-19 20:30:27 460

原创 [容斥] LightOJ 1117 - Helping Cicada

题意:给个正整数n,然后给m个整数,求1~n有多少个数不能被这m个数中任意一个整除。(1 思路:裸容斥,考虑1个数k,1~n有[n/k]个数能被k整除,[a]表示a向下取整,所以ans= n-SIGMA([n/num[i]])(1#include#define ll long long intusing namespace std;ll num[16];int f[2] = {1,

2016-03-19 20:13:02 725

原创 [数位DP] hihoCoder#1033 交错和

hihoCoder#1033描述给定一个数 x,设它十进制展从高位到低位上的数位依次是 a0, a1, ..., an - 1,定义交错和函数:f(x) = a0 - a1 + a2 - ... + ( - 1)n - 1an - 1例如:f(3214567) = 3 - 2 + 1 - 4 + 5 - 6 + 7 = 4给定 

2016-03-05 19:59:22 612 3

原创 [AC自动机+数位DP] ZOJ3494 BCD Code

ZOJ3494题意:先理解BCD编码,不是普通的二进制,设一个n位的整数x= An*10^n-1 + An-1*10^n-2 +...+ A1*10^0,那么x的BCD编码为An的二进制拼接上An-1的二进制拼接上An-2...直到A1。 所以 127的BCD编码为 0001 0010 0111。一个n位的整数,其BCD编码有n*4位。然后题目有一个只包含01串的集合S,要求[A, B]范

2016-03-05 17:23:53 668

原创 [数位DP] HDU4734 F(x)

HDU4734题意:设整数x的十进制表示为An*10^n-1 + An-1*10^n-2 ... A1*10^0, 定义函数F(x)=An*2^n-1 + An-1*2^n-2 +...+A1*10^0,然后对任意x∈[0, B]求F(x)值不超过F(A)的x的个数。解法:数位DP。 DP[i][j]表示1~i位的数中F函数值不超过j的数的个数,DP[len][F(A)]即为答案。技巧

2016-03-05 16:45:53 370

原创 [基础数位DP] HDU2089 不要62 HDU3555 Bomb

做了这题数位DP就入门了。记忆搜索的写法非常简单,已加入模板。#includeusing namespace std;int dp[15][2];int num[15];int dfs(int pos, int st, int f){ // st值 0表示不含4且不以6结尾 1表示不含4且以6结尾 2表示含有了4或者62,转移时其实直接舍去了,无需关注 if(pos < 1

2016-03-05 16:10:40 409

空空如也

空空如也

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

TA关注的人

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