自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hqd_acm的专栏

id:aibert CSDN更新,斜杠无缘无故变反,大家自己注意 CSDN更新,斜杠无缘无故变反,大家自己注意

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

原创 hdu 3632 A Captivating Match

类似FLOYED就是用一个数组记录两个数字是否可以交战头尾增加两个虚拟节点,处理比较方便#include #include const int MAXN = 100 + 12;int beat[MAXN][MAXN];bool map[MAXN][MAXN];

2011-07-31 21:26:22 1215

转载 解决HDU爆栈的问题

转载:http://forum.byr.edu.cn/article/ACM_ICPC/51264大家懂的,鉴于HDU用的是windows服务器,所以stack大小及其坑爹,稍微深一点的递归栈就会stack overflow。 通常的规避方法是用stack或者手写

2011-07-31 14:05:15 10104

原创 hdu-3637 Find a Fraction

从这个题目学到很多东西吧首先是处理输入吧,怎么可以比较方便的表示循环小数,标程写的十分好接着就是把左右端点表示成分数后,怎么找这个分数呢就是当两个端点跨越了整数时,取最小的整数,分母自然为1,这个是分子分母和最小的情况(至于为什么,动手比划一下

2011-07-31 11:09:21 1127

原创 hdu 1299

水题无奈数论还是比较水#include #include const int MAXN = 40000;bool isprim[MAXN];int prim[MAXN];int main(){ for(int i = 2; i < MAXN;

2011-07-30 20:00:10 916

原创 hdu 3894 East and West

抓住题目给出的那个重要条件,就是E和W存在割边接着就是找到那个最接近W的关键点,只要过了这个关键点,就不会存在什么时间相冲突主要就是调整一下E这边的点到达这个关键点的时间顺序,按照关键点到达这个点的深搜深度,如果深度相同,就错开接着先到的就去最远的W点

2011-07-29 20:05:40 1294

原创 hdu 3884 Hinanai Tenshi’s peach garden

比赛的时候卡题了,这题当时没有看。。。。。题意比较简单,不介绍了简单整理整理思想吧,有些细节的东西是看了标程才明朗起来。题目要求答案是最多收集几个桃子。这种比较容易想到是二分10^4的数据,必须是0(nlgn)以下的算法,二分的话就已经是0(lgn)了,所以下面的验证需要0(n)

2011-07-29 14:45:11 1141 2

原创 hdu 3883

比赛的时候竟然觉得要用二维线段树维护。。。。。比赛完发现只要转移方程写得好,很水的题DP还是比较水,思路还是不清晰,多练吧

2011-07-28 16:27:35 863

原创 hdu 3873

DIJ维护两个量,一个是保护该城市的城市所有被摧毁的最大时间,还有就是能到达该城市的最小距离,两者取最大值接着松弛操作的时候小心点,特别是用f]j]去更新d[j]的时候#include #include const int MAXN = 3000 + 123;const i

2011-07-28 09:48:10 1419

原创 hdu 3485

大水题,大水题#includeusing namespace std;const int mod=9997;int ans[10000];int d[10000],e[10000];int n;int main(){ d[1]=e[1]=1; d[2

2011-07-26 11:13:56 707

原创 hdu 3516

这个题目的证明略烦,但最后发现和石子归并差不多老样子,注意初始化#include #include const int MAXN = 1000 + 10;const int inf = 1 << 29;int dp[MAXN][MAXN], s[MAXN][MAXN];

2011-07-25 22:06:46 1099

原创 hit 2952 //石子归并 的 平行四边形不等式解法

与前面的几个四边形不等式稍微有些不同,但是还是比较容易证明出满足四边形不等式规则的接着注意一下初始化#include #include const int MAXN = 1010 * 2;const int inf = 1 << 29;int a[MAXN];int s

2011-07-25 15:59:46 1207

原创 hdu 3480

排个序,很容易可以证明出四边形不等式#include #include const int MAXN = 1000 + 123;int dp[MAXN][MAXN], cost[MAXN][MAXN];int s[MAXN][MAXN];int sum[MAXN], a

2011-07-25 11:20:55 967 1

原创 hdu 2829

稍微比划一下,可以知道cost[i][j]满足四边形不等式的规则#include #include const int MAXN = 1000 + 123;int dp[MAXN][MAXN], cost[MAXN][MAXN], s[MAXN][MAXN];int a[

2011-07-25 10:11:39 663

原创 BUPT 203 Palindrome

后缀数组变了个行就傻眼了。。。前面求出每个点为中心的最长回文字,接着对于一个[l,r]的查询,有两种二分方法第一是left = 1, right = r - l + 1, mid = (l+ r ) >>1, 对于[l+mid-1,r-mid+1]这个区间用RMQ求出一个最大值P

2011-07-22 16:17:48 559

原创 BUPT 202 Chocolate Machine

这道DP真的不是很难一行一行执行每行要预处理出对于每个i,他左边最靠近他的比他低的位置接着有两个数组,一个记录执行到i行,每个位置的最大高度和总和,如果A[i][j]接着从前往后开始f[i] = f[i -1] + s[i]  高度大于前面那个f[i] = f[最靠近他的]+矩阵

2011-07-22 11:55:57 507

原创 BUPT 201 Glorious Array

