自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

tmeteorj的专栏

你若是天才,我便是疯子。

  • 博客(15)
  • 资源 (7)
  • 收藏
  • 关注

原创 POJ 2951 Cake Cutting

题意:给定一个w*h的蛋糕,将其分成m份,也就是切m-1刀(必须保证每次都将一块蛋糕切成两份,按照水平或者竖直),求最后m份中最大的那份的面积最小是多少。 题解:记忆化搜索,dp[k][i][j]为将一块i*j的蛋糕切k刀的最大面积的最小值,枚举下一刀的横竖以及切的位置和其中一份的刀数。 #include #include #include using namespace std; const

2013-03-26 17:37:29 1281

原创 POJ 3003 Spiderman’s workout

题意:蜘蛛侠爬墙锻炼,总共爬n次,能上能下,但最后必须落在地面,且中途不能爬到地下去。要按照最优策略即爬的最高点必须要尽可能低。 题解:典型DP题,dp[i][j]代表第i步爬到j高度时所爬过的最高点,同时用pr[i][j]代表上一次的高度,状态转移就一加一减就行了,最后dfs输出结果就行。 #include #include #include using namespace std; int

2013-03-26 17:08:43 1409

原创 POJ 1312 Numerically Speaking

题意:26进制与10进制互相转换。 题解:JAVA的BigInteger偷渡之。 import java.math.*; import java.util.HashMap; import java.util.Scanner; class Main{ static boolean isdigit(char x) { return x>='0'&&x<='9'; } static vo

2013-03-25 19:11:33 1195

原创 POJ 2373 Dividing the Path

题意:长度为L的区间,有N头牛有各自喜欢活动的区间(Si,Ei),喷水的喷头只能安装在整数点上,且它能喷到的半径在[A,B]之间,现在要求:用最少的喷水头不交叉的覆盖整个L,并且满足每头牛喜欢活动的区间里只有一个喷头再喷。 题解:线段树优化DP,dp[i]代表喷完前i个地方所需要的最少喷头数,那么dp[i]=min(dp[j]+1),i-2b #include #include #includ

2013-03-25 16:50:21 2439 2

原创 POJ 3167 Cow Patterns

题意:给定长度为n和m的两个数字序列(数均小于等于25),用m去按照一定方式去匹配n,即:如果n中的区间[a,b]各数字的名次与m中各数字的名次完全一样,那么他们就是匹配的。问题:求所有的匹配个数及他们出现的首位置。 题解:KMP的升级版,对KMP有一定了解后做这道题就比较容易了,由于区间不同后,名次就不同了,统计名次也比较麻烦,所以对于区间[a,b]中的一个数的名次,可以对应为这个数之前比它小

2013-03-19 20:08:58 3321

原创 POJ 1868 Antiarithmetic?

题意:给定一个长为n的(0,1,2....n-1)的排列,问是否存在等差数列。 题解:可以记录每个数出现的位置pos[i],枚举等差数列中间项以及公差,判断(pos[i+d]-pos[i])*(pos[i-d]-pos[i])是否小于0。 #include #include using namespace std; const int N=10005; int pos[N]; int main

2013-03-18 16:09:45 1195

原创 不自损八百,何以伤敌一千——ACM两年总结

既然金华区域赛已结,剩下的泰国赛区也不过是去玩玩而已,那么,也是时候做一个总结了。实际上距上一年度总结,也就半年有余,不过,ACM或许应该以每一次的比赛作为一个时段的终结点,亦是下一个时段的起始点,更何况,刚比完赛之后,或许是最容易堕落之时。     纵观过去一年,也就参加了半年前金华邀请赛,刚过去不久的长春区域赛以及金华区域赛而已,第一场铜牌(貌似还在铜牌中间),第二场由于打星,什么都没有,但

2013-03-17 20:04:35 2935 2

原创 你若是天才,我便是疯子————ACM一年总结

自金华邀请赛结束后便一直有写这总结的想法了,不过当时却没想那么远,只想做一下个小汇总,让自己明白自己在哪里有所不足,还能继续前进。校赛过后,又隔了一个星期,终于开始提笔了,借着world final 结束之时,我想为自己的ACM之路做个更加彻底的全面的总结。    有不少人问过我是否以前弄过计算机竞赛,我也承认,我弄过,大概一年,就在高二的时候吧,但是和我同读高中的同学都会知道,所谓的一

2013-03-17 20:02:22 4705 3

原创 POJ 1821 Fence

题意:连续的N块木板,有K个粉刷匠,分别坐在第Si块木板前,每个粉刷匠不能移动位置,且最多能粉刷连续的Li块木板(必须包括Si或者不要该粉刷匠),每个粉刷匠粉刷一块木板可以得Pi块钱,求总共的最大利益。 题解:dp[i][j]代表前i个粉刷匠粉刷完成至多前j个木板的最大利益,状态转移有三种: 1、不需要第i个粉刷匠,即前i-1个粉刷匠完成前j个木板的工作:dp[i][j]=dp[i-1][j]

2013-03-17 19:50:16 2656 1

原创 POJ 1188 Gleaming the Cubes

题意:给定n个正方体,求他们的交体积。 题解:知道两个长方体相交的算法就能很简单的解出这道题,实际上两个长方体交,就是取x1,y1,z1各自的最大值,以及x2,y2,z2各自的最小值就是了。 #include #include #include using namespace std; struct data { int x1,y1,z1; int x2,y2,z2;

2013-03-12 17:39:17 1345

原创 POJ 2355 Railway tickets

题意:在一条铁路上有n个站点,要从a到b。火车票有3种,距离 题解:典型dp,dp[i]代表到达第i个站点的最小花费,然后用dp[i]更新从i出发能到达的站点,dp[j]=min(dp[j],dp[i]+price[i,j]) #include #include #include using namespace std; int dp[10005],ds[10005]; int main()

2013-03-11 18:36:47 1153

原创 POJ 2351 Time Zones

题意:给出一个时区当前时间,求另一个时区当前时间。 题解:模拟,用好数据结构储存时间就行了。 #include #include #include #include using namespace std; struct Data { int h,m; Data(int _h,int _m){h=_h;m=_m;} Data(){}; }; struct Zone {

2013-03-11 17:35:06 1044

原创 POJ 2888 Magic Bracelet

题意:用m种不同颜色的珠子连成一条长为n的项链,其中,有k对珠子不能相邻,问总共有多少种(mod 9973)n 题解:组合计数也就burning和polya了,这题用的是Burning Side。 考虑在一种置换f下的稳定核方法,由于只有旋转对称,如果是旋转k个珠子,那么稳定核的循环节也就是gcd(n,k)=r,枚举k的话是不现实的,那么只有枚举r,即n的所有约数。gcd(n,k)=r,即gc

2013-03-09 18:49:15 2041

原创 POJ 1739 Tony's Tour

题意:给定n*m的带障碍格子图,求从左下角走到右下角的哈密顿路的总数。 题解:更进一步的插头DP,主要解法可以参照我的上篇日志:http://blog.csdn.net/tmeteorj/article/details/8635090。 改动之处在于单向插头,上篇中用01和10分别代表左右括号,这道题则需要加11作为单向括号(因为它在括号序列状态中是没有与之匹配的括号的) #include

2013-03-06 15:56:39 611

原创 Ural 1519 Formula 1

题意:找出N*M大小的带障碍格子的哈密顿回路总数。 题解:插头DP进阶题,也是入门题,插头DP的详解还是看《基于连通性状态压缩的动态规划问题》论文吧。 12列共13个插头,一共有3种插头,3进制可解,但用位操作处理2进制更容易,所以设成4进制,2位代表1个插头的状态,用括号表示法即 00:无插头;01:'(';10:‘)’,26位长度的状态是开不了的,所以用hash表进行优化处理,我用一个

