- 博客(32)
- 收藏
- 关注
原创 hdu 1242 优先队列的bfs
题意:给一张图,图上a为一个人,x为守卫,杀死守卫要1的单位时间,r为救a的人,注意r可能有很多个。现在问很多个r来救a,最快多长时间能救出a。解析:反过来考虑,由a去找r,找到最近的出来就行了。为了找到最短的,用优先队列来控制每次最小的点,因为x有的时候会干扰到step的计数,导致不是最短。代码:#include #include #include
2015-04-28 20:42:43 359
原创 hdu 1253 3D bfs
题意:3D迷宫bfs。解析:和之前的那个3D迷宫差不多。代码:#include #include #include #include #include #include #include #include #include #include #define LL long long#define lson lo, mi, rt << 1
2015-04-28 09:50:32 321
原创 hdu 1026 bfs(数组模拟,路径输出)
题意:给一张图,求从左上角到右下角的最短路径。图上的数字代表一个怪物,杀掉怪物用的时间。解析:路径输出改了一晚,开始用指针去指,然后就全指乱了。然后改成了数组模拟。代码:#include #include #include #include #include #include #include #include #include #in
2015-04-27 22:01:07 429
原创 hdu 1175 连连看(bfs)
题意:不从外面走的连连看。解析:抽象为图上一个点到另一个点,只能拐2次弯。然后用bfs来每询问一次爆一个就行了。入队条件是下一个点的拐弯次数小于当前的,或者下一个点没有被访问过。代码:#include #include #include #include #include #include #include #include #inc
2015-04-27 15:44:48 426
原创 hdu1728 (直撞bfs)
题意:一个没有方向感的萌妹纸走迷宫,规定只能转k次方向,给迷宫,问这个妹纸是否能走出迷宫。解析:这题有几个坑点,首先是m,n,然后是sx,sy,ex,ey。做法是横冲直撞,直接一条道走到黑,标记,入队就好了。代码:#include #include #include #include #include #include #include #in
2015-04-26 20:01:55 715
原创 hdu 1072(倒计时bfs)
题意:你手上有一个炸弹,6分钟后会爆炸,现在给你一张图,你走到出口时炸弹没有爆炸你就安全了。图上有很多重设时间点,走到重设时间点可以把时间重新设置为6分钟,你可以走上下左右四个方向,每走一步消耗一分钟。现在要输出最短逃出时间,若逃不出输出-1。图上0:代表墙, 1:代表可以走的路, 2:代表你的位置, 3:代表出口的位置,4:代表炸弹重设时间点。解析:用bfs来
2015-04-26 13:59:36 406
原创 The 12th Zhejiang Provincial Collegiate Contest(2015浙江省省赛)
第一次类似组队那样练题,做到后期感觉自己还是后劲不足,难题还是做不来。下午做出了6道题目,ALGHJB,可能水题比较多,合胃口,但是加深难度之后,还是力不从心,想拿铜还是要苦练。等题加入题库了再加链接。A题:大水题,sb的是我开场wa了一发 。,。因为数据实在小,所以搞了一个大暴力,然后深表遗憾。。。代码:#include #include #i
2015-04-25 20:25:06 1085
原创 poj 3468 线段树(成段增减 区间求和)
题意:区间增加一个数。(-)求区间的和。代码:#include #include #include #include #include #include #include #include #include #include #include #include #define LL long long#define lson lo, mi, rt
2015-04-22 21:48:57 436
原创 hdu 1698 屠夫(线段树成段替换)
题意:屠夫有钱了,要把他的钩子换成银的或者金的。解析:线段树成段替换。代码:#include #include #include #include #include #include #include #include #include #include #include #include #define LL long long#de
2015-04-22 21:03:35 759
原创 poj 2828 插队运用(线段树,单点更新)
题意:给n,以下n行给出一个位置p,一个权值v。代表了这个人v插队在位置p。最后输出队伍。解析:归类在线段树里面,怎么也想不通用线段树来解啊。这题网上主流的解法是将整个输入倒回来往空队列里面插。因为倒回来,最后进去的人v肯定在的位置是p,所以直接插进去。线段树中维护一个空位置的数组,代表着一段间还有多少个空位置。插入的时候,检查,若左子树的空位置大于当前
2015-04-22 20:07:42 350
原创 hdu 2795 线段树,区间更新求补值
题意:给一个w*h的板子,代表长为w,高为h的长方形。现在有n条1*x的小广告要往上面贴,贴的时候总是要选择高的地方并且靠左边的地方贴。每给一个广告,问他贴在第几个w,若贴不上去,则输出-1。解析:把整个板子正转90°。若h为5, w为3。则:3 | | | 1 2 3
2015-04-21 22:02:57 393
原创 [bin神带我飞系列]专题一 搜索入门
搜索入门练练练!http://acm.hust.edu.cn/vjudge/contest/view.action?cid=65959#overview感谢bin神带我第一次飞飞飞。A:题意:在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子
2015-04-19 22:10:27 853
原创 The 15th Zhejiang University Programming Contest
当时只a出了A,B,H三道题,离铜还有很长的路要走。另外,每次都单挑比赛真的有点不耐烦。A,H是两道大水题,没啥好说的:A:http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5463#include #include #include #include #include #inclu
2015-04-16 18:50:34 678
原创 uva 10652 凸包 + 更新版计算几何模板
题意:给一些木板的中心点,给木板的长和宽还有倾斜角度,求把这些木板包起来的凸包面积。求他们的面积比。解析:计算集合。代码:#include #include #include #include #include #include #include #include #include #include #include #include
2015-04-13 15:24:37 410
原创 uva 11796 俩狗问题(2维计算集合终极模板)
题意:甲乙俩狗沿一条这线跑,速度未知,同时出发,同时到达,且匀速奔跑。求甲乙在夕阳下奔跑的过程中最远距离和最近距离之差。解析:刘汝佳 Nbbbbbbbb.先看最简单的情况,甲和乙都沿着一条线段跑。由运动的相对性可以令甲静止,则乙向一个合成的方向跑,如图:所以现在我只要求a点到点Pb与Pb + Vb - Va这条直线的最大最小距离就行啦。换到好多点,只要判
2015-04-06 21:39:35 416
原创 uva 10651 状态压缩DP
题意:给一串珠子-0-0-0-----00-----这样表示。然后可以这样跳:解析:因为题目数量级较小,可以用dp的状态压缩通过位运算来做。一般涉及到的位运算是 ^ 和 &。因为^的性质是 同0不同1,比较方便。代码:#include #include #include #include #include #include #incl
2015-04-06 14:02:54 365
原创 uva 10635 nlogn LIS
题意:题目这么长还画了一个图来唬人!LIS解析:nlogn的LIS,二分实现。代码:#include #include #include #include #include #include #include #include #include #include #include #include #define LL long
2015-04-06 12:51:30 367
原创 uva 10617 回文串个数
题意:给一个字符串s,可以添加删除,问共有多少种方法把s变成回文串。解析:状态转移方程:for (int i = len - 2; i >= 0; i--)//这样才能保证i + 1已被计算过。 { for (int j = i + 1; j < len; j++)//这样才能保证 j - 1已被计算过。 {
2015-04-06 11:11:51 633
原创 uva 10604 化学药品链式dp
题意:给一堆化学药品,可以相互反应,反应会产生热量,或消耗热量。给每种化学药品的个数,求最终能达到的最低温度。解析:数量较少,直接dfs。代码:#include #include #include #include #include #include #include #include #include #include #include
2015-04-06 10:49:31 405
原创 uva 10564 沙漏
题意:如图走这个沙漏,给沙漏的大小和一个数字s,问最后有多少条路可以到达底部使得沙漏路径和为s。若有多条路径,打印起点最低的,that means ,打印第一行最靠左边的路。解析:自己一直TLE,看了一个大牛的代码。他是这样处理的:因为上下沙漏走左右是不同的,上沙漏往下走的时候,向左是( i + 1, j - 1 )向右是( i + 1, j );而当走到下
2015-04-06 09:36:29 412
原创 uva 10534 nlogn最长上升子序列
题意:给一个组数,求递增到递减的最长序列。e.g 1 2 3 4 5 6 5 4 3 2 1 就是一个长度为11的序列。解析:1e4的数据量,nlogn的最长上升子序列的处理方法。正向扫一遍,找递增,反向扫一遍,找正向递减。最后比较,mymax = max(mymax, min(cnt1[i], cnt2[i]))。然后ans = mymax * 2 - 1 就
2015-04-05 11:05:39 381
原创 uva 10465 简单dp标记
题意:给两种汉堡一种吃要n分钟,一种m分钟,现在有t的时间。问最多能吃多少个汉堡,如果有剩余时间,输出剩余时间。解析:简单的标记扫一遍,最后倒回来判断就好了。详见代码。代码:#include #include #include #include #include #include #include #include #include #
2015-04-05 10:36:15 361
原创 uva 10453 回文串dp uva 10739 uva 11151最长回文串 poj 3280
题意:给一个字符串,可以在任意位置插入任意字符,使其变成回文串。求最小插入的字符数,打印结果。解析:记忆化搜索和递归都可以。打印的时候递归。详细思路代码。代码:#include #include #include #include #include #include #include #include #include #inc
2015-04-04 17:35:49 380
原创 uva 10405 LCS + 空格卡wa
题意:给俩字符串,求最长公共子序列。解析:!!!!!!!!!!字符串里面含空格。!!!!!!!!!!代码:#include #include #include #include #include #include #include #include #include #include #define LL long longus
2015-04-04 10:10:44 340
原创 uva 10404 Nim博弈论变式
题意:给n个石子和m种情况,代表一次可以拿mi个石头。拿到最后一个石子的人赢。问最后谁赢。解析:枚举,不断去翻转状态。for (int i = 1; i <= n; i++){ for (int j = 0; j < m; j++) { if (i - a[j] >= 0 && dp[i - a[j]] == 0)
2015-04-04 10:07:46 380
原创 uva 10401 受伤的皇后dp
题意:国际象棋中,皇后受伤了,只能像如图一样攻击。给一个已经摆放好的序列,这样的棋盘上摆上皇后,共有多少种摆放方法。解析:从左到右扫一遍,最后把所有上到下格子合并就好。dp[i][j] 表示第i列第j行有多少种摆放方法。详见代码。代码:#include #include #include #include #include #inclu
2015-04-04 09:47:44 522
原创 uva 10313 母函数性质 + dp
题意:有价值1到300的硬币,现在给一个面值。若给一个数字a,则计算用a或者更少硬币得到这个面值的方法数;若给俩数字a,b,则计算用a到b范围内去凑这个面值的方法数。解析:用到了母函数的一个性质,整数n拆分成最大数k的拆分数,和数n拆分成k个数的和的拆分数相等。证明用到了ferrers图。已经被这个结论绕进去了。换到这题来讲,就是用不超过k个硬币凑出面值n的
2015-04-02 21:22:38 449
原创 uva 10306 简单DP
题意:给n种硬币和一个面值s。每种硬币有两种价值,并且有无限个,求能满足第一种价值i * i + j * j = s * s的最少硬币数。解析:先dp出每种情况下i,j用的最少银币,然后暴力搞一下找出和规则的就好,和给俩棒子找最小差距那题有点像。详见代码。代码:#include #include #include #include #includ
2015-04-02 20:56:09 355
原创 uva 10285 滑雪,记忆化搜索
题意:就是poj那道滑雪,可以dfs可以dp记忆化搜索。给一张图,问一个人从一个点滑到底最多可以滑多远。解析:记忆化搜索。代码:#include #include #include #include #include #include #include #include #include #include #define LL long
2015-04-02 20:28:22 345
原创 uva 10280 完全背包+剪枝
题意:L升酒,n个酒瓶子, 每个酒瓶子有最小容量和最大容量并且有无限个。问最多剩多少酒没有装进去。解析:这题的剪枝是在http://blog.csdn.net/yan_____/article/details/8671147这篇博客里学到的。有点像一道蓝桥杯的题的剪枝,爬到最后越来越密集。代码:#include #include #include
2015-04-02 16:42:48 420
原创 uva 10271 筷子(分组dp)
题意:给出一堆单只筷子,现在要分成三只筷子一组,长度分别为ABC.。现在要令每组的(A - B)^2和最大并且在每组中C为最长的。解析:是这题给了我 hdu 5135 Little Zu Chongzhi's Triangles(分组dp)这道题的思路,并瞎扯出了一种叫分组dp的东西。首先将所有筷子按逆序输入,保证筷子的长度按从小到大增长,这样可以保证C为其中
2015-04-01 20:43:10 500
原创 uva 10201 dp油费问题
题意:你要租一辆车去一个大城市(搞一个大新闻),这辆车的油桶可以装200L油,开始的时候这辆车只满了一半的油(100L)。现在给你目的地离此地的距离dis,然后依次给出距离此地d km的油站,每个油站的油有自己的价格。假设每开1 km消耗1 L油。要求到达终点时,油箱至少是有一半的油,并且在中途不没油的情况下使花费最小。解析:去年做这题的时候参考了别人的代码。
2015-04-01 20:14:40 649
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人