IT民工
加油!
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 29 下一页
摘要: 一道简单的搜索剪枝,居然写了一个小时,首先判断棍子长的和是否能被四整除以及最长的棍子是不是大于边长(和的四分之一)。将棍长按照从长到短排序,记录搜索的边,构成三条边就是构成了一个正方形。/*Accepted 164K 235MS C++ 1396B 2012-07-27 14:30:28*/#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>using namespace std;const int MAXN = 1 << 7;int m, a[MA 阅读全文
posted @ 2012-07-27 14:35 找回失去的 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 因为有花费的限制,所有存最短路的数组改为d[i][j],代表走到i点还剩余j的钱的最短路的值,relax时做一个剪枝,第一个条件是剩余钱数大于通过当前边所需的钱,第二,即将更新的值要小于当前到达N点的最短路的值。在更新最短值的时候,走过一条边要将钱数也更新,即剩余money减去过路费。/*Accepted 1936K 188MS C++ 1701B 2012-07-27 12:00:50*/#include<cstdio>#include<cstring>#include<cstdlib>#include<queue>#include<io 阅读全文
posted @ 2012-07-27 12:13 找回失去的 阅读(173) 评论(0) 推荐(0) 编辑
摘要: SPFA判断是否存在最长路,只要存在负权环就存在最长路,两者是等价的。将N中货币看成N个点,从A点到B的最大可能值为(A点的当前值-AB的手续费)* AB的汇率。/*Accepted 428K 16MS C++ 1452B 2012-07-27 10:21:22*/#include<cstdio>#include<cstdlib>#include<cstring>#include<queue>#include<algorithm>#define cal(i, j) ( (val[i] - c[i][j]) * r[i][j])usin 阅读全文
posted @ 2012-07-27 10:33 找回失去的 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 转自小驰的博客。去年认识的小驰,当时水平还差不多,现在我被远远甩在了后面,悲哀!http://www.cnblogs.com/njuzyc/两道好玩的问题及我对“贪心思想”看法贪心是一种思想,所以我感觉给它下严格的定义不太合理。//要细致地研究它严格的定//义当然是必不可少的在最优化问题中,贪心思想指每次决策都选择当前最优解,而不用考虑全局的情况。贪心法是一种很高效的算法,但是容易知道贪心算法不一定正确,即从局部最优解不一定能够构造出全局最优解。所以说,贪心的难点之一便是 贪心 正确性的证明。总结出什么样的问题是能够用贪心法解决 是一件很困难的事情,不过大神们也弄出了一套名为“矩阵胚”的理论, 阅读全文
posted @ 2012-07-26 17:02 找回失去的 阅读(539) 评论(0) 推荐(0) 编辑
摘要: 求任意两点之间的最短路径最大值的最小值,听起来有点绕口,不过数据结构课程设计里面给出了这个概念,叫做偏心度,就是一个点到途中任一点的距离要最小,先用floyd求出任意两点之间的最短路,再枚举每一个点到其他点的最短距离,找出其中最大那个,和其他的最大值来比较,找出全图的最小值。/*Accepted 168K 0MS C++ 1217B 2012-07-26 15:42:29*/#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>using namespace st 阅读全文
posted @ 2012-07-26 15:50 找回失去的 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 这道题比较经典了。建图时用g[0][i]表示不用替代物品获得编号为i的物品所需的金币,g[j][i]代表用编号为j的物品替代获得编号为i的物品所需要的金币,然后在M的限制范围内进行所有可能的交易,最后获得其最小值,一共需要做m次dij。/*Accepted 228K 0MS C++ 1600B 2012-07-26 15:16:49*/#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>#include<queue>using namespace s 阅读全文
posted @ 2012-07-26 15:22 找回失去的 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 这道题是要求石头1到石头2的最长跳跃距离的最小值,用了堆优化的dij来做,想不到好久没写最短路,这玩意都写的不顺了。也可以用floyd求出任意两个石头间的距离,也就是跳跃距离,然后找到1到2的最长路径的最小值。/*Accepted 636K 0MS C++ 1453B 2012-07-26 11:51:06*/#include<cstdio>#include<cstring>#include<cstdlib>#include<queue>#include<cmath>#include<iostream>using name 阅读全文
posted @ 2012-07-26 12:00 找回失去的 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 今天的集训中期比赛暴露出我的很多问题,对于字符串处理的不熟悉,致使B题没写对,对于最水的两道枚举和贪心,也是一共WA了五次,在四十几分钟之后才过的。H题的BFS思路没错,关键代码也没写错,结果因为重复使用了变量,一直没检查出来,过了样例就胡乱提交题,结果WA了六次,赛后才过掉。H题几乎用了三个小时,结果问题出在这个地方,心里真的不好受!#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>#include<queue>using namespace s 阅读全文
posted @ 2012-07-25 15:25 找回失去的 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 这道题的离散化很巧妙,参考了胡浩大神的代码。自己先理解下http://www.notonlysuccess.com/大神的博客/*Accepted 1120K 79MS C++ 2109B 2012-07-24 17:40:47*/#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define lson l, m, rt << 1#define rson m + 1, r, rt << 1 | 1const int MAXN = 11111 阅读全文
posted @ 2012-07-24 17:47 找回失去的 阅读(175) 评论(0) 推荐(1) 编辑
摘要: 颜色种类不大于三十,可以用二进制来加速。每个二进制代表一种颜色,用位或运算来更新颜色记录,最后求和只要看结果有几个二进制为1就行。/*Accepted 2224K 297MS C++ 2156B 2012-07-24 16:39:26*/#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>using namespace std;#define lson l, m, rt << 1#define rson m + 1, r, rt << 1 阅读全文
posted @ 2012-07-24 16:46 找回失去的 阅读(204) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 29 下一页