School OJ
文章平均质量分 52
该专栏主要包含来自学校OJ的题目。
XiaoZheng2003
博客暂时弃更
展开
-
无所不在的宗教
原题题目描述世界上许多不同的宗教,你很难把它们全都记住。你有兴趣找出学生们到底信仰多少种不同的宗教。已知学校共有N名学生(0 < N ≤ 50000),编号从1..N。你去询问每一个学生的宗教信仰是不可行的,而且,很多学生不愿意透露自己的信仰。一种避免这个问题的方法是询问M对学生(0 ≤ M ≤ N(N-1)/2)是否信仰同一种宗教。假定每个学生只信仰一种宗教,而且每个学生都要信仰一种宗教。输入输入原创 2017-02-25 09:34:02 · 935 阅读 · 0 评论 -
NOIP2016年普及组模拟考试(9.3) 1.笨笨玩游戏
一、原题1.笨笨玩游戏(game.cpp)【题目描述】一天,笨笨和妈妈玩游戏,妈妈 给笨笨出N个正整数,让笨笨把这N个正整数连接生成一个“大”的整数,每个正整数只使用一次,让笨笨告诉妈妈这样生成的大整数的最大值。例如,给出4个整数:123, 124, 56, 90,可以连接生成的大整数有:1231245690, 1241235690, 5612312490, 901231245原创 2016-09-06 13:50:51 · 766 阅读 · 0 评论 -
NOIP2016年普及组模拟考试(9.3) 2.笨笨的西瓜种植
一、原题2.笨笨的西瓜种植(watermelon.cpp) 【题目描述】笨笨种了一块西瓜地,但这块西瓜地的种植范围是一条直线的…… 笨笨在一番研究过后,得出了m个结论,这m个结论可以使他收获的西瓜最多。 笨笨的结论是这样的: 从西瓜地B处到E处至少要种植T个西瓜,这个范围的收获就可以最大化。 笨笨不想那么辛苦,所以他想种植的西瓜尽量少,而又满足每一个所得的结论。【输入】第一行两原创 2016-09-06 13:27:10 · 2430 阅读 · 0 评论 -
开车
题目描述小麦学了段时间车了,但是他还是不会在一条公路上180度调头。于是他只能在那种没有“死胡同”的路上开。现在给出一个小镇的地图,地图用R行C列的字符来表示,其中,只有建筑物和公路。建筑物用X表示,公路用“.”表示。小麦可以开着车从一个“.”到达上、下、左、右任一个相邻的“.”,保证所有的“.”都是连通的。小麦能否在这个小镇开车?即这个小镇有没有“死胡同”。输入第一行包含两个整数R,C(3<=R,原创 2017-03-21 13:44:03 · 464 阅读 · 0 评论 -
最长上升子序列
原题题目描述给定一个整数序列A1A2A3….An。求它的一个递增子序列,使子序列的元素个数尽量多,元素不一定要求连续。输入第1行:1个整数n(1第2行-n+1行:每行1个整数x(-1000输出第1行:1个整数k,表示最长上升子序列的长度。 第2行:k个用单个空格分开的整数,表示找到了最长上升子序列。如果有多个长度等于k的子序列,则输出最靠前的1个。样原创 2016-12-29 13:50:27 · 859 阅读 · 0 评论 -
[NOI2001]食物链
原题题目描述动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。 现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。 有人用两种说法对这N个动物所构成的食物链关系进行描述: 第一种说法是“1 X Y”,表示X和Y是同类。 第二种说法是“2 X Y”,表示X吃Y。 此人对N个动物,用上述两种说法,一句接一句地原创 2017-02-24 13:47:09 · 1295 阅读 · 0 评论 -
线段树基础知识(续)
经过上次线段树的基本讲解,这次我们就专门来看几道例题。---------------------------------------------------------------------------------------------------------问题 D(1911): 【高级数据结构】线段的条数题目描述无限长的X轴上从下向上依次叠放一定长度某种原创 2017-03-23 14:04:40 · 725 阅读 · 0 评论 -
线段树基础知识
线段树的概念在一类问题中,我们需要经常处理可以映射在一个坐标轴上的一些固定线段,例如说映射在OX轴上的线段。由于线段是可以互相覆盖的,有时需要动态地取线段的并,例如取得并区间的总长度,或者并区间的个数等等。一个线段是对应于一个区间的,因此线段树也可以叫做区间树。线段树的构造思想线段树是一棵二叉树,树中的每一个结点表示了一个区间[a,b]。每一个叶子节点表示了一个单位区间。根节点表示的是“整体”原创 2017-03-11 10:17:15 · 1356 阅读 · 0 评论 -
以先序字符串方式建立二叉树
原题题目描述输入一个二叉树的先序串,输出其后序遍历结果。如果结点的子树为空,先序串的对应位置为空格符。输入第1行:先序串(结点数≤26,以单个大写字母表示)输出第1行:后序序列样例输入AB C D 样例输出CBDA注:空格原创 2017-01-20 17:28:21 · 6612 阅读 · 0 评论 -
普通有序树的遍历
原题题目描述输入一棵普通有序树,输出该树的先根次序和后根次序。输入第1行:顶点个数n(1≤n≤200)以下含n行,其中第i行(1≤i≤n)的元素依次为结点i的数据值ai。以后各元素为结点i的儿子序列,以0结束。若ai后仅含一个0,则说明结点i为叶子。输出第1行:先根序第2行:后根序样例输入18 r 2 3 4 0 a 5 6 0 b 7 0 c 8 9 10 0 w 0 x 11 12原创 2017-01-20 16:43:39 · 4073 阅读 · 0 评论 -
二叉树的计数
原题输入第1行:二叉树的前序遍历顺序 第2行:后序遍历顺序输出第1行:1个整数,表示所有可能的二叉树的数量样例输入1ABC CBA样例输出14样例输入2ABCEDFGH ECDBHGFA样例输出24分析这道题也许你一拿到会觉得很难,甚至动起了爆搜的念头,但是这道题主要是弄清思路,其他就很简单了。由于样例一的数据太简单了,所以我们分析样例二的数据。左子树?右子树?怎么找?在先序中,左子树的根是原创 2017-01-20 17:00:39 · 1667 阅读 · 0 评论 -
犯罪团伙
一、原题犯罪团伙(gang.cpp)题目描述警察抓到了n个罪犯,警察根据经验知道他们属于不同的犯罪团伙,却不能判断有多少个团伙,但通过警察的审讯,知道其中的一些罪犯之间相互认识,已知同一犯罪团伙的成员之间直接或间接认识。 有可能一个犯罪团伙只有一个人。请你根据已知罪犯之间的关系,确定犯罪团伙的数量。已知罪犯的编号从1至n。输入第1行:n(以下m行:每行两个数:i原创 2016-10-14 13:54:52 · 2238 阅读 · 0 评论 -
【组合数学】八(容斥原理)
先来看一下题目。题目描述八是个很有趣的数字啊。八=发,八八=爸爸,88=拜拜。当然最有趣的还是8用二进制表示是1000。怎么样,有趣吧。当然题目和这些都没有关系。 某个人很无聊,他想找出[a,b]中能被8整除却不能被其他一些数整除的数。输入第一行一个数n,代表不能被整除的数的个数。 第二行n个数,中间用空格隔开。 第三行两个数a,b,中间一个空格。 a < =b < =1000000000输出一个整原创 2017-07-09 09:40:23 · 736 阅读 · 0 评论 -
【找规律】【一套NOIP膜你赛】膜拜azui
问题描述一天,小 A 给了 J·G 一道水题,J·G 一眼秒了,现在 J·G 想考考你们: 小 A 有 N 个灯,排成了一列,现在小 A 给出来一个叫做 azui 的奇葩操作,我们把开着的灯看作数字 1,把关着的灯看作数字 0,定义 0 azui 0 = 1,0 azui 1 = 0,1 azui 1 = 1, 1 azui 0 = 0。现在小 A 有 N 个问题 azui(l,r),表示询问从左原创 2017-07-25 16:39:31 · 991 阅读 · 0 评论 -
【贪心】【枚举】【重庆市NOIP模拟赛】旅行
题目描述Mr_H 旗下的 n 个 OIer 坐船外出旅行! 但是他们只有一艘船,虽然船能装下全部的 Oier,但太拥挤将会影响众 OIer 的心情,所以 Mr_H 决定选择一部分 Oier 去。我们假设,每个人单独坐船的快乐程度是 Ci,而船上每多一个人,他的快乐程度会减去 Di。 现在你的任务是帮助 Mr_H 计算,选择那些人,才能使船上所有人的快乐程度之和达到最大。输入第1行是一个整数 n,原创 2017-07-24 17:00:36 · 801 阅读 · 0 评论 -
NOIP2016年普及组模拟考试(9.3) 3.笨笨连线游戏
一、原题3.笨笨连线游戏(route.cpp)【题目描述】一天,妈妈在黑板上画了一个大大的圆,然后又在圆弧上标上1,2,3,...,,2N个数。然后让笨笨任意选取一对数(两个不同的数)上连一条直线。然后再任意选取一对数,再边一条直线,但这条直线不能和任何别的直线相交。每个数都要恰好与另一个数连一条直线。笨笨费了好大的劲才找出一种连线方案。妈妈在旁边问笨笨:给出N,请问不同的连线原创 2016-09-07 13:31:16 · 851 阅读 · 0 评论 -
NOIP2016年普及组模拟考试(9.3) 4.部落卫队
四、部落卫队(tribe.cpp)【题目描述】原始部落byteland中的居民们为了争夺有限的资源,经常发生冲突。几乎每个居民都有他的仇敌。部落酋长为了组织一支保卫部落的队伍,希望从部落的居民中选出最多的居民入伍,并保证队伍中任何2 个人都不是仇敌。 给定byteland部落中居民间的仇敌关系,编程计算组成部落卫队的最佳方案。【输入】第1行有2个正整数n和m,表示byteland部原创 2016-09-08 13:47:39 · 2713 阅读 · 0 评论 -
[POJ2249]计算组合数
原题题目描述给定正整数n, k,计算C(n, k)。答案保证在2^31以内。输入多组数据,每组数据仅一行,即2个整数n和k (n>=1) and k (0以2个0结束输入输出对每个数据,输出对应的答案 样例输入4 2 10 5 49 6 0 0样例输出6 252 13983816分析首先,要知道什么是组合数,点击这里。原创 2017-02-10 17:04:02 · 1105 阅读 · 0 评论 -
[POJ2407]欧拉函数的值
原题题目描述给定整数n,求n的欧拉函数的值输入多组数据 每行一个整数,表示n( 1 <= n <= 1,000,000,000) 一个0,表示输入结束输出每行输入一个整数,表示对应的n的欧拉函数值样例输入7 12 0样例输出6 4分析要解决这道题,我们先来了解什么是欧拉函数和欧拉定理。欧拉函数ϕ\phi:不超过n的且与n互质的正整数的个数。 如果n为素数p,则ϕ(p)=p−1\phi(p原创 2017-02-07 16:08:19 · 726 阅读 · 0 评论 -
以括号形式输出二叉树
原题题目描述输入一个二叉树的先序串,输出以括号形式表示的而叉树。如果结点的子树为空,先序串的对应位置为空格符。输入第1行:先序串 (结点数≤26,以单个大写字母表示)输出第1行:二叉树的括号形式样例输入AB#C##D##样例输出A(B(#,C(#,#)),D(#,#))注:空格用#表示分析 样例分析图这道题一看就需要用递归来做,可是千万不用被题目中疑似的数据范围坑了。题目中是说的“结点数≤26”,原创 2017-01-20 14:29:48 · 5504 阅读 · 0 评论 -
“破锣摇滚”乐队
原题题目描述你刚刚继承了流行的“破锣摇滚”乐队录制的尚未发表的N(1 <= N <= 20)首歌的版权。你打算从中精选一些歌曲,发行M(1 <= M <= 20)张CD。每一张CD最多可以容纳T(1 <= T <= 20)分钟的音乐,一首歌不能分装在两张CD中。 不巧你是一位古典音乐迷,不懂如何判定这些歌的艺术价值。于是你决定根据以下标准进行选择: 歌曲必须按照创作的时间顺序在CD盘上出现。选中的歌原创 2016-12-14 14:10:31 · 1182 阅读 · 1 评论 -
选举
一、原题题目描述某地进行选举,一共要选出14 位议员。有若干个党派,一张选票只能投给一个党派。现在有X张选票,已知每个党派获得的选票。有一些党派得到的票数太少,以至于可以忽略不计。现在的选举规则是这样的:首先只考虑获得不少于所有选票数的5%的党派,将这些党派得到的选票数除以1~14 的每个数,这样每个党派就将得到14 个有理数。第一个议员来自于最大的那个数代表的党派,第二个议员来自于第原创 2016-11-14 13:16:19 · 570 阅读 · 0 评论 -
冬天
一、原题题目描述在远古时期,龙统治着大地,那时的气候非常暖和,气温从来没有低于0摄氏度。后来,龙灭绝了,温暖的气候也消失了。 现在的气候变得反复无常,已经没有了春夏秋冬轮流交替的规律了。冬天随时可能到来。我们规定如果某天的气温低于0度,就可以称它是冬天里一天。如果有连续T天,气温低于0度,则称这个冬天的周期是T。 人们总是谈论冬天就要来了,因为这容易引起不必要的恐慌。所以,政府规定,只能在一个周原创 2016-11-11 13:02:48 · 494 阅读 · 0 评论 -
火柴棒等式
一、原题题目描述给你n根火柴棍,你可以拼出多少个形如“A+B=C”的等式?等式中的A、B、C是用火柴棍拼出的整数(若该数非零,则最高位不能是0)。用火柴棍拼数字0-9的拼法如图所示:注意: 1. 加号与等号各自需要两根火柴棍 2. 如果A≠B,则A+B=C与B+A=C视为不同的等式(A、B、C>=0) 3. n根火柴棍必须全部用上。输入一行,一个整数n(n≤24)。输出一行,表示能拼成的原创 2016-11-08 14:08:30 · 3769 阅读 · 0 评论 -
排座椅
一、原题排座椅(seat.cpp)时间限制: 1 Sec 内存限制: 64 MB题目描述上课的时候总有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情。不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同学上课时会交头接耳。同学们在教室中坐成了M行N列,坐在第i行第j列的同学的位置是(i,j),为了方便同学们进出,在教室中设置了K条横向的通道,L条纵原创 2016-11-01 13:32:37 · 2910 阅读 · 0 评论 -
亲戚(附分析图)
一、原题亲戚(relation.cpp)时间限制: 1 Sec 内存限制: 64 MB题目描述若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易。 现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。 我们规定:如果x和y是亲戚,y和z是亲戚,那么x和z也是亲戚;如果x,y是亲戚,那么x的亲戚都是y的亲戚,y的亲戚也都是x的亲戚。输入第一行:三个整数n,m,p,(n≤5000,m原创 2016-10-25 17:16:38 · 2847 阅读 · 1 评论 -
最短路径问题
一、原题最短路径问题(floyed.cpp dijkstra.cpp)题目描述平面上有n个点(n<=100),每个点的坐标均在-10000~10000之间。其中的一些点之间有连线。若有连线,则表示可从一个点到达另一个点,即两点间有通路,通路的距离为两点间的直线距离。现在的任务是找出从一点到另一点之间的最短路径。输入第1行:1个整数n 第2..n+1行:每行2个整数x和y,描述了一个点的坐标 第n原创 2016-10-18 13:40:13 · 1554 阅读 · 0 评论 -
建立学生信息链表
一、原题建立学生信息链表(student.cpp)题目描述给出n个学生的姓名和年级,请建立一个学生信息的链表。并将链表中各元素依次输出。输入第一行:一个整数n 接下来n行,每行一个学生的名字和年龄。输出n行,每行包括学生的姓名和年龄。样例输入3 wuzhenghao 18 liudeyu 20 liuying 19样例输出wuzhenghao 18 liudeyu 20 liuying原创 2016-10-10 13:48:28 · 9798 阅读 · 1 评论 -
根据两种遍历顺序确定树结构
一、原题根据两种遍历顺序确定树结构(build-tree)输入第1行:二叉树的前序遍历顺序 第2行:中序遍历顺序输出二叉树的后序遍历顺序样例输入ABCDEFGH CBEDAGHF样例输出CEDBHGFA二、分析三、源代码#include#include#includeusing namespace std;st原创 2016-10-02 15:53:32 · 4601 阅读 · 1 评论 -
二叉树的建立与遍历
一、原题二叉树的建立与遍历(binary-tree)题目描述给出一棵二叉树,分别输出先序、中序、后序遍历结果。输入第1行:结点数n(1以下若干行,每行3个整数,分别表示父结点、左孩子、右孩子。若没有孩子,对应的整数为0.输出第1行:树根 第2行:先序遍历结果,数字间用1个空格分开。 第3行:中序遍历结果,数字间用1个空格分开。 第4行:后序遍历结原创 2016-10-02 11:05:18 · 1539 阅读 · 0 评论 -
NOIP2016年普及组模拟考试(9.3) 5.母亲的牛奶
一、原题五、母亲的牛奶(cow.cpp)【题目描述】农民约翰有三个容量分别是A,B,C升的桶,A、B、C分别是三个从1到20的整数。 最初,A和B桶都是空的,而C桶是装满牛奶的。 有时,约翰把牛奶从一个桶倒到另一个桶中,直到被灌桶装满或原桶空了。由于节约,牛奶不会有丢失。 写一个程序去帮助约翰找出当A桶是空的时候,C桶中牛奶所剩量的所有可能性。【输入】第1行:3个整数A,B和C。【输出】第1行原创 2016-09-22 12:54:49 · 1924 阅读 · 0 评论 -
【树上倍增】【USACO MAR11银组】聚会地点
题目描述Bessie和Jon每天都要去他们所居住的小镇的某些地方游玩。有趣的是,他们居住的小镇是一个树的结构,也就意味是,小镇的每个地方之间有且仅有一条通路(不是指一条边,而是指一条通路),每个地方都会有且仅有一个父亲地点(除了小镇的城镇中心,它没有祖先)。 小镇共有N个地点(1 <= N <= 1,000),编号1~N。点1是镇的中心。 Bessie和Jon决定每天都要在游玩后见面,他们见面的原创 2017-08-12 11:49:18 · 836 阅读 · 0 评论