
九度OJ
文章平均质量分 56
渊渊大魔王
这个作者很懒,什么都没留下…
展开
-
题目1181:遍历链表
Problem:Solution:题目要求很清楚,先建立一个链表,再对链表进行类似于冒泡的排序即可#include #include #include using namespace std;struct LNode{ int val; struct LNode *next;};int main(){ int n,m; LNod原创 2017-03-01 15:19:35 · 227 阅读 · 0 评论 -
题目1014:排名
这道题没有涉及到算法,只是数据存储和判断起来可能比较复杂需要注意的是对sort()函数的使用#include #include #include using namespace std;struct Node{ string id; int pass; int num[10]; int sum;};bool cmp(Node a,Node原创 2017-03-16 17:24:00 · 206 阅读 · 0 评论 -
题目1013:开门人和关门人
这道题没有涉及到算法的内容,是对基础知识的考查。刚开始时我就发现,这道题要在输入的过程中就进行比较,找到合适的输出,然后存储起来,而不能先输进去然后再集中判断,这样会很麻烦。但是我陷入了一个误区,我觉得要比较时间大小的话需要先把字符串类型的时间转换成整数进行比较,实际上不用,使用strcmp()函数就可以轻松完成。题中每个签到者有个ID,还有签到时间和签离时间,不妨用一个结构体将它们归在一起比原创 2017-03-16 15:30:44 · 542 阅读 · 0 评论 -
题目1012:畅通工程
这道题如果不用并查集感觉根本无从下手,可以将题目理解为:如果两点之间有路径,那么与他们连接的其他结点也就贯通了,即可以归属于同一个集合,关于并查集方法的叙述,有一篇博客讲的很好: http://blog.youkuaiyun.com/dellaserss/article/details/7724401/#include using namespace std;int Tree[1000];原创 2017-03-16 12:25:23 · 252 阅读 · 0 评论 -
题目1011:最大连续子序列
采用动态规划的思想,可以在一次遍历中完成解答。依次相加所有的元素,同时记录相加过程中的最大值,当cur的和小于0时,说明此时再加下去会拖累后面元素的后腿,遂舍弃之前的cur,从下一个元素开始重新相加。#include using namespace std;int main(){ int k; while (cin >> k && k != 0) {原创 2017-03-15 23:29:27 · 213 阅读 · 0 评论 -
题目1441:人见人爱 A ^ B
这里不能只用使用pow()函数,因为如果给的两个数很大的话,其结果根本是无法存储的,这里有一个技巧,求a^b的最后三位,只需将每次与a相乘的结果中保留最后三位即每次都对1000取余就行了,与更高位的数字是没有关系的。#include #include #include using namespace std;bool judge(int n){ int i;原创 2017-03-24 14:21:07 · 326 阅读 · 0 评论 -
题目1056:最大公约数
求最大公约数,使用欧几里得算法(辗转相除)即可#include using namespace std;int main(){ int a,b; while (cin >> a >> b) { while (a % b != 0) { int temp = a % b; a = b原创 2017-03-24 10:44:53 · 277 阅读 · 0 评论 -
题目1434:今年暑假不AC
使用贪心算法,每次选择结束时间最早的电视节目,可获得最优解#include #include using namespace std;struct Node{ int start; int end;};bool cmp(Node a,Node b){ if (a.end == b.end) return a.start < b.start;原创 2017-03-22 20:46:52 · 261 阅读 · 0 评论 -
题目1172:哈夫曼树
哈夫曼树的建立问题,建立哈夫曼树的过程很简单,每次在集合k中取出两个权制最小的点进行合并,并将合并之后的结果放入集合k中即可。因此问题的关键就在于怎样快速简便的从集合k中找出两个权值最小的结点。我们可以使用优先队列解决。priority_queue Q 建立一个int型的大顶堆,priority_queue,greater > Q 建立一个int型的小顶堆,每次取出或者加入元素时,堆会自动进行原创 2017-03-21 15:11:07 · 628 阅读 · 0 评论 -
题目1009:二叉搜索树
输入一个整数n,再给你一个序列s让你生成一个二叉排序树,接下来输入n个序列,判断这n个序列生成的二叉排序树是否和序列s生成的二叉排序树相同。这道题的思路是这样,我们首先应该根据给定序列建一个二叉排序树,判断两颗树相同的条件是它们的前序序列和中序序列/后序序列和中序序列相等。下面是此题的代码:#include #include using namespace std;struc原创 2017-03-21 12:34:49 · 533 阅读 · 0 评论 -
题目1464:Hello World for U
Problem:Solution:#include #include using namespace std; int main(){ int n1,n2,n3; string s; while (cin >> s) { string s1; string s2; string s3;原创 2017-03-05 20:57:23 · 277 阅读 · 0 评论 -
题目1468:Sharing
Problem:Solution:题目的意思让我们找出以链表存储的单词的公用存储区,也就是找其公共后缀开始的地方。先要构建两个链表分别存储两个单词,由于两个单词的长度是不相等的,要使它们的末尾对齐,那么必然要先对长的单词进行遍历,直到长单词剩余部门和短单词等长,然后开始对比它们的地址,如果相等,那么从此处开始就是它们的公共存储区了。#include #include #in原创 2017-03-05 20:55:59 · 304 阅读 · 0 评论 -
cin,scanf,gets,getline,getchar的一些区别和注意事项
cin:输入结束条件 :遇到Enter、Space、Tab键。scanf:scanf 读取字符串时,当遇到空格、回车和Tab键都会认为输入结束。gets:一般只用于读取字符串,gets可以接收空格,遇到回车认为输入结束getchar:getchar()是在输入缓冲区顺序读入一个字符(包括空格、回车和Tab);注意,getchar函数只能接受单个字符,输入数字原创 2017-03-18 10:03:36 · 1387 阅读 · 0 评论 -
题目1010:A + B
Problem:Solution:这道题的关键是要搞清楚题目中所蕴含的逻辑关系和运行顺序,没有什么有含金量的算法,具体详情看代码,需要注意的是两个加数的计算部分,由于输入即可以形如“six”也可以为“zero six”也可为“five six”,因此如何准确的根据输入情况得到加数就比较关键了#include #include using namespace std;原创 2017-03-03 10:55:39 · 314 阅读 · 0 评论 -
题目1183:守形数
Problem:Solution:比较简单的一道题,我用的方法是把这个数和它的平方转化为string类型然后从后往前进行比较。#include #include using namespace std;int main(){ int m; while(cin >> m) { int n = m * m; str原创 2017-03-02 15:45:39 · 321 阅读 · 0 评论 -
题目1180:对称矩阵
Problem:Solution:判断矩阵是否对称,申请一个二维数组来存放元素,然后判断各元素是否满足对称矩阵所需的条件即可,需要留意的是当二维数组作为形参进行传递时,在申明函数时参数需要以int[ ][10]这样的格式定义,也就是说第二个维度是不可以为空的。#include #include using namespace std;int main(){原创 2017-03-02 15:17:07 · 755 阅读 · 0 评论 -
题目1182:统计单词
Problem:Solution:这道题的思路其实是很简单的,但由于我对c++基本语法的不清楚导致耗费了很久。在用cin读取输入字符串时,遇到空白就会停止了,比如说输入为“hello world”读进去的只有“hello”,只能cin#include #include #include using namespace std;int main(){ stri原创 2017-03-02 13:44:00 · 289 阅读 · 0 评论 -
题目1017:还是畅通工程
可以很明显的看出,这是一道求最小生成树的问题,使用Kruskal算法和并查集的技巧,可以轻松解决。#include #include #include using namespace std;struct Node{ int vil1; int vil2; int cost;};bool cmp (Node a,Node b){ retu原创 2017-03-17 10:47:30 · 314 阅读 · 0 评论