2013-03-04 19:13:55 957

树状数组另一类用法(C++源码)

一般BIT是单点查询,区域求和; 进阶一点的是区域加减,单点查询; 这里所说的是区域加减区域求和,包括一维树状数组以及二维树状数组。通过修改可以把求和改成求异或和等大部分具有结合律的运算。

2014-01-06

三维计算几何库(C++源码)

三维计算几何整合库,包括三维空间中的点线面关系以及大部分求解过程,每个函数都有自己的功能注释。

2014-01-06

二维计算几何库(C++源码)

二维计算几何整合而成的一个库,涵盖了点线面圆之间的各种关系求解,一般计算几何问题直接调用函数就可以解决,每个函数都有功能注释。

2014-01-06

平面图网络流(C++源码)

求平面图的最大流,利用平面图的特殊性将求解最大流转换成求解最短路径,使得复杂度降低,加快问题解决。

2014-01-06

莫比乌斯反演例程(C++源代码)

关于莫比乌斯反演的总整理,几乎目前遇到的所有ACM中涉及到莫比乌斯反演的题都可以用代码中的函数解决。

2014-01-06

Splay伸展树结构体模板

Splay结构体的模板,含有各种旋转、插入、翻转等操作,注释清晰

2014-01-06

空空如也

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

TA关注的人

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