自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Just One Last Coding~♬

开心就好,每天要好好努力> <

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

原创 HOJ 2014年“新生杯”

A. 统计数字(数位DP)暴力的从1到n每个数字处理一遍是非常慢的,通过规律来计算得解可以大大优化。例如n = 465的情况:首先不考虑去掉前导0,那么从00到99,0~9每个数字出现的次数一是一样的,一共有100 *2个数次,平摊到每个数字则是都出现了20次;同理,100到199,除了1多出现100次以外,0 2 3 4 5 6 7 8 9又出现了20次;同理200~299,300~399;400之后,不能再统计到499,统计的规模要缩小,换成400~409,410~419

2014-12-30 16:36:37 832

原创 2014年总结

数次提笔也不知道该怎样起头,14年悲喜交加,还未准备好结束,转眼就真的到年底了。         个人生活方面,分开各个点总结大概是这样:         首先在人际交往方面,除了父母和一起搞竞赛的朋友,其他的人都甚少交流。大概这样大家都觉得我很高傲。。。本来做一个安静的美男子就好了,但是!我又很爱给圈子外的人安利acm,很不幸,扭曲力场太弱,不足以吸引其他人(安利失败),

2014-12-27 11:17:57 961 4

原创 POJ 2774 Long Long Message(后缀数组:倍增算法)

字符串的任何一个子串都是该字符串某个后缀的前缀。两个字符串的最长公共子串可转化为,求两者后缀两两比较的最长公共前缀的最大值。定义:后缀数组(sa[]),名次数组(rank[]):子串str(i...n)(1 <= i <= n)是原字符串str(1...n)的第i个后缀。对所有的后缀进行排序(字典序),得到第i个子串的名次rank[i],则定义sa[rank[i]] = i,即名次排在第i位的后缀是第几个。

2014-12-27 00:11:07 895

原创 Codeforces Round #284 (Div2)

A - Watching a movie快进看电影,要看到所有的精彩部分,给定快进的时间间隔,和每个精彩时间段的开始时间和结束时间。#include #include #include #include #include #include using namespace std;#define OT printf#define MAXN 50#define INF 0x7

2014-12-25 12:39:03 680

原创 HDOJ 4658 Integer Partition(整数划分:母函数+五边形数定理)

题意为将n划分为同一个数字出现不超过k-1次的划分方法总数。对于一般的整数划分,n的生成函数p[n]为:(1 + x + x^2 + ... )(1 + x^2 + x^4 + ...)(1 + x^3 + x^6 + ... )...表达式最终x^n的系数。解释:(1 + x + x^2 + ... )表示1取两次就是x^2,取三次就是x^3...(1 + x^2 + x^4 + ... )表示2取两次就是x^4,取三次就是x^6...(1 + x^3 + x^6 + ... )表

2014-12-22 23:42:49 1143

原创 HOJ 10444 The milliard Vasya's function(简单背包)

在不大于1000000000的数里,各个数位上的数字之和为s的数有多少个。很容易想到通过背包来做,但是如果只是简单按数位递推,如何排除0112和112这种重复的情况呢?处理的办法是不把0作为物品,但位数i不仅仅从i-1递推,而是从0到i-1都要统计进来。#include #include #include #include #include #include using

2014-12-21 19:40:53 818

原创 Uva 815 Flooded!(脑洞)

题目保证水会从海拔最低的格子开始填。虽说是求水在矩阵中的海拔,但把矩阵拆成一条链,把柱子从低到高排列,再从最低的格子注水,最后的海拔高度也是不会变的。相当于把水柱从高低排列了。#include #include #include #include #include using namespace std;#define INF 0x7fffffffint h[35 * 35

2014-12-19 20:54:55 2307 1

原创 Codeforces Round #283 (Div2)

A - Minimum Difficulty (贪心)#include #include #include #include #include using namespace std;#define MAXN 110#define OT printf#define INF 0x7fffffff#define RUN(x) freopen(#x, "r", stdin);#d

2014-12-19 00:18:45 662

