2013年6月6日

摘要: 今天花了好长时间来理解,这两道题,真心纠结。zoj2432打印路径的时候,我用一维的pre数组记录,但是提交之后总是SF的错误,自己还想了好半天,是在想不出什么解决办法。搜索之后,发现别人都是二维的路径数组,到现在都不明白为什么一维的就实现不了,它不是只要求任意一组满足题意的就可以么?。。动态规划,为什么一直做,还是一直不会。。 http://www.clarkok.com/blog/?p=353 阅读全文
posted @ 2013-06-06 18:38 Raining Days 阅读(208) 评论(0) 推荐(0) 编辑

2013年5月20日

摘要: 继续来上状态压缩的dp,发现自己真的是上道了。#include <algorithm>#include <iostream>#include <cstdlib>#include <cstring>#include <cstdio>#include <cmath>#include <queue>#include <stack>#include <map>using namespace std;const int maxn=100+5;const int maxm=10+5;int n,m, 阅读全文
posted @ 2013-05-20 13:49 Raining Days 阅读(236) 评论(0) 推荐(0) 编辑

2013年5月17日

摘要: 欢迎留下你的见解 ^-^ ~~#include <algorithm>#include <iostream>#include <cstdlib>#include <cstring>#include <cstdio>#include <queue>using namespace std;const int maxn=12+5;const int maxm=12+5;int n,m,tot;int state[380],stanum[380];int in[maxm];bool flg[maxn];//char s[maxn] 阅读全文
posted @ 2013-05-17 18:04 Raining Days 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 突然想到这么一个词语,觉得很重要。 最近在看状态压缩dp,因为不会状压,所以还找了那个ppt去看,外面又百度看了几篇博客,感受一下那个写法。我自己第一道状态压缩dp,之前自己写的深搜是这种的:void dfs(int cur,int st,int count){ if(cur==m) { state[tot]=st; stanum[tot++]=count; return; } flg[cur+1]=0; dfs(cur+1,st<<1,count); if(flg[cur-1]+flg[cur]==0) ... 阅读全文
posted @ 2013-05-17 16:15 Raining Days 阅读(184) 评论(0) 推荐(0) 编辑

2013年5月15日

摘要: 题目我读了好久~~~ 大概题意:给一个只有左右括号的字符序列,这个序列不一定是题目中说的平衡序列,然后让用H,G两种字符来标记这个序列,使得从左向右看的时候只看H,所有标记H的括号可以组成一个平衡序列,然后从右向左看的时候只看G标记的括号,G标记的括号也组成一个平衡序列,让输出的就是这种标记方案的总数。 首先序列的长度肯定是一个偶数,我们可以这么想,因为要使H,G构成的序列都是平衡序列,那么他俩都应该是偶数的,而且题目不允许存在没有被标记的字符,所以偶数+偶数必然是偶数。 这题我最多想到的就是什么暴力搜索的想法,但是这么大根本没法承受。。无奈寻求题解帮助。我最近碰到一种人,就是不看题... 阅读全文
posted @ 2013-05-15 15:40 Raining Days 阅读(503) 评论(0) 推荐(0) 编辑

2013年5月13日

摘要: 题意:在一个字符矩阵里面找一个形如((()))的字符串使得它的长度最长。 官方题解:http://www.usaco.org/current/data/sol_hshoe.html 我的思路:从大到小来搜索,矩阵大小确定了,那么可能存在的最长的字符串长度也确定了,是n*n,因为2<=n<=5,所以暴搜完全可以。最长=24,开始暴搜,搜索的过程中可以记录一下,最大可以扩展(的个数,这样下次暴搜的时候就不是从24-2开始,而是从所记录的那个数开始,这个优化应该是对的,不过我ac的时候没有加这个,因为数据量的确太小了。我最先的思路是二分长度,提交wa后发现,会存在某些矩阵,小的长度找不到 阅读全文
posted @ 2013-05-13 17:41 Raining Days 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 题意:要你改变序列中的一个位置使得该括号序列达到平衡的状态,平衡就是你用一个栈去搞那个序列,匹配完毕之后该栈会是空的。ps:我当大家都知道如何用栈去做括号匹配。 我发现标程有问题,也不知道自己是不是没有看清楚题目,不过我想,在标程里面加一个东西就可以达到目的,就是你在输入的时候判断下左右括号的个数差与2的关系大小,,如果大于2,那么结果必然是0,反之就按照标程里面那么去做。说实话我到现在都不清楚为什么最终最后括号的个数就可以是答案。。 1.depth==-1,结果就是右括号的个数?当前的depth=-1,说明上一个位置的时候depth=0,那么到前一个位置的时候,之前的那段括号序列是平... 阅读全文
posted @ 2013-05-13 17:35 Raining Days 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 这题都怪自己想当然了,以为只要找到每个奶牛名字中出现的最大字符跟最小字符就可以却定奶牛在原来list中的lowest跟highest。下来之后自己又自己看了一遍题,又看了下题目后面的output details,发现人家的提示是那么的明显。。要用整个序列来比较的呀。。对于每个奶牛,想找lowest,那你需要找你当前位置之前的所有降字典序排序完之后的奶牛的个数,然后这个值+1,便是你自己lowest了,如果想找highest的话,那你需要从后往前找,找正字典序排序的奶牛的个数,当然从前往后也可以,但是需要结果-1,因为你自己的正字典序肯定是排在前面的。。 阅读全文
posted @ 2013-05-13 16:51 Raining Days 阅读(472) 评论(0) 推荐(0) 编辑
摘要: 这个题,自己当时做的时候真脑残,因为每条边上面加了容量c的限制,所以就把我吓的用暴力深搜去搞了,尼玛,数据范围那么~~大,好吧,完了,我深搜的过程中加了个烂剪枝,结果还是wa了,真心不知道错在哪了。下来之后看了题解,恶心的题解,我当时也想到枚举c,然后优先队列去撸dij的啊,M^2logM的复杂度啊。。这样也能过么。。我错了。。真的觉得看不到时间,没法估计时间复杂度啊。。老师,你是真吭人。 阅读全文
posted @ 2013-05-13 16:44 Raining Days 阅读(155) 评论(0) 推荐(0) 编辑
摘要: After visiting a modern art museum, Farmer John decides to re-design his farm by moving all of the N (1 <= N <= 500) fences between his pastures! Each fence is describe by either a horizontal or a vertical line segment in the 2D plane. If two fences meet, they do so only at their endpoints. FJ 阅读全文
posted @ 2013-05-13 16:18 Raining Days 阅读(575) 评论(0) 推荐(0) 编辑

导航