读万卷书不如行万里路呀
微信公众号:taogyouji,欢迎志同道合的朋友相互交流分享!
展开
-
程序设计与算法(二)期末考试之10:Best Cow Line, Gold
FJ is about to take his N (1 <= N <= 30,000) cows to the annual "Farmer of the Year" competition. In this contest every farmer arranges his cows in a line and herds them past the judges.The contest organizers adopted a new registration scheme this y原创 2022-03-17 11:26:50 · 305 阅读 · 0 评论 -
程序设计与算法(二)期末考试之07:画家问题
描述有一个正方形的墙,由N*N个正方形的砖组成,其中一些砖是白色的,另外一些砖是黄色的。Bob是个画家,想把全部的砖都涂成黄色。但他的画笔不好使。当他用画笔涂画第(i, j)个位置的砖时, 位置(i-1, j)、 (i+1, j)、 (i, j-1)、 (i, j+1)上的砖都会改变颜色。请你帮助Bob计算出最少需要涂画多少块砖,才能使所有砖的颜色都变成黄色。输入第一行是一个整数n (1≤n ≤15),表示墙的大小。接下来的n行表示墙的初始状态。每一行包含n个字符。第i行的第j个字符表示位于原创 2020-05-16 21:10:50 · 498 阅读 · 0 评论 -
程序设计与算法(二)期末考试之09:最大子矩阵
已知矩阵的大小定义为矩阵中所有元素的和。给定一个矩阵,你的任务是找到最大的非空(大小至少是1 * 1)子矩阵。比如,如下4 * 4的矩阵0 -2 -7 09 2 -6 2-4 1 -4 1-1 8 0 -2的最大子矩阵是9 2-4 1-1 8这个子矩阵的大小是15。输入输入是一个N * N的矩阵。输入的第一行给出N (0 < N <= 100)。再后面的若干行中,依次(首先从左到右给出第一行的N个整数,再从左到右给出第二行的N个整数……)给出矩阵中的N2个整数,整数之原创 2022-03-17 11:26:33 · 273 阅读 · 0 评论 -
程序设计与算法(二)期末考试之08:Calling Extraterrestrial Intelligence Again
A message from humans to extraterrestrial intelligence was sent through the Arecibo radio telescope in Puerto Rico on the afternoon of Saturday November 16, 1974. The message consisted of 1679 bits and was meant to be translated to a rectangular picture wi原创 2020-05-16 21:11:51 · 391 阅读 · 0 评论 -
程序设计与算法(二)期末考试之06:Sudoku
描述Sudoku is a very simple task. A square table with 9 rows and 9 columns is divided to 9 smaller squares 3x3 as shown on the Figure. In some of the cells are written decimal digits from 1 to 9. The other cells are empty. The goal is to fill the empty cel原创 2020-05-16 21:09:48 · 387 阅读 · 0 评论 -
程序设计与算法(二)期末考试之05:单词序列
描述给出两个单词(开始单词和结束单词)以及一个词典。找出从开始单词转换到结束单词,所需要的最短转换序列。转换的规则如下:1、每次只能改变一个字母2、转换过程中出现的单词(除开始单词和结束单词)必须存在于词典中例如:开始单词为:hit结束单词为:cog词典为:[hot,dot,dog,lot,log,mot]那么一种可能的最短变换是: hit -> hot -> dot -> dog -> cog,所以返回的结果是序列的长度5;注意:1、如果原创 2020-05-16 21:06:32 · 460 阅读 · 0 评论 -
程序设计与算法(二)期末考试之04:宠物小精灵之收服
宠物小精灵是一部讲述小智和他的搭档皮卡丘一起冒险的故事。一天,小智和皮卡丘来到了小精灵狩猎场,里面有很多珍贵的野生宠物小精灵。小智也想收服其中的一些小精灵。然而,野生的小精灵并不那么容易被收服。对于每一个野生小精灵而言,小智可能需要使用很多个精灵球才能收服它,而在收服过程中,野生小精灵也会对皮卡丘造成一定的伤害(从而减少皮卡丘的体力)。当皮卡丘的体力小于等于0时,小智就必须结束狩猎(因为他需要给皮卡丘疗伤),而使得皮卡丘体力小于等于0的野生小精灵也不会被小智收服。当小智的精灵球用完时,狩猎也宣告结束原创 2020-05-16 21:05:20 · 447 阅读 · 0 评论 -
程序设计与算法(二)期末考试之03:开餐馆
描述北大信息学院的同学小明毕业之后打算创业开餐馆.现在共有n个地点可供选择。小明打算从中选择合适的位置开设一些餐馆。这n个地点排列在同一条直线上。我们用一个整数序列m1, m2, ... mn来表示他们的相对位置。由于地段关系,开餐馆的利润会有所不同。我们用pi表示在mi处开餐馆的利润。为了避免自己的餐馆的内部竞争,餐馆之间的距离必须大于k。请你帮助小明选择一个总利润最大的方案。输入标准的输入包含若干组测试数据。输入第一行是整数T (1 <= T <= 1000) ...原创 2020-05-16 21:03:57 · 552 阅读 · 0 评论 -
程序设计与算法(二)期末考试之02:马走日
描述马在中国象棋以日字形规则移动。请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点。输入第一行为整数T(T < 10),表示测试数据组数。每一组测试数据包含一行,为四个整数,分别为棋盘的大小以及初始位置坐标n,m,x,y。(0<=x<=n-1,0<=y<=m-1, m < 10, n < 10)输出每组测试数据包含一行,为一个整数,表示马能遍历棋盘的途原创 2020-05-16 21:02:02 · 1608 阅读 · 0 评论 -
程序设计与算法(二)期末考试之01:大盗阿福
总时间限制:1000ms内存限制:65536kB描述阿福是一名经验丰富的大盗。趁着月黑风高,阿福打算今晚洗劫一条街上的店铺。这条街上一共有 N 家店铺,每家店中都有一些现金。阿福事先调查得知,只有当他同时洗劫了两家相邻的店铺时,街上的报警系统才会启动,然后警察就会蜂拥而至。作为一向谨慎作案的大盗,阿福不愿意冒着被警察追捕的风险行窃。他想知道,在不惊动警察的情况下,他今晚最多可以得到多少现金?输入输入的第一行是一个整数 T (T <= 50) ,表示一共有 ...原创 2020-05-16 17:35:04 · 330 阅读 · 0 评论 -
04-树4 是否同一棵二叉搜索树 (25分)
给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。输入格式:输入包含若干组测试数据。每组数据的第1行给出两个正整数N(≤10)和L,分别是每个序列插入元素的个数和需要检查的序列个数。第2行给出N个以空格分隔的正整数,作为初始插入序列。最后L行,每行给出N个插入的元素,属于L...原创 2020-05-13 21:59:18 · 166 阅读 · 0 评论 -
04-树4 是否同一棵二叉搜索树 (25分)
给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。输入格式:输入包含若干组测试数据。每组数据的第1行给出两个正整数N(≤10)和L,分别是每个序列插入元素的个数和需要检查的序列个数。第2行给出N个以空格分隔的正整数,作为初始插入序列。最后L行,每行给出N个插入的元素,属于L个需要.原创 2020-05-09 22:27:21 · 171 阅读 · 0 评论 -
03-树3 Tree Traversals Again (25分)
An inorder binary tree traversal can be implemented in a non-recursive way with a stack. For example, suppose that when a 6-node binary tree (with the keys numbered from 1 to 6) is traversed, the stac...原创 2020-05-08 07:07:54 · 252 阅读 · 0 评论 -
03-树2 List Leaves (25分)
Given a tree, you are supposed to list all the leaves in the order of top down, and left to right.Input Specification:Each input file contains one test case. For each case, the first line gives a po...原创 2020-05-07 07:22:38 · 231 阅读 · 0 评论 -
03-树1 树的同构 (25分)
给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。图1图2现给定两棵树,请你判断它们是否是同构的。输入格式:输入给出2棵二叉树树的信息。对于每棵树,首先在一行中给出一个非负整数N(≤...原创 2020-05-06 00:44:35 · 821 阅读 · 0 评论 -
04-树7 二叉搜索树的操作集 (30分)
本题要求实现给定二叉搜索树的5种常用操作。函数接口定义:BinTree Insert( BinTree BST, ElementType X );BinTree Delete( BinTree BST, ElementType X );Position Find( BinTree BST, ElementType X );Position FindMin( BinTree BST ...原创 2020-05-05 16:46:51 · 254 阅读 · 0 评论 -
02-线性结构4 Pop Sequence (25分)
Given a stack which can keepMnumbers at most. PushNnumbers in the order of 1, 2, 3, ...,Nand pop randomly. You are supposed to tell if a given sequence of numbers is a possible pop sequence of t...原创 2020-05-04 17:08:01 · 443 阅读 · 0 评论 -
02-线性结构3 Reversing Linked List (25分)
Given a constantKand a singly linked listL, you are supposed to reverse the links of everyKelements onL. For example, givenLbeing 1→2→3→4→5→6, ifK=3, then you must output 3→2→1→6→5→4; ifK=4,...原创 2020-05-03 22:11:04 · 218 阅读 · 0 评论 -
02-线性结构2 一元多项式的乘法与加法运算 (20分)
设计函数分别求两个一元多项式的乘积与和。输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。输入样例:4 3 4 -5 2...原创 2020-04-27 07:04:23 · 279 阅读 · 0 评论 -
02-线性结构1 两个有序链表序列的合并 (15分)
本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。函数接口定义:List Merge( List L1, List L2 );其中List结构定义如下:typedef struct Node *PtrToNode;struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Ne...原创 2020-04-26 21:12:55 · 297 阅读 · 0 评论 -
01-复杂度2 Maximum Subsequence Sum (25分)
Given a sequence ofKintegers {N1,N2, ...,NK}. A continuous subsequence is defined to be {Ni,Ni+1, ...,Nj} where1≤i≤j≤K. The Maximum Subsequence is the continuous subsequen...原创 2020-04-21 20:36:21 · 195 阅读 · 0 评论 -
什么是算法之二分查找
本题要求实现二分查找算法。函数接口定义:Position BinarySearch( List L, ElementType X );其中List结构定义如下:typedef int Position;typedef struct LNode *List;struct LNode { ElementType Data[MAXSIZE]; Position ...原创 2020-04-19 23:01:11 · 391 阅读 · 0 评论 -
什么是算法之最大子列和问题
题外话:常见的几种时间复杂度:01-复杂度1最大子列和问题(20分)给定K个整数组成的序列{N1,N2, ...,NK},“连续子列”被定义为{Ni,Ni+1, ...,Nj},其中1≤i≤j≤K。“最大子列和”则被定义为所有连续子列元素的和中最大者。例如给定序列{ -2, 11, -4, 13, -5, -2 },其连...原创 2020-04-15 19:59:52 · 979 阅读 · 0 评论 -
贪心算法之Stall Reservations
DescriptionOh those picky N (1 <= N <= 50,000) cows! They are so picky that each one will only be milked over some precise time interval A..B (1 <= A <= B <= 1,000,000), which include...原创 2020-04-12 15:15:26 · 404 阅读 · 0 评论 -
贪心算法之电影节
描述大学生电影节在北大举办! 这天,在北大各地放了多部电影,给定每部电影的放映时间区间,区间重叠的电影不可能同时看(端点可以重合),问李雷最多可以看多少部电影。输入多组数据。每组数据开头是n(n<=100),表示共n场电影。接下来n行,每行两个整数(0到1000之间),表示一场电影的放映区间n=0则数据结束输出对每组数据输出最多能看几部电影样例输入83 4...原创 2020-04-12 09:59:13 · 343 阅读 · 0 评论 -
贪心算法之圣诞老人的礼物-Santa Clau’s Gifts
圣诞节来临了,在城市A中圣诞老人准备分发糖果,现在有多箱不同的糖果,每箱糖果有自己的价值和重量,每箱糖果都可以拆分成任意散装组合带走。圣诞老人的驯鹿最多只能承受一定重量的糖果,请问圣诞老人最多能带走多大价值的糖果。输入第一行由两个部分组成,分别为糖果箱数正整数n(1 <= n <= 100),驯鹿能承受的最大重量正整数w(0 < w < 10000),两个数用空格隔...原创 2020-04-12 08:46:32 · 554 阅读 · 0 评论 -
广度优先搜索之抓住那头牛
农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点N(0<=N<=100000),牛位于点K(0<=K<=100000)。农夫有两种移动方式:1、从X移动到X-1或X+1,每次移动花费一分钟2、从X移动到2*X,每次移动花费一分钟假设牛没有意识到农夫的行动,站在原地不动。农夫最少要花多少时间才能抓住牛?输入两个整数,N和K...原创 2020-04-11 21:03:11 · 303 阅读 · 0 评论 -
深度优先搜索之生日蛋糕
描述7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体。设从下往上数第i(1 <= i <= M)层蛋糕是半径为Ri, 高度为Hi的圆柱。当i < M时,要求Ri > Ri+1且Hi > Hi+1。由于要在蛋糕上抹奶油,为尽可能节约经费,我们希望蛋糕外表面(最下一层的下底面除外)的面积Q最小。令Q = Sπ...原创 2020-04-11 17:49:48 · 678 阅读 · 0 评论 -
深度搜索之路径选择
#include<iostream>#include<vector>#include<cstring>using namespace std;int K,N,R;struct Road{ int d,L,t;};vector< vector< Road> >G(110);int minLen=1<<30;...原创 2020-04-11 08:02:34 · 224 阅读 · 0 评论 -
深度优先搜索之棋盘问题
003:棋盘问题查看 提交 统计 提问总时间限制:1000ms内存限制:65536kB描述在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。输入输入含有多组测试数据。每组数据的第一行是两个正整数,n...原创 2020-04-09 23:03:17 · 238 阅读 · 0 评论 -
深度优先搜索之002:A Knights Journey
#include<iostream>#include<algorithm>#include<cstring>using namespace std;bool success;int p=0,q=0;bool visited[100][100];const int MAX_N=27;const int dx[8]={-1,1,-2,2,-2,2...原创 2020-04-09 22:27:51 · 333 阅读 · 0 评论 -
深度搜索之红与黑
#include<iostream>#include<cstdio>#include<algorithm>using namespace std; char rooms[100][100]; int color[100][100];int W=0,H=0;int roomNum=0; void Dfs(int i,int k){ if(...原创 2020-04-07 22:52:49 · 232 阅读 · 0 评论 -
深度优先搜索之踩方格
#include<iostream>#include<algorithm>using namespace std;int visited[100][100];int ways(int i,int j,int n){ if(n==0) { return 1; } visited[i][j]=1; int num=0;; if(!visited[...原创 2020-04-07 17:11:02 · 294 阅读 · 0 评论 -
深度优先搜索之城堡问题
#include<iostream>#include<algorithm>using namespace std;int rooms[100][100]; int color[100][100];int R=0,C=0;int roomNum=0,maxRoomArea=0;int roomArea;void Dfs(int i,int k){ i...原创 2020-04-07 16:00:36 · 281 阅读 · 0 评论 -
动态规划之分蛋糕
#include<iostream>#include<algorithm>using namespace std;int dp[100][100][100]={0}; int main(){ int W=0,H=0,M=0; while((cin>>W>>H>>M)&&(W||H||M)) { me...原创 2020-04-07 12:35:51 · 544 阅读 · 0 评论 -
动态规划之背包问题
002:Charm Bracelet查看 提交 统计 提问总时间限制:1000ms内存限制:65536kB描述Bessie has gone to the mall's jewelry store and spies a charm bracelet. Of course, she'd like to fill it with the best charm...原创 2020-04-06 23:50:19 · 156 阅读 · 0 评论 -
动态规划之复杂的整数划分问题
001:复杂的整数划分问题查看 提交 统计 提问总时间限制:200ms内存限制:65536kB描述将正整数n表示成一系列正整数之和,n=n1+n2+…+nk,其中n1>=n2>=…>=nk>=1,k>=1。正整数n的这种表示称为正整数n的划分。输入标准的输入包含若干组测试数据。每组测试数据是一行输入数据,...原创 2020-04-06 22:32:59 · 332 阅读 · 0 评论 -
动态规划之Zipper
上一篇那个时间复杂度是2的n次方。提交肯定超时。下面这个才是真正的动态规划的思路:#include<iostream>#include<string>#include<vector>using namespace std;int main(){ int N=0; cin>>N; for(int m=0;m<N;m++)...原创 2020-04-06 14:17:05 · 304 阅读 · 0 评论 -
动态规划之Zipper
002:Zipper总时间限制: 1000ms 内存限制: 65536kB描述Given three strings, you are to determine whether the third string can be formed by combining the characters in the first two strings. The first two strings ...原创 2020-04-06 00:27:32 · 425 阅读 · 0 评论 -
动态规划之拦截导弹
001:拦截导弹查看 提交 统计 提问总时间限制:1000ms内存限制:65536kB描述某国为了防御敌国的导弹袭击,开发出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭,并观测到导弹依次飞来的高度,请计算这套系统最多能拦截多少导弹。拦截来袭导...原创 2020-04-05 22:41:42 · 248 阅读 · 0 评论