摘要: 一道lightoj 上的题目,我是在上次的一次练习赛中做到的,那时候两个半小时之后就只剩下两题了,而且两题原理是一样的,超开心,结果看了半个小时后这题,一句话:没思路。然后打酱油了。。。囧。好吧,昨天学二分的时候突然思路来了,果断把那时候还有一题(LightOJ 1076 Get the Containers)给戳掉了。然后么,在这题的打印上又卡了好长时间,,,我好弱啊。。。囧。好吧,思路就是二分://Danceonly #include #include #include #include #include using namespace std; const int INF... 阅读全文
posted @ 2013-07-29 16:37 cnwsycf 阅读(158) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2612题意 : Y和M去同一个KFC的时间最短(KFC可能有多个)我的方法是从KFC开始搜索到两个人的最短时间之和。唯一蛋疼的是一开始TLE了几把。伤啊。/* * Danceonly */ #include #include #include #include using namespace std; typedef long long LL; #define MAX(a,b) (a > b ? a : b) #define MIN(a,b) (a = ans) ... 阅读全文
posted @ 2013-07-29 16:30 cnwsycf 阅读(131) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2531题意:橄榄球诶、、、超喜欢四分卫的说。好吧,题目其实很简单,BFS搜索,不过一开始没看懂吗,为什么有多个D和Q,蛋疼过后才发现那是球员的身体的一部分。ORZ嗯,我是把防守队员的身体保存在一个结构体里面,每次判断是否身体会触碰O即可。/* * Danceonly */ #include #include #include #include using namespace std; typedef long long LL; #define MAX(a,b) (a > b ? a : ... 阅读全文
posted @ 2013-07-29 16:25 cnwsycf 阅读(97) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1728题意: 还是走迷宫,只是这次有个转弯次数的要求。这道题目看到后,我首先想到的是用DFS去搜,自己感觉DFS搜索到的应该就是最小的转弯次数了。然后么,TLE了几把,真伤啊。囧。问了下学长,他和我说因为是100*100的格子,如果不理想的话可能要搜索会很高的(囧,好吧)然后他建议我用BFS写,嗯,本来 他的意思是BFS在搜索的过程中把那些转弯道的入队列,写的时候不是很懂,最后很鄙视自己得用了一步一步的搜索方式把这题A了。。。。(ORZ)/* * Danceonly */ #include #in... 阅读全文
posted @ 2013-07-29 12:07 cnwsycf 阅读(154) 评论(0) 推荐(0)
摘要: 表示自己是一个新手,我参加ACM到现在大概才20天左右,然后么,最近学了下搜索,我先用的是BFS,因为在上学期的C高级中有迷宫问题,然后要去做一个游戏,所以就捧着一位学长的数据结构那本书中关于BFS的代码看了会儿尝试的去写了一个。。。囧。那时候感觉搜索没太多的用处,就只有在走迷宫的时候有用点。学DFS是因为和ZM同学一起做题的时候在HDU上的那题狗狗找洞口的题上囧了下。好吧,下面写点自己感触(勿喷)好吧,,这几天在做搜索题,感觉么,BFS就像一个王子,有一大堆的士兵,找宝藏的时候可以派一队队的士兵分别去每一个洞口,然后让他们在分人去找,而DFS呢,感觉就是一个穷屌丝,一个人默默的不放过每一个洞 阅读全文
posted @ 2013-07-27 13:09 cnwsycf 阅读(149) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1455题意大概就是:有一堆的木棒,长度不一,它们是有一些整齐的木棒截断而成的,求最小的整齐长度。额,这道题目第一次做的时候是在集训前一天。那时候默默的用了自己学过的为数不多的算法:贪心去做了这题。不出意外的WA了。囧了。过了10几天后的今天突然又去看了这题,突然觉得可以使用这几天在学的搜索来做。然后,果断的敲了一个DFS,,还是WA了,那时候感觉自己做的没错,然后就去请教队长,队长让我去和那些AC的代码数据对拍,结果。果然发现了自己的错误。唉,对于DFS的掌握不够啊,忘记恢复vis了。人生当中第二道DFS题啊 阅读全文
posted @ 2013-07-27 13:01 cnwsycf 阅读(166) 评论(0) 推荐(0)
摘要: 0-1背包问题。求第K大的值。http://acm.hdu.edu.cn/showproblem.php?pid=2639这道题目第一次做的时候是一场自己挂的WEB-DIY中的一题,那时候是直接开了一个一维的dp[ j ]数组,用来记录获得价值j最大的体积,然后转化为简单的0-1背包,,思路感觉很简单,然后已提交,RE。伤了。后来才发现,最大价值可能要上亿。。。囧了。恩,后来用一位数组来记录。接着么。。。#include #include #include #include using namespace std; typedef long long LL; #define MIN... 阅读全文
posted @ 2013-07-27 09:18 cnwsycf 阅读(120) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1241简单的搜索题。#include #include #include struct abc { int x,y; } queue[10005],e; int vis[105][105],map[105][105]; int dir[8][2] = {1,0,1,1,0,1,-1,1,-1,0,-1,-1,0,-1,1,-1}; int n,m; void bfs(int sx,int sy) { int start,tail,x,y; //int flag = 0... 阅读全文
posted @ 2013-07-25 19:31 cnwsycf 阅读(111) 评论(0) 推荐(0)
摘要: 学长给的代码:可作参考void pack01(int a, int b) //0 - 1 背包 { int i; for(i = Sum; i >= a; i ++) dp[i] = maxz(dp[i-a] + b, dp[i]); } void packcmp(int a, int b) //完全背包 { int i ; for(i = a; i = Sum) { packcmp(w[i], g[i]); } else { int k = 1; int amount = num[i]; while( k < amount) ... 阅读全文
posted @ 2013-07-18 18:41 cnwsycf 阅读(277) 评论(0) 推荐(0)
摘要: 刚刚学完简单的DP,现在在接触背包问题了,然后学长们推荐我看下这篇文章,所以转载过来了。 - -希望对大家有帮助吧。P01: 01背包问题题目有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。基本思路这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便是:f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]+w[i]}这个方程非常重要,基本上所有跟背包相关的问题的方程都是由它衍生出来的。 阅读全文
posted @ 2013-07-18 10:31 cnwsycf 阅读(1165) 评论(0) 推荐(1)