- 博客(15)
- 资源 (1)
- 收藏
- 关注
原创 九度OJ108 HDOJ3790:最短路径问题 迪杰斯特拉算法
浙大的这道考研上机题明摆着要使用最短路径算法,考虑时间复杂度,我用了迪杰斯特拉算法。 这道题比书上的样例算法稍微有些复杂,不仅要求距离最短,而且要在同时有多个距离最短的情况下,要求费用也最短。这个处理的方法就是更新最短路径时考虑两种情况。HDOJ的测试数据里有重边,因此输入时要将保存最短的重边。 我的AC代码: #include #include #include
2012-02-18 21:54:09 3488
原创 解释下标操作符为什么要返回引用
重载下标操作符的一大好处便是对对象内部的容器可以像访问数组元素一样进行读写。 如果重载的下标操作符不返回引用,便只能读取对象的内部状态。 #include using std::vector;#include using std::cout; using std::endl;class Foo {public:Foo(): data(100) { fo
2012-02-17 17:24:31 2614 1
原创 九度OJ 1149:子串计算 暴力枚举
北大的这道考研上机题不难,暴力枚举一下就好了。题目要求输出按字典序,这时候关联容器map就派上用场了,map里的数据本身就是按照键值排列的,所以只要顺序输出容器中的元素即可。 题目URL:http://ac.jobdu.com/problem.php?id=1149 我的AC代码: #include #include #include #include #inc
2012-02-17 16:54:19 1671
原创 HDOJ 1236,九度 :排名 简单的排序
昨晚上一个同学把我喊过去看他在九度OJ上为什么老是WA这道题,我想了半个小时的边界条件都没有想出来。然后让他去HDOJ提交这道题目看看怎么,猜测九度的测试数据可能有问题。意料之中,在HDOJ上顺利的AC了这道题目。今天早上起来之后,自己做了下这道题目。比较简单,只需要排个序,没有特殊的边界条件需要考虑。 正在学习C++的函数对象,所以那这道题练习了下函数对象。一共写了三个版本,有比较函数
2012-02-16 10:58:38 1543
原创 九度OJ 1197:奇偶校验 简单的位操作习题
华科的这道考研上机题的大意是,给一个字符串,计算每个字符的二进制表示中的1的个数,如果有奇数个1,则奇偶位为0, 偶数个1,则奇偶位为1。 题目URL:http://ac.jobdu.com/problem.php?id=1197 我的AC代码: #include #include using namespace std;const int Max = 100
2012-02-15 09:19:52 1926
原创 POJ 2410:Simple Computers 模拟题
题目URL:http://poj.org/problem?id=2410 这道题最初是用字符串模拟内存的一位,看了讨论版其他认的代码之后我才发现这种方式太过复杂。完全可以用一个int或者一个char来模拟一个指令。 自己总结下,取一个字节的后5位的整数值,可以byte % 32就可以了,而取一个字节的前三位则可以byte >> 5,总结下之后发现位操作的强大之处了。于是又用位操
2012-02-14 21:29:42 1223
原创 九度OJ 1016:火星A+B 长整数加法
做这道浙大的考研上机题时,以为要转换成long long型再相加。这个思路为这道题贡献了好几次WA。 洗澡的时候才灵光一现,有了新的想法,就是一道长整数加法嘛,只不过不是十进制的罢了,而且各个位的权值都不一样,算是见识的长整数加法的极致版本了。 题目URL:http://ac.jobdu.com/problem.php?id=1016 我的AC代码: #in
2012-02-13 21:00:26 2073 1
原创 九度OJ 1165:字符串匹配 字符串处理
九度上能做出来这道题北航考研上机真题的不多,我半个小时就一次AC了,小有成就感。 题目URL:http://ac.jobdu.com/problem.php?id=1165 这道题有些正则表达式匹配的感觉,可是不知道九度的编译器支不支持C++标准库的regular_expression库。反正就用基本的C++写了,练练字符串处理的基本功。 题目说大小写通配,所以我干脆
2012-02-09 22:10:36 2329
原创 HDOJ 1162:Eddy's picture 求解最小生成树
http://acm.hdu.edu.cn/showproblem.php?pid=1162 这道题也是一道单纯的求解最小生成树的题目,是个稠密图,所以是普里姆算法的用武之地。对于完全图,普里姆算法的复杂度(n^2),而克鲁斯卡尔算法的复杂度(n^2logn^2),效率大小长差很大。 我的AC代码:#include #include #include #include
2012-02-09 16:13:41 1119
原创 HDOJ 1233:还是畅通工程 普里姆算法求最小生成树
浙大的考验上机题比较单纯,完全就是考最小生成树算法的。最初想用克鲁斯卡尔算法练练手,没想到这个图是个完全图,克丽丝卡尔算法不适用,于是干脆再写一次普里姆算法得了。 题目URL:http://acm.hdu.edu.cn/showproblem.php?pid=1233 我的AC代码:#include #include #include using namespace st
2012-02-09 14:52:30 1305
原创 九度OJ 1010:A + B 用map映射英文与数字的关系
http://ac.jobdu.com/problem.php?id=1010 浙大的这道考研上机题处理输入需要有些技巧,直观上应该是考察对C++类库的熟悉吧,尤其是map的使用。 ”+“预示第一个操作数已经处理完毕,”=“预示第二个操作数处理完毕。 我的AC代码:#include #include #include #include using
2012-02-07 23:09:13 1836
原创 HDOJ 1863:畅通工程 Prim算法求解最小生成树
http://acm.hdu.edu.cn/showproblem.php?pid=1863 这道浙大的考研上机题题意大致是:给一个带全图,若连图,则输出该图的最小生成树的权值之和,不连通,输出?. 我用Prim算法求解MST,求解然之后判断是否连通,判断连通并没有去重新遍历图一遍。用了一个小技巧。 我的AC代码。 #include#includeusi
2012-02-07 19:17:04 2283
原创 HDOJ 1232:畅通工程 并查集求解子图的个数
这道浙大的研究生上机复试题题意大致是:给一个图,问最少添加几条边可以使图联通。如果一个图有N个子图,显然添加N-1条边便可以使图联通了。于是这个题课转化为求解一个图的子图的个数。 求解子图的个数可以用并查集,也可以用教材上的深搜或宽搜求解,我用的是并查集求解,因为并查集显然形式要更为简洁。 我的AC代码。 #include#include using na
2012-02-07 19:11:37 1188
原创 HDOJ 1021:Fibonacci Again 找出循环周期
http://acm.hdu.edu.cn/showproblem.php?pid=1021 F(n-1) 与 F(n-2)的值的组合只有9种,因此F(n)的循环周期至多是9.判定循环周期的条件是F(n)=F(1)&&F(n-1)=F(0),那么必有F(n+1)=F(2),于是循环也就开始出现了。 我的AC代码。 #includeusing namespa
2012-02-07 12:39:56 1571 3
原创 HDOJ 2306:改革春风吹满地 叉积求面积
题目URL:http://acm.hdu.edu.cn/showproblem.php?pid=2036 题目也没说是凸多边形还是凹多边形,糊里糊涂就A了。 思路是把一个N边形切割成N-2个三角形,然后用向量叉积求三角形的面积。 我的AC代码: #include#include using namespace std;int main(){
2012-02-05 18:18:04 2204
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人