原创 SPOJ 6340 ZUMA(区间DP)

黑书p123页例题1。k代表区间[l, r]的右边有且多少个和r相同颜色的球直接与r相连(消除后)。当k大于m的时候,和m的意义是一样的,为了节约空间,大于m的k一律化为m。

2014-12-16 21:14:53 1096

原创 HOJ 11109 Traversal of binary tree(前、中序遍历求后序遍历)

对于某个节点x,设以x为根节点的树在前序串中的所占位置从pl到pr,在中序串中所占位置为从il到ir。显然pre[pl]=x。搜出x在中序串中为位置为k,即in[k] = x,那么在前序串中,x的左子树的全部节点为pre[(pl+1)…(k-il+pl)]。对于右子树的范围:以x为根节点的右子树的总节点数为ir-id,x在前序中的截止点为pr,所以x的右子树的截止点应当为pr-(ir-id)+1。

2014-12-15 21:43:16 643

原创 HDOJ 5144 NPY and shot(三分)

原函数为单峰函数,所以不能用二分。#include #include #include #include #include #include using namespace std;const double pi = acos(-1.0);const double g = 9.8;double h, v, l, r, ml, mr, k;double f(double

2014-12-15 09:01:14 832

原创 Codeforces Round #282 (Div2)

A - Digital Counter(纯模拟)

2014-12-15 01:02:23 594

原创 SPOJ 196 Musketeers(区间DP)

黑书上的【例题3】。meet[l][r]代表l和r将会相遇,显然meet[l+1][r]为真。然后l和r能够相遇的条件是,能够找到一个k使得,l和k能相遇并且l可以打败k,r和k能相遇并且r能打败k。处理环用了一贯的方法,长度扩展为两倍然后拆为链。

2014-12-11 14:22:05 845

原创 POJ 2411 Mondriaan's Dream(状态压缩)

给定一个宽和高分别为w和h的矩形,用1*2的小矩形填满,可以有多少种填法。对于第i行的摆放状态,我们只用考虑上一行的摆放状态。而第i行有多少种摆法,取决于到达此时第i行状态的第i-1行的状态【晕了。。】

2014-12-09 18:11:53 591

原创 POJ 3071 Football(区间DP)

递推过程中应该考虑的是比赛的层数,比如这样:

2014-12-09 12:23:03 659

原创 HDOJ 5130 Signal Interference(圆与多边形面积交)

通过化简,发现p点轨迹是圆,于是问题转化为圆与多边形面积交。设k1 = k / (1.0 + k),k2 = k / (1.0 - k),则半径r = l * (k1 + k2) * 0.5(l为AB两点间距离)。ox = 0.5 * ((ax + (1 - k1) * (bx - ax)) + (bx + k2 * (bx - ax))),oy = 0.5 * ((ay + (1 - k1) * (by - ay)) + (by + k2 * (by - ay)))。

2014-12-08 20:18:07 963

原创 Codeforces Round #281(Div2)

A - Vasya and Football#include #include #include #include #include using namespace std;#define MAXN 100char away[28], home[28];int pa[MAXN], ph[MAXN], n;bool visa[MAXN], vish[MAXN];struc

2014-12-04 19:31:06 719

原创 HDOJ 5125 magic balls(树状数组优化)

递推方程BC的题解讲得很清楚了:if(a[i] > a[j]) for(int k = 0; k <= j && k <= m; k++) dp[i][k][0] = max(dp[i][k][0], dp[j][k][0] + 1);if(a[i] > b[j]) for(int k = 1; k <= j && k <= m; k++) d

2014-12-03 11:19:57 686

原创 HDOJ 5120 Intersection(求两圆相交面积)

求两个圆环相交面积,直接容斥即可。圆环面积 = 两个大圆面积交 - 大圆和小圆交 * 2 + 两个小圆交。#include #include #include #include using namespace std;#define eps 1e-8#define pi acos(-1.0)int sig(double x){ return (x > eps) -

2014-12-03 11:10:42 931

空空如也

空空如也

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

TA关注的人

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