- 博客(20)
- 收藏
- 关注
原创 L2-004. 这是二叉搜索树吗?
题目描述 一棵二叉搜索树可被递归地定义为具有下列性质的二叉树:对于任一结点,其左子树中所有结点的键值小于该结点的键值; 其右子树中所有结点的键值大于等于该结点的键值; 其左右子树都是二叉搜索树。所谓二叉搜索树的“镜像”,即将所有结点的左右子树对换位置后所得到的树。给定一个整数键值序列,现请你编写程序,判断这是否是对一棵二叉搜索树或其镜像进行前序遍历的结果。输入输入的第一行...
2018-03-25 10:04:57 207
原创 L2-002. 链表去重
题目描述 给定一个带整数键值的单链表L,本题要求你编写程序,删除那些键值的绝对值有重复的结点。即对任意键值K,只有键值或其绝对值等于K的第一个结点可以被保留。同时,所有被删除的结点必须被保存在另外一个链表中。例如:另L为21→-15→-15→-7→15,则你必须输出去重后的链表21→-15→-7、以及被删除的链表-15→15。输入输入第一行包含链表第一个结点的地址、以及结点个数N(<...
2018-03-24 20:01:08 190
原创 L1-046. 整除光棍
题目描述这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然不是唯一的,题目要求你输出...
2018-03-24 10:24:36 196
原创 L1-043. 阅览室
题目描述天梯图书阅览室请你编写一个简单的图书借阅统计程序。当读者借书时,管理员输入书号并按下S键,程序开始计时;当读者还书时,管理员输入书号并按下E键,程序结束计时。书号为不超过1000的正整数。当管理员将0作为书号输入时,表示一天工作结束,你的程序应输出当天的读者借书次数和平均阅读时间。注意:由于线路偶尔会有故障,可能出现不完整的纪录,即只有S没有E,或者只有E没有S的纪录,系统应能自动...
2018-03-24 09:34:40 178
原创 01字串
题目描述对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是: 00000 00001 00010 00011 00100请按从小到大的顺序输出这32种01串。输入本试题没有输入。输出输出32行,按从小到大的顺序每行一个长度为5的01串。样例输出00000000010001000011<以下部分省略>思...
2018-03-22 20:54:58 251
原创 L1-025. 正整数A+B
题目描述本题的目标很简单,就是求两个正整数A和B的和,其中A和B都在区间[1,1000]。稍微有点麻烦的是,输入并不保证是两个正整数。输入输入在一行给出A和B,其间以空格分开。问题是A和B不一定是满足要求的正整数,有时候可能是超出范围的数字、负数、带小数点的实数、甚至是一堆乱码。注意:我们把输入中出现的第1个空格认为是A和B的分隔。题目保证至少存在一个空格,并且B不是一个空字符串。...
2018-03-22 20:46:32 402
原创 2n皇后问题
题目描述给定一个n*n的棋盘,棋盘中有一些位置不能放皇后。现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行、同一列或同一条对角线上,任意的两个白皇后都不在同一行、同一列或同一条对角线上。问总共有多少种放法?n小于等于8。输入输入的第一行为一个整数n,表示棋盘的大小。 接下来n行,每行n个0或1的整数,如果一个整数为1,表示对应的位置可以放皇后,如果一个整数为0,表示对应
2018-03-20 20:53:26 180
原创 L1-6 求符合给定条件的整数集
题目描述给定不超过6的正整数A,考虑从A开始的连续4个数字。请输出所有由它们组成的无重复数字的3位数。输入输入在一行中给出A。输出输出满足条件的的3位数,要求从小到大,每行6个整数。整数间以空格分隔,但行末不能有多余空格。样例输入2样例输出234 235 243 245 253 254324 325 342 345 352 354423 425 432 43...
2018-03-18 09:42:42 549
原创 输出前k大的数
题目描述给定一个数组包含n个元素,统计前k大的数并且把这k个数从大到小输出。输入第一行是一个正整数n,表示数组的大小。n < 100000。 第二行包含n个整数,表示数组的元素,整数之间以一个空格分开。每个整数的绝对值不超过100000000。 第三行包含一个整数k。k < n。输出从大到小输出前k大的数。样例输入101 3 5 7 9 2 4 6 8 105样例输出10 9 8 7 6思路
2018-03-13 22:34:23 1036
原创 放苹果
放苹果题目描述把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法? 5,1,1和1,5,1是同一种分法。输入第一行是测试数据的数目t(0<= t <=20)。以下每行均包含二个整数M和N,以空格分开。 1<=M,N<=10。输出对输出的每组数据M和N,用一行输出相应的K。样例输入17 3样例输出8来源MOOC PKU GuoWei 代码#include <ios
2018-03-13 20:47:47 313
转载 逆波兰表达式
//by PKU GuoWei#include <iostream>#include <cstdlib>using namespace std;double exp(){ char s[20]; cin>>s; switch(s[0]){ case '+': return exp()+exp(); ...
2018-03-13 20:29:23 146
原创 n皇后问题
#include <iostream>#include <cmath>using namespace std;int queen[100];int n;void printQ(){ for(int i=1; i<=n; i++){ cout<<queen[i]<<' '; } cout<...
2018-03-13 20:21:33 199
原创 Kruskal Prim 最小生成树
/*Kruskal, 使用并查集判断两棵树是否连通,还可以用dfs*/#include <iostream>using namespace std;struct edge{ int u, v; int w;};struct edge a[100];int f[100];int n, m;struct edge tmp;void quickSo...
2018-03-05 22:05:04 192
原创 并查集
#include <iostream>using namespace std;int f[100];int getf(int v){ if(f[v] == v){ return v; }else { f[v] = getf(f[v]); return f[v]; }}void merge(int u...
2018-03-04 23:16:38 184
原创 最小堆
#include <iostream>using namespace std;int h[100];int n;void siftdown(int i){ int t, flag = 0; while(i*2 <= n && flag == 0){ if(h[i] > h[i*2]){ t ...
2018-03-04 23:15:59 197
原创 Bellman-Ford 队列优化
#include <iostream>using namespace std;int n, m;int a[100][100], book[100], dis[100];const int INF = 0x3f3f3f3f;int main(){ int que[100]; int head, tail; cin>>n>>...
2018-03-04 23:14:50 235
原创 Bellman-Ford 扩展
#include <iostream>using namespace std;int n, m;int u[100], v[100], w[100], dis[100];const int INF = 0x3f3f3f3f;int check = 0, flag = 0;int main(){ cin>>n>>m; for(in...
2018-03-04 23:13:39 184
原创 Bellman-Ford 单源最短路径
#include <iostream>using namespace std;int u[100], v[100], w[100];const int INF = 0x3f3f3f3f;int dis[100];int main(){ int n, m; cin>>n>>m; for(int i=1; i<=m; i...
2018-03-03 18:23:04 244
原创 Dijkstra 单源最短路径
Dijkstra单源最短路径#include <iostream>using namespace std;int a[100][100], book[100];int dis[100];const int INF = 0x3f3f3f3f;int main(){ int n, m;//n个顶点,m条边 cin>>n>>m; ...
2018-03-03 18:20:54 159
原创 Floyd 多源最短路径
Floyd多源最短路径#include <iostream> using namespace std;int main(){ int a[100][100]; int n, m;//n个顶点,m条边 const int INF = 0x3f3f3f3f; cin>>n>>m; for(int i=1; i&l...
2018-03-03 18:18:51 281
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人