
ACM
文章平均质量分 64
早迎朝阳晚迎星光
这个作者很懒,什么都没留下…
展开
-
搜索之DFS
前言:搜索算法是利用计算机的高性能来有目的地穷举一个问题的部分或所有的可能情况,从而求出问题的解的一种方法。搜索过程实际上是根据初始条件和扩展规则构造一棵解答树并寻找符合目标状态的节点的过程。题目:HDOJ,1010DFS:基本思想:从初始状态S开始,利用规则生成搜索树下一层任一个结点,检查是否出现目标状态G,若未出现,以此状态利用规则生成再下一层任一个转载 2014-03-03 13:52:02 · 731 阅读 · 0 评论 -
九度:1004<Median><中位数>
// 浙大11机试// Media// 中位数// #include #include #include #define SIZE 2000005int a[SIZE];using namespace std;int main(){#ifdef ONLINE_JUDGE#elsefreopen("E:\\in.txt" , "r", stdin);#en原创 2014-03-06 08:57:42 · 680 阅读 · 0 评论 -
九度:1022:游船出租
// 浙大2007机试// // 题目:游船出租// 考察:输入控制、四舍五入、Hash、统计////////////////////////#include #include #include #include #include #include #include #include #include #include原创 2014-03-05 22:58:25 · 769 阅读 · 0 评论 -
九度:1018<Hash>
http://ac.jobdu.com/problem.php?pid=1018// 浙大2006年机试// 九度:1018// 题目:统计成绩// // 考察:Hash// // // // // // // #include #include #include #include #include原创 2014-03-02 23:07:39 · 659 阅读 · 0 评论 -
九度:1201<二叉排序树><建立,遍历>
// 华中科大机试// 九度:1201// // 二叉排序树的建立、存储// 数的先序,后序,中序遍历// #include #include #define SIZE 105struct Node{ Node * lchild; Node * rchild; int data;};Node Tree[SIZE];int loc;Node * Cre原创 2014-03-06 13:07:15 · 697 阅读 · 0 评论 -
九度:1468<Sharing><链表>
// 浙大12机试// 九度:1468// // Sharing:单词链表存储,共享后缀存储空间// #include #include #include #define SIZE 100005 using namespace std; struct Node{ int add; char data; int next; int np原创 2014-03-06 09:02:27 · 760 阅读 · 0 评论 -
九度:1026<A+B>
// 浙大2008机试// // A+B// 非负整数是关键。和为0是关键。// // // // // // // // #include #include #include #include #include #include #include #include #include #include #include #i原创 2014-03-06 08:47:08 · 736 阅读 · 0 评论 -
九度:1154<最小生成树>
http://ac.jobdu.com/problem.php?pid=1154// 北大10机试// 1154:Jungle Roads// // WA:原因,初始化时为1~SIZE-1,而使用时ch-'A',是从0开始的。// 但是,本地测试却与答案相同!所以,优点隐蔽。// 所以初始化时,为0~SIZE-1时,就安全保险了。// 还需要养成习惯,做到点的开始为1。原创 2014-03-06 18:39:18 · 718 阅读 · 0 评论 -
九度:1464<Hello World For U><排版>
// 浙大12机试// Hello world for U// 排版// #include #include int main(){#ifdef ONLINE_JUDGE#elsefreopen("E:\\in.txt" , "r", stdin);freopen("E:\\out.txt", "w", stdout);#endif char s[100]; w原创 2014-03-06 08:58:57 · 722 阅读 · 0 评论 -
九度:1447<最短路径><Floyd><Dijstra>
题目简单,为了讲解2中算法而设计。http://ac.jobdu.com/problem.php?pid=14471. Floyd// 九度:1447// // 无向图的最短路径// Floyd算法:// 1.时间复杂度O(N^3),在节点不超过200时可以使用,超过后,由于算法效率不高,会超时。// 2.如果两点之间存在多边,存小的那个边。// 3.适合全源最原创 2014-03-07 13:05:51 · 1058 阅读 · 0 评论 -
九度:1006<ZOJ问题><规则,规律>
// 浙大10机试// ZOJ问题// 第一次代码没有考虑j在前z在后的问题// 第二次修正#include #include bool Judge(char s[]){ int na=0, nb=0,nc=0; int i=0, len = strlen(s); while(s[i] != 'z') { na++; i++; } i++; while(s原创 2014-03-06 08:53:55 · 712 阅读 · 0 评论 -
九度:1444<效率很重要>
// 九度:1444// 并查集// // 数据太大,多次遍历,存在超时// 共3次遍历操作,虽然使用了sort,DP。但是本机运行时2s多,// 所以说超时很严重了,正常情况下时间不超过1s才对// 第二种算法,在跟节点的对应位置记录本集合的节点数量,// 这样,共2次遍历,没有sort。时间节约了很多。0.5s一下#include #include #include原创 2014-03-06 18:21:34 · 601 阅读 · 0 评论 -
九度:1011<A+B for Metrics>
// 浙大11机试// A+B for Matrices// 矩阵加法// #include #include #define SIZE 20int a[SIZE][SIZE], b[SIZE][SIZE];int M, N;void Input(){ int i, j; for(i=0; i<M; i++) { for(j=0; j<N; j++)原创 2014-03-06 08:55:12 · 763 阅读 · 0 评论 -
九度:1445<并查集>
// // 九度:1445// 并查集基本题,统计多少集合#include #define SIZE 1005int fa[SIZE];int Getfa(int x){ if(x == fa[x]) return x; else fa[x] = Getfa(fa[x]); return fa[x];}void In原创 2014-03-06 18:24:53 · 750 阅读 · 0 评论 -
九度:1019<模拟>
http://ac.jobdu.com/problem.php?pid=1019// 浙大2006年机试// 九度:1019// 题目:简单计算器// // 第一次做错了,想了好久才发现自己的错误。// 第一次中,每次都是读取字符,也就意味着,// 程序只能计算个位数的数据。测试自己写的// case 也都正确,所以哎呀!// // 第二次更新了策略,第一次读取一个浮原创 2014-03-02 23:09:18 · 664 阅读 · 0 评论 -
九度:1009<二叉搜索树><二叉排序树><建立二叉树><遍历>
http://ac.jobdu.com/problem.php?pid=1009// 浙大10机试// 九度:1009// // 二叉排序(搜索)树的建立、存储// 数的先序,后序,中序遍历// 通过先序+中序、中序+后序、中序+层次可以唯一的确定一棵二叉树// 当需要使用时,这些创建节点,建立二叉排序树、先、中、后遍历,// 骨架不需要改变,改变的仅仅是visit(T原创 2014-03-06 13:05:26 · 728 阅读 · 0 评论 -
WPL
前言关于WPL,树的路径长度,哈夫曼树的介绍,请看:http://www.cnblogs.com/Braveliu/p/3453900.html。一般树的WPL进行一次遍历,在叶节点出进行计算。进行遍历时,需要记录所遍历节点的高度,则WPL = WPL + T->weight * high。遍历可采用先,中,后序遍历。// WPL// WPL为全局变量,high设为局部变量即可原创 2014-03-10 14:21:38 · 1861 阅读 · 0 评论 -
九度:1172<哈夫曼树WPL>
http://ac.jobdu.com/problem.php?pid=1172// 九度:1172// 求哈夫曼树的wpl// 没有构建哈夫曼树#include #include using namespace std;priority_queue, greater > Q;//小顶堆int main(){#ifdef ONLINE_JUDGE#els原创 2014-03-10 14:20:52 · 1557 阅读 · 0 评论 -
九度:1007<排序><奥运排序>
http://ac.jobdu.com/problem.php?pid=1077题目难,按着题目的信息,条理清晰,切记浮躁。没想好方法,不要乱写。// 浙大10排序// 九度:1007// puts():输出一个字符串,并输出回车,// PE:puts("\n");空两行,应使用puts("");//// #include #include #include原创 2014-03-08 23:30:55 · 870 阅读 · 0 评论 -
九度:1033<继续3n+1>
http://ac.jobdu.com/problem.php?pid=1033如果题目不适用hash,时间复杂度会较高。并且使用栈,倒序输出。// 浙大09机试// 继续某某定律// RE:数组开的不够大,虽然提交显示只使用了1M多,// RE的话,还是先改大数组,在考虑其他原因#include #include #define SIZE 500+5#defi原创 2014-03-08 23:28:11 · 802 阅读 · 0 评论 -
九度:1036<枚举>
// 九度:1036//////#include int main(){#ifdef ONLINE_JUDGE#else freopen("E:\\in.txt", "r", stdin);// freopen("E:\\out.txt", "w", stdout);#endif int n; while(scanf("%d", &n) != EOF) {原创 2014-03-08 23:15:58 · 999 阅读 · 0 评论 -
九度:1448<拓扑排序>
// 浙大10机试// 1448:拓扑排序// 1.使用邻接矩阵,找下一入度为0的点,纵向遍历.// 保证了每次都是选取入度节点中最小号的节点,1449题即如此。// 因此,如果要求节点号大的在前,只需由n->1进行纵向遍历。// 2.使用vector与queue,入度为0的点入队,直到队列为空,// 若统计节点等于总结点数,存在拓扑序列.// // // // //#i原创 2014-03-08 23:08:32 · 732 阅读 · 0 评论 -
九度:1449<拓扑排序><DAG>
http://ac.jobdu.com/problem.php?pid=1449使用邻接矩阵实现方便。// 1449// 拓扑排序,小号尽量在前// #include #define SIZE 500+10int edge[SIZE][SIZE]; //edge[], 用来存放下一个节点的编号bool mark[SIZE];int Q[SIZE];原创 2014-03-08 23:11:10 · 781 阅读 · 0 评论 -
九度:1034<部分排序><乌镇大富翁>
http://ac.jobdu.com/problem.php?pid=1034// 浙大09// 简单排序题// 起初使用sort,后改用partial_sort,时间减少10ms。// #include #include #define SIZE 100005using namespace std;bool cmp(int x, int y)原创 2014-03-08 23:22:28 · 717 阅读 · 0 评论 -
九度:1456 <BFS><胜利大逃亡>
http://ac.jobdu.com/problem.php?pid=1456// 九度:1456 // BFS// // // 迷宫类bfs定义:map、mark、队列Q、节点Nodeint bfs (参数){ while(!Q.empty()) { Node now 获取队头节点 for(每个方向) { 求出下一节点坐标t if原创 2014-03-08 23:18:03 · 858 阅读 · 0 评论 -
九度:1008<最短路径>
http://ac.jobdu.com/problem.php?pid=1008// 浙大10机试// 1008:最短路径问题// 多条件,需要修改Dijstra的算法条件部分// // // // // // // #include #include using namespace std; #define SIZE 1000+5 stru原创 2014-03-07 23:55:11 · 780 阅读 · 0 评论 -
九度:1045<百鸡问题><枚举>
http://ac.jobdu.com/problem.php?pid=1045// 哈工机试// 枚举,时间复杂度小,暴力// #include #include #include int main(){ int n; while(scanf("%d", &n) != EOF) { for(int i=0; i<= 100; i++) {原创 2014-03-08 23:14:38 · 840 阅读 · 0 评论 -
九度:1162<I wanna go home><最短路径>
http://ac.jobdu.com/problem.php?pid=1162// 北大11机试// 九度:1162// I wanna go home// // 思想:把不同的领导的节点分别看成集合1和集合2,由于始终是由// 节点1到节点2,所以路径的方向总是朝着由集合1流向集合2.// 这样集合1与集合2之间的边,保留集合1指向集合2,而去除集合2// 指向集原创 2014-03-07 23:56:27 · 1096 阅读 · 0 评论 -
九度:1031<3n+1>
// 浙大09机试// 3n+1// #include #include using namespace std;int main(){ int n; while(scanf("%d", &n) && n) { int ans=0; while(n != 1) { ans++; if(n%2 == 0) { n /= 2; }原创 2014-03-06 08:48:44 · 682 阅读 · 0 评论 -
九度:1029<魔咒词典><排序查找>
给出多个版本。前两个版本分别为C,C++。是论坛里面他人AC的。自己写的九度一直不AC,但杭电AC了。再想想哪里有边界吧!C语言版/*748868 ****** 1029 Accepted 点击此处查看所有case的执行结果 20972KB 2240B 20MS C++ / 代码 / 编辑 22:02:09748860 ****** 1029 Accepted 点击此处查看所有原创 2014-03-06 08:44:10 · 731 阅读 · 0 评论 -
九度:1021<统计字符>
http://ac.jobdu.com/problem.php?pid=1021// 浙大2007年机试// 九度:1021// 题目:统计字符// // 考察:统计,比较,记录// // // // // #include #include #include #include #include #include #include #in原创 2014-03-02 23:14:46 · 675 阅读 · 0 评论 -
九度:1013<开门人>
浙大2005年研究生机试此题可排序解。这是看到别人的代码,自己又按排序做了一下,排序使用sort,两次排序,分别求最早与最晚。自己的解法有两种:第一时间作为字符串处理作为字符串处理,时间也是可以直接比较的。#include #include #include using namespace std;struct People{ char name[20];原创 2014-03-01 21:41:43 · 918 阅读 · 0 评论 -
九度:1010
浙大2005年研究生机试此为模拟类型的题目。A+B#include #include using namespace std;int trans(string s){ if("one" == s) return 1; else if("two" == s) return 2; else if("three" == s) return 3; else if("fou原创 2014-03-01 21:29:57 · 566 阅读 · 0 评论 -
杭电ACM分类
基础题:1000、1001、1004、1005、1008、1012、1013、1014、1017、1019、1021、1028、1029、1032、1037、1040、1048、1056、1058、1061、1070、1076、1089、1090、1091、1092、1093、1094、1095、1096、1097、1098、1106、1108、1157、1163、1164、1170、1194、1转载 2014-02-14 11:03:56 · 675 阅读 · 0 评论 -
贪心算法
初步了解了贪心算法后,在九度做了几个题目,简单的AC了,但是有一个题目(浙大12年复试题),耗时耗力,测试案例正确,但是,依然WA!所以,在网上搜罗资料,才发现,之前是一叶障目不见泰山,贪心的算法,应该是一个完备的思想体系,使用之前还要证明!以下为整理的资料,重要部分做了高亮显示。百度百科:概念:贪婪算法(Greedy algorithm)是一种对某些求最优原创 2014-02-14 11:05:55 · 968 阅读 · 0 评论 -
各种错误提示的意义及原因
摘自PKU:http://poj.org/faq.htmAccepted (AC): Congratulations! Your program has produced the correct output!Presentation Error (PE): Your program's output format is not exactly the same as requ原创 2014-02-14 12:13:26 · 1389 阅读 · 0 评论 -
各种错误
把题目AC了不是最重要的,最重要的是能总结出为什么没有AC!原创 2014-02-12 18:34:53 · 844 阅读 · 0 评论 -
查找
三个查找题目,做的还是比较顺利,一次性被服务器AC!http://ac.jobdu.com/problem.php?pid=1126/** * 1、定义的极值的下标包括0,与最后 * 2、每组下标之间空格分开 * 3、多组测试之间无空行 * 4、数全相同怎么办呢? * 5、提交后AC了,说明了测试数据中必定都有极值。把4的情况排除了。 * 题目没有给出没有极值原创 2014-02-12 18:30:04 · 534 阅读 · 0 评论 -
Hash思想:映射
1.使用Hash思想题目的特点1、输入的数据的变化范围是有限的;比如:(1)、当读到N=0时输入结束。其中N不超过1000,成绩分数为(包含)0到100之间的一个整数。(2)、每组测试数据有两行,第一行有两个数n,m(0(3)、每个案例第一行两个整数N,M,2 <= N ,M<= 200。接下来有N行,第i(i = 1,2,…,N)行每一行有一个数,表示读者i-1最喜欢的图原创 2014-02-12 18:18:46 · 2519 阅读 · 0 评论 -
输出图形
排版题:第一类:规律性墙,自上而下,自左到右输出即可。第二类:规律性无,先完成排版再输出!第一类:/*排版题:第一类:规律性墙,自上而下,自左到右输出即可。第二类:规律性无,先完成排版再输出!题目:输入一个高度h,输出一个高为h,上底边为h的梯形。输入:一个整数h(1<=h<=1000)。输出:h所对应的梯形。样例输入:4样例输出:原创 2014-02-12 17:55:01 · 965 阅读 · 0 评论