自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 《后缀数组》笔记

摘自http://www.nocow.cn/index.php/%E5%90%8E%E7%BC%80%E6%95%B0%E7%BB%84后缀数组sa:将s的n个后缀从小到大排序后将 排序后的后缀的开头位置 顺次放入sa中,则sa[i]储存的是排第i大的后缀的开头位置。简单的记忆就是“排第几的是谁”。名次数组rank:rank[i]保存的是suffix(i){后缀}在所有后缀中从小到大排

2013-01-31 15:40:58 380

原创 POJ2632《Crashing Robots》方法:模拟

题目大意:就是将坐标轴拟成二维矩阵的形式,E,N,W,S用0,1,2,3表示方便计算,左转右转后的方向用mod4来算。还有就是用编号作下标表示坐标,和用坐标作下标表示编号。更新一个点时,要将前一个清空。#include #include #include using namespace std;int main(){ //freopen("temp.txt", "r", std

2013-01-29 14:41:47 306

原创 POJ1068《Parencodings》方法:模拟

题目大意:将一种括号表现形式转变为另一种,通过变为中间字符串000010101111的形式转化,easy。#include #include #include using namespace std;int main(){ //freopen("temp.txt", "r", stdin); int t, n; int p[21] = {0}; //P串,p[0]=0很重

2013-01-28 12:10:44 409

原创 POJ1008《Maya Calendar》

题目大意:水题,将一种日期表达方式转化为另一种,累加总天数即可求,同时也要考虑好匹配某一月名称的方法,这里采用累加字符串的ASCII码,因为C++中switch无法case字符串,只能是case常量值。#include #include #include using namespace std;int getMonth(char *month){ int num = 0; f

2013-01-27 16:36:55 354

原创 POJ3239《Solution to the n Queens Puzzle》方法:构造公式法

题目大意:n(830时,传统方法不再使用。所以,网上有巧妙的构造公式方法:一、当n mod 6 != 2 或 n mod 6 != 3时:[2,4,6,8,...,n],[1,3,5,7,...,n-1]        (n为偶数)[2,4,6,8,...,n-1],[1,3,5,7,...,n ]       (n为奇数)二、当n mod 6 == 2 或 n mod 6 =

2013-01-26 10:36:10 775

原创 POJ3295《Tautology》方法:构造栈

题目大意:就是确定永真式p,q,r,s,t为逻辑变量,K,A,N,C,E为逻辑操作符,就是考虑逻辑变量所有情况,所有变量和操作符压入栈中,然后取出变量做逻辑运算,将结果再压回栈中,看最后结果是不是为真。#include #include #include #include using namespace std;int pp, qq, rr, ss, tt;stack s;

2013-01-25 10:21:28 455

原创 POJ2586《Y2K Accounting Bug》方法:贪心

题目大意:公司现在只能确定连续的每5个月都是亏损的。现给定一个单月盈余surplus和亏损deficit,问全年是亏损还是盈余多少。方法:贪心。贪心往往都在临界点出选择。要保证每连续5月都亏损,那么每五月至少有一个亏损,且将盈余月尽量往前移,亏损月往后移。情况如下SSSSDSSSSDSS     4s SSSDDSSSDDSS     3s SSDDDSSDDDSS     2s

2013-01-24 10:20:59 516

原创 POJ2109《Power of Cryptography》方法:pow(p, 1/n)

题目大意:给定1类型          长度 (bit)           有效数字          绝对值范围float             32                      6~7               10^(-37) ~ 10^38       1位符号位  8位指数位  23尾数位double         64

2013-01-23 21:57:01 386

原创 POJ1018《Communication System》方法:枚举+剪枝

题目描述:题目很拗口,简言之就是,从n组中每组选取一对数,使得min{a1,a2...} / sum{b1,b2...}最大。方法:枚举,因为受到两个因素的影响,所以“固定带宽”,就是将所有对数以带宽a排序(价格是第二要素,id是第三要素),然后加入价格,遍历看是否能使结果最大。剪枝,1.第一层遍历只遍历第一个到第倒数n个数,因为剩下来的数如果小于n,则不满足n个数的题意。2.如果当前

2013-01-22 14:12:11 414

原创 POJ1328《Radar Installation》方法:贪心+快排

题目描述:在x轴上布置雷达,当雷达数最少的时候,使得可以包含全部的岛屿。方法:首先将岛屿以雷达为半径,转化为x轴上的一个个区间,然后对这些区间进行排序。雷达第一次放在最左边雷达的右端点,然后对下一个雷达的左端点和之前的右端点比较,若该左端点在参照雷达右端点的左端,需要判断对应右端点在雷达右端点的左边还是右边,若在左边,则参照值被赋予该右端点,否则,继续判断下一个端点。若在右边,直接加雷达。

2013-01-21 17:25:41 406

原创 快速排序中的霍尔分割

先看一下霍尔分割的举例第一趟(五步曲):   a:3   8   7   1   2   5   6   4   //以第一个元素为主元         2   8   7   1       5   6   4   b:2        7   1   8   5   6   4   c:2   1   7        8   5   6   4   d:2   1

2013-01-21 15:34:05 825

原创 POJ2965《The Pilots Brothers' refrigerator》方法:DFS+Bit

题目描述:4*4冰箱格子,需将其全部打开,但是打开一个格子,它自己以及所在行和列都需要翻转,求最短次数及过程中打开的格子。方法:由于需要记录过程中的节点位置,所以BFS不太适合,因为可能不够,所以使用DFS来找到每次打开的路径。至于有大神使用的,一开始就遍历对"+"进行次行列翻转,从而剩下的"+"则为路径上的节点,一时还没弄清楚。#include #include #include

2013-01-20 20:13:26 379

原创 POJ1753《Flip Game》方法:BFS+Bit

题目描述:4*4黑白棋盘,点击一个棋子,则它的四周及本身变化颜色,求变为纯色的最短步数。方法:用BFS求最短步数,Bit存储状态,共有2^16=65536种状态。 #include #include #include #include using namespace std;bool visit[65536]; // 共有2^16个状态int dir[4][2]

2013-01-20 14:43:02 408

转载 POJ分类题

转载请注明出处:優YoU http://blog.csdn.net/lyy289065406/article/details/6642573  最近AC题:2528   更新时间:2011.09.22  已AC题数:146初级题已在2011.06.30全部完成 部分解题报告添加新内容,除了原有的“大致题意”和“解题思路”外,新增“So

2013-01-20 14:36:43 573

空空如也

空空如也

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

TA关注的人

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