摘要: 取这个题目,因为一道题目的原因。当我们面对一个问题,常规的想法没有思路时,可以试着把问题转换成另一种形式。恰当的转换,常常可以取得事半功倍的效果。下面看看这道题,poj 3278 Catch That Cow。农场主在位置n,牛在位置k,农场主可移动的方式有两种:1.行走:如农场主在x,则他可向前或向后移动一步,x+1,x-1,花费一个单位的时间。2.传送:农场主初始在x,则他可移动到2*x,花费一个单位的时间。问农场主最短花多长时间抓到牛。转化成图论的问题,如下图:这样问题就清楚多了,比如给定起点n,问到终点k的最短路径是多少,很明显的bfs就可以,所以用广度优先遍历找到最短路径就可。 阅读全文
posted @ 2012-06-28 10:31 vpanda 阅读(249) 评论(0) 推荐(0)
摘要: 题意,给最多1000个点,问这些点最多能组成多少个正方形。思路就是枚举任意两个点,把其当成某个正方形的边,再看这样的正方形另两个点是不是在已给的点中,如:设 a=y2-y1 b=x2-x1则另两个点的坐标为x3=x1+a x3=x1-ay3=y1-b 和y3=y1+bx4=x2+a x4=x2-ay4=y2-b y4=y2+b用hash找另外两个点就可以。注意:因为每条边都被枚举过,所以形成的答案应除以4。 阅读全文
posted @ 2012-06-15 10:55 vpanda 阅读(142) 评论(0) 推荐(0)
摘要: 这两天做了些hash的题目,这道题感觉挺有技巧,拿来说说。首先是题意,就是有好多cow,然后每个cow有些属性,比如说某个cow给你个数字6,属性长度K设定为3的话,则该cow的属性列表就是1 1 0,若属性长度K设定为4的话,属性列表就变为0 11 0。题目就是求最长连续的段,满足段里的每个属性出现的次数一样多。下面看看具体的做法。数 二进制 sum 特征值7 1 11 1 1100 061 1 0 2 2 11 1 07 1 1 1 3 3 21 102 0 1 0 3 4 2 1 2 01 0 0 1 3 4 30 1 04 1 0 0 4 4 3 1 1 02 0 1 0 4 5 3 阅读全文
posted @ 2012-06-08 09:36 vpanda 阅读(138) 评论(0) 推荐(0)
摘要: 就是求逆序数,用归并排序的过程中记录逆序数,注意结果超出了int的范围,要选用long long或其他类型的变量存储逆序数。View Code 1 #include <iostream> 2 #include <vector> 3 using namespace std; 4 5 long long sum; 6 7 void show(vector<int> a) 8 { 9 int i;10 cout<<"************"<<endl;11 for(i=0;i<a.size();i++)12 c 阅读全文
posted @ 2012-06-06 12:40 vpanda 阅读(134) 评论(0) 推荐(0)
摘要: 题目的要求是,给两个字符串s和t,看看t是否包含了s的全部字母,当然是按字母在s中的出现顺序比较,题目简单,就不贴代码了。 阅读全文
posted @ 2012-06-05 10:40 vpanda 阅读(101) 评论(0) 推荐(0)
摘要: 题目要求很清楚,就是求n(n<=10)个字符串的最长公共子串,由于题目数据量不大,直接枚举和KMP就可以,注最长公共子串长度小于3的特别输出,有几个长度相等的最长公共子串,输出字典序最小的。另外,string中的find函数就是实现了KMP算法。View Code 1 #include <iostream> 2 #include <string> 3 using namespace std; 4 5 int main() 6 { 7 int m,n; 8 int t; 9 int i,j,k;10 string dna[10];11 string s... 阅读全文
posted @ 2012-06-04 19:02 vpanda 阅读(141) 评论(0) 推荐(0)
摘要: 题目大意,给定一个字典,由最多10000个单词构成。然后给一些单词,判断是字典里是否有这些单词,若没有,再判断通过替换、添加或删除任意一个字母,形成的新单词是否在字典里,然后按给定的字典顺序输出结果。还好这题每个单词最多只是改变一个字母,这就是说,若是字典里有改变后的单词,这个单词和要处理的单词至多有一个字母不一样。这样处理起来就容易多了。通过按照字典中字母长度由小到大排序,并保存每个长度单词在新字典中的开始和结束位置,能加快程序处理每个单词的时间。 阅读全文
posted @ 2012-06-04 15:29 vpanda 阅读(135) 评论(0) 推荐(0)