北邮邀请赛的题目,比赛的时候思路很乱,现在整理下吧。网上已经给出了有公式解法,我这里还是说说树状数组的解法吧题目只有两个操作,一个是将一个点的颜色取反,一个是询问有多少个端点颜色不同并且包含小于k的区间。总体思路是这样首先是用树状数组保存每个点的颜色,如果是1,那个点加1,这是初

2011-07-22 09:32:49 506

原创 hdu 3581 Beat It!

网上解法和标称都太扯了,压根就没有必要的事情首先对于每个白天或者黑夜的时间段进行处理,>2T的直接预处理掉接着用两个转移方程f[i] = max(f[i-1], f[i-t] +pd/pn)解了

2011-07-21 09:39:22 685

原创 hdu 3853 LOOPS

没什么好说的,去北邮比赛因为没考虑这个WA到比赛结束,郁闷啊,不然就绝对不止4题了#include #include #include const int MAXN= 1000 + 123;double a[MAXN][MAXN], b[MAXN][MAXN], c[MA

2011-07-20 22:18:43 675

原创 hdu 3862 The Lost Traveler

昨天悲剧的卡在这题上了和秦牛推出很多个版本的解法就是蛋疼的不过其实思路是比较简单的就是昨天想的那个关键点,就是把这些方向可以看成力矩一样的东西,也就是矢量吧。如果中间能回到原点,那么后面不管有任何操作,都能回到原点的用一句比较简洁的话概括,就是如果所有的向量都不位于任何一条直线的

2011-07-20 15:19:19 950

原创 HDU 3474 Necklace //单调队列

#include #include const int MAXN = 1000000 + 123;struct node{ int id, val; node(int x, int y): id(x), val(y) {} node(){}}q[

2011-07-20 11:29:04 662

原创 hdu 3530 Subsequence //单调队列

#include #include #include using namespace std;const int MAXN = 100000 + 123;struct node{ int id, val; node(int x, int y): id(

2011-07-20 09:34:45 895

原创 hdu 3401 Trade //单调队列+DP

这道题目还是很不错的首先,我们假定对于某一天的选择是买或卖那么状态转移方程是对于买f[i][j] = max (f[i][j], f[r][k] -  (j - k) * ap[i])  1 max(0, j - as[i]) 对于卖f[i][j] = max (f[i][j],

2011-07-19 10:25:04 1230 1

原创 hdu 3415 Max Sum of Max-K-sub-sequence

#include #include const int MAXN = 100000 + 123;struct node{ int id, val; node(int x, int y): id(x), val(y) {} node() {}} q

2011-07-18 15:00:28 723

原创 2823 Sliding Window //单调队列

Sliding WindowTime Limit: 12000MS Memory Limit: 65536KTotal Submissions: 18639 Accepted: 5331Case Time Limit: 5000MSDescriptionAn array of s

2011-07-18 10:52:27 509

原创 hdu 3830 Checkers

这题目的解法果然是很难想到有一个突破点就是任何一个状态,通过题目所给的移动,都能对应且唯一对应一个b*2=a+c(a所以以这个为根如果不是根的状态,可以让左右两个往里跳,依据是让和中间那个坐标距离缩小这样就可以看作为是向根移动具体的操作用的是辗转相除法的思想接着找初始状态和目标状

2011-07-14 10:13:41 1145

原创 hdu 3828 A + B problem

很犀利的一个状态压缩DP整理一下吧,昨天比赛一点思路都没有今天看了下题解,思路才清楚起来唉,我的DP太水了3个规则第1个规则是对于A和B转换成二进制转换第2个规则是重叠A串的后缀和B串的前缀第3个规则是如果B串是A串的子串,可以用A去覆盖B首先是将各个数字转换成二进制串,这里注意

2011-07-13 14:48:27 997

原创 hdu 1890 Robotic Sort //splay tree

/*这题因为不是对数列第K个,而是对初始化标记的序号操作,所以标记的处理很不一般*/#include #include #include using namespace std;const int MAXN = 100000 + 123;const int INF

2011-07-11 17:06:17 820

原创 spoj 1470 //splay tree

1470. Another Sequence ProblemProblem code: SEQ2You are to write a program to perform some operations on a given sequence.These operations a

2011-07-10 23:22:02 857

原创 【HNOI2002】营业额统计 //SPLAY TREE

#include const int MAXN = 100001;const int INF = 1 << 30;struct NODE{ int c[2], p, v, mul, sz; bool d;}T[MAXN];int n

2011-07-05 14:40:22 1071

原创 【NOI2004】郁闷的出纳员 // SPLAY TREE

#include #include const int MAXN = 100001;const int INF = 1 << 30 ;struct Node{ int c[2], p, v, mul, sz; bool d;}T[M

2011-07-05 10:45:53 1153

原创 hdu 3435 A new Graph Game

//邻接表 2859MS#include#includeusing namespace std;const int maxn=1010*2;const int maxm=10010*10;//最大顶点数和边数const int maxl=99999

2011-07-03 16:17:47 1396

原创 hdu 3434 Sequence Adjustment

Sequence AdjustmentTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 477

2011-07-03 15:30:36 1429

原创 hdu 3433 A Task Process

重新开始做去年多校联合训练的,准备今年的多校联合训练的,水一水吧//二维的#include #include #define MAX(a,b) ((a)>(b)?(a):(b))#define MIN(a,b) ((a)<(b)?(a):(b))in

2011-07-03 10:29:20 698

空空如也

空空如也

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

TA关注的人

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