
NOI
文章平均质量分 54
http://noi.openjudge.cn/
xcdq
enjoy
展开
-
2152:Pots
描述You are given two pots, having the volume of A and B liters respectively. The following operations can be performed:FILL(i) fill the pot i (1 ≤ i ≤ 2) from the tap;DROP(i) empty the pot i to the drain;POUR(i,j) pour from pot i to pot j原创 2021-08-07 12:19:33 · 402 阅读 · 0 评论 -
917:Knight Moves
描述BackgroundMr Somurolov, fabulous chess-gamer indeed, asserts that no one else but him can move knights from one position to another so fast. Can you beat him?The ProblemYour task is to write a program to calculate the minimum number of moves needed f原创 2021-06-08 20:18:32 · 437 阅读 · 0 评论 -
4980:拯救行动
描述公主被恶人抓走,被关押在牢房的某个地方。牢房用N*M (N, M <= 200)的矩阵来表示。矩阵中的每项可以代表道路(@)、墙壁(#)、和守卫(x)。英勇的骑士(r)决定孤身一人去拯救公主(a)。我们假设拯救成功的表示是“骑士到达了公主所在的位置”。由于在通往公主所在位置的道路中可能遇到守卫,骑士一旦遇到守卫,必须杀死守卫才能继续前进。现假设骑士可以向上、下、左、右四个方向移动,每移动一个位置需要1个单位时间,杀死一个守卫需要花费额外的1个单位时间。同时假设骑士足够强壮,有能力杀死所有的守原创 2021-06-07 09:04:17 · 813 阅读 · 0 评论 -
6266:取石子游戏
描述有两堆石子,两个人轮流去取.每次取的时候,只能从较多的那堆石子里取,并且取的数目必须是较少的那堆石子数目的整数倍.最后谁能够把一堆石子取空谁就算赢.比如初始的时候两堆石子的数目是25和7最后选手1(先取的)获胜,在取的过程中选手2都只有唯一的一种取法。给定初始时石子的数目,如果两个人都采取最优策略,请问先手能否获胜。输入输入包含多数数据。每组数据一行,包含两个正整数a和b,表示初始时石子的数目。输入以两个0表示结束。输出如果先手胜,输出"win",否则输出"lose"样例输入34原创 2021-06-06 19:07:10 · 765 阅读 · 0 评论 -
7218:献给阿尔吉侬的花束
描述阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫。今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终点,就在终点放了一块阿尔吉侬最喜欢的奶酪。现在研究员们想知道,如果阿尔吉侬足够聪明,它最少需要多少时间就能吃到奶酪。迷宫用一个R×C的字符矩阵来表示。字符S表示阿尔吉侬所在的位置,字符E表示奶酪所在的位置,字符#表示墙壁,字符.表示可以通行。阿尔吉侬在1个单位时间内可以从当前的位置走到它上下左右四个方向上的任意一个位置,但不能走出地图边界。输入第一行是一个正整数T(1原创 2021-06-06 16:02:14 · 310 阅读 · 0 评论 -
323:棋盘问题
描述在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。输入输入含有多组测试数据。每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <= n当为-1 -1时表示输入结束。随后的n行描述了棋盘的形状:每行有n个字符,其中 # 表示棋盘区域, . 表示空白区原创 2021-06-03 23:15:05 · 373 阅读 · 0 评论 -
6264:走出迷宫
描述当你站在一个迷宫里的时候,往往会被错综复杂的道路弄得失去方向感,如果你能得到迷宫地图,事情就会变得非常简单。假设你已经得到了一个n*m的迷宫的图纸,请你找出从起点到出口的最短路。输入第一行是两个整数n和m(1<=n,m<=100),表示迷宫的行数和列数。接下来n行,每行一个长为m的字符串,表示整个迷宫的布局。字符’.‘表示空地,’#'表示墙,'S’表示起点,'T’表示出口。输出输出从起点到出口最少需要走的步数。样例输入3 3S#T.#.…样例输出6链接 http原创 2021-06-03 11:45:19 · 500 阅读 · 0 评论 -
2727:仙岛求药
描述少年李逍遥的婶婶病了,王小虎介绍他去一趟仙灵岛,向仙女姐姐要仙丹救婶婶。叛逆但孝顺的李逍遥闯进了仙灵岛,克服了千险万难来到岛的中心,发现仙药摆在了迷阵的深处。迷阵由M×N个方格组成,有的方格内有可以瞬秒李逍遥的怪物,而有的方格内则是安全。现在李逍遥想尽快找到仙药,显然他应避开有怪物的方格,并经过最少的方格,而且那里会有神秘人物等待着他。现在要求你来帮助他实现这个目标。下图 显示了一个迷阵的样例及李逍遥找到仙药的路线.输入输入有多组测试数据. 每组测试数据以两个非零整数 M 和 N 开始,两者均原创 2021-06-03 11:30:13 · 265 阅读 · 0 评论 -
7084:迷宫问题
描述定义一个二维数组:int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。输入一个5 × 5的二维数组,表示一个迷宫。数据保证有唯一解。输出左上角到右下角的最短路径,格式如样例所示。样例输入0 1 0 0 00 1原创 2021-06-02 23:17:20 · 1531 阅读 · 0 评论 -
8465:马走日
描述马在中国象棋以日字形规则移动。请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点。输入第一行为整数T(T < 10),表示测试数据组数。每一组测试数据包含一行,为四个整数,分别为棋盘的大小以及初始位置坐标n,m,x,y。(0<=x<=n-1,0<=y<=m-1, m < 10, n < 10)输出每组测试数据包含一行,为一个整数,表示马能遍历棋盘的途径总数,0为原创 2021-06-02 11:41:04 · 343 阅读 · 0 评论 -
2971:抓住那头牛
描述农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点N(0<=N<=100000),牛位于点K(0<=K<=100000)。农夫有两种移动方式:1、从X移动到X-1或X+1,每次移动花费一分钟2、从X移动到2*X,每次移动花费一分钟假设牛没有意识到农夫的行动,站在原地不动。农夫最少要花多少时间才能抓住牛?输入两个整数,N和K输出一个整数,农夫抓到牛所要花费的最小分钟数样例输入5 17样例输出4链接 http://noi.openjudg原创 2021-06-02 11:08:54 · 309 阅读 · 0 评论 -
2753:走迷宫
描述一个迷宫由R行C列格子组成,有的格子里有障碍物,不能走;有的格子是空地,可以走。给定一个迷宫,求从左上角走到右下角最少需要走多少步(数据保证一定能走到)。只能在水平方向或垂直方向走,不能斜着走。输入第一行是两个整数,R和C,代表迷宫的长和宽。( 1<= R,C <= 40)接下来是R行,每行C个字符,代表整个迷宫。空地格子用’.‘表示,有障碍物的格子用’#‘表示。迷宫左上角和右下角都是’.’。输出输出从左上角走到右下角至少要经过多少步(即至少要经过多少个空地格子)。计算步数原创 2021-06-01 17:22:35 · 1527 阅读 · 0 评论 -
1818:红与黑
描述有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。输入包括多个数据集合。每个数据集合的第一行是两个整数W和H,分别表示x方向和y方向瓷砖的数量。W和H都不超过20。在接下来的H行中,每行包括W个字符。每个字符表示一块瓷砖的颜色,规则如下1)‘.’:黑色的瓷砖;2)‘#’:白色的瓷砖;3)‘@’:黑色的瓷砖,并且你站在这块瓷砖上。该字符在每个数据集合中唯一出现一次。当在一行中读入原创 2021-05-23 21:24:15 · 267 阅读 · 0 评论 -
1792:迷宫
描述一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由n * n的格点组成,每个格点只有2种状态,.和#,前者表示可以通行后者表示不能通行。同时当Extense处在某个格点时,他只能移动到东南西北(或者说上下左右)四个方向之一的相邻格点上,Extense想要从点A走到点B,问在不走出迷宫的情况下能不能办到。如果起点或者终点有一个不能通行(为#),则看成无法办到。输入第1行是测试数据的组数k,后面跟着k组输入。每组测试数据的第1行是一个正整数n (1 <= n <=原创 2021-05-21 11:31:26 · 220 阅读 · 0 评论 -
1756:八皇后
描述会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将8个皇后放在棋盘上(有8 * 8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题。对于某个满足要求的8皇后的摆放方法,定义一个皇后串a与之对应,即a=b1b2…b8,其中bi为相应摆法中第i行皇后所处的列数。已经知道8皇后问题一共有92组解(即92个不同的皇后串)。给出一个数b,要求输出第b个串。串的比较是这样的:皇后串x置于皇后串y之前,当且仅当将x视为整数时比y小。输入第1行是测试数据的组数n,后面跟着n原创 2021-05-07 10:41:16 · 385 阅读 · 0 评论 -
1700:八皇后问题
描述在国际象棋棋盘上放置八个皇后,要求每两个皇后之间不能直接吃掉对方。输入无输入。输出按给定顺序和格式输出所有八皇后问题的解(见Sample Output)。样例输入样例输出No. 11 0 0 0 0 0 0 00 0 0 0 0 0 1 00 0 0 0 1 0 0 00 0 0 0 0 0 0 10 1 0 0 0 0 0 00 0 0 1 0 0 0 00 0 0 0 0 1 0 00 0 1 0 0 0 0 0No. 21 0 0 0 0 0 0 00 0 0原创 2021-05-06 19:54:08 · 672 阅读 · 0 评论 -
166:The Castle
描述 1 2 3 4 5 6 7 ############################# 1 # | # | # | | # #####---#####---#---#####---# 2 # # | # # # # # #---#####---#####---#####---# 3 # | | # # # # # #---#########---###原创 2021-05-06 18:35:15 · 196 阅读 · 0 评论 -
156:LETTERS
描述A single-player game is played on a rectangular board divided in R rows and C columns. There is a single uppercase letter (A-Z) written in every position in the board.Before the begging of the game there is a figure in the upper-left corner of the boar原创 2021-05-04 13:17:06 · 283 阅读 · 0 评论 -
1490:A Knight‘s Journey
描述BackgroundThe knight is getting bored of seeing the same black and white squares again and again and has decided to make a journeyaround the world. Whenever a knight moves, it is two squares in one direction and one square perpendicular to this. The w原创 2021-05-04 12:34:50 · 216 阅读 · 0 评论 -
1388:Lake Counting
描述Due to recent rains, water has pooled in various places in Farmer John’s field, which is represented by a rectangle of N x M (1 <= N <= 100; 1 <= M <= 100) squares. Each square contains either water (‘W’) or dry land (’.’). Farmer John would原创 2021-04-17 19:53:11 · 209 阅读 · 0 评论 -
131:Channel Allocation
描述When a radio station is broadcasting over a very large area, repeaters are used to retransmit the signal so that every receiver has a strong signal. However, the channels used by each repeater must be carefully chosen so that nearby repeaters do not int原创 2021-04-15 16:06:34 · 416 阅读 · 0 评论 -
1253:Dungeon Master
描述You are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is composed of unit cubes which may or may not be filled with rock. It takes one minute to move one unit north, south, east, west, up or down. You cannot move diagonally原创 2021-04-14 15:05:18 · 190 阅读 · 0 评论 -
1159:Maze
描述Acm, a treasure-explorer, is exploring again. This time he is in a special maze, in which there are some doors (at most 5 doors, represented by ‘A’, ‘B’, ‘C’, ‘D’, ‘E’ respectively). In order to find the treasure, Acm may need to open doors. However, to原创 2021-04-13 13:46:51 · 269 阅读 · 0 评论 -
8463:Stupid cat & Doge ⑤
描述动物园的规划和城市规划一样是个令人头疼的大问题。不幸的是,动物园规划师R.V.L.先生高估了小动物们的智商,他设计了一个极其复杂的动物园道路规划方案,如下图所示:动物园按照下述方法进行扩建:当动物园规模扩大之后,R.V.L.先生设计的解决方案是把与原来动物园结构一样的区域复制或旋转90度之后按照图中的方式建设在原来的动物园周围(即将原来的动物园复制一遍放在原动物园上方,将顺时针旋转90度后的动物园放在原动物园的左上方,将逆时针旋转90度后的动物园放在原动物园的左方),再用道路将四部分的首尾连接起来原创 2021-04-12 16:56:27 · 305 阅读 · 0 评论 -
7909:统计数字
描述某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*109)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。输入包含n+1行:第一行是整数n,表示自然数的个数;第2~n+1每行一个自然数。40%的数据满足:1<=n<=1000;80%的数据满足:1<=n<=50000;100%的数据满足:1<=n<=200000,每个数均不超过1500 000 000(1.5*1原创 2021-04-06 22:33:53 · 1633 阅读 · 0 评论 -
7891:一元三次方程求解
描述有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程。给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差的绝对值>=1。要求由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后2位。输入一行,包含四个实数a,b,c,d,相邻两个数之间用单个空格隔开。输出一行,包含三个实数,为该方程的三个实根,按从小到大顺序排列,相邻两个数之间用单个空格隔开,精确到小数点后2位。样例输入1原创 2021-04-06 22:21:20 · 844 阅读 · 0 评论 -
7622:求排列的逆序数
描述在Internet上的搜索引擎经常需要对信息进行比较,比如可以通过某个人对一些事物的排名来估计他(或她)对各种不同信息的兴趣,从而实现个性化的服务。对于不同的排名结果可以用逆序来评价它们之间的差异。考虑1,2,…,n的排列i1,i2,…,in,如果其中存在j,k,满足 j < k 且 ij > ik, 那么就称(ij,ik)是这个排列的一个逆序。一个排列含有逆序的个数称为这个排列的逆序数。例如排列 263451 含有8个逆序(2,1),(6,3),(6,4),(6,5),(6,1),(原创 2021-04-06 18:08:52 · 708 阅读 · 0 评论 -
7620:区间合并
描述给定 n 个闭区间 [ai; bi],其中i=1,2,…,n。任意两个相邻或相交的闭区间可以合并为一个闭区间。例如,[1;2] 和 [2;3] 可以合并为 [1;3],[1;3] 和 [2;4] 可以合并为 [1;4],但是[1;2] 和 [3;4] 不可以合并。我们的任务是判断这些区间是否可以最终合并为一个闭区间,如果可以,将这个闭区间输出,否则输出no。输入第一行为一个整数n,3 ≤ n ≤ 50000。表示输入区间的数量。之后n行,在第i行上(1 ≤ i ≤ n),为两个整数 ai 和原创 2021-04-06 16:38:15 · 271 阅读 · 0 评论 -
7617:输出前k大的数
描述给定一个数组,统计前k大的数并且把这k个数从大到小输出。输入第一行包含一个整数n,表示数组的大小。n < 100000。第二行包含n个整数,表示数组的元素,整数之间以一个空格分开。每个整数的绝对值不超过100000000。第三行包含一个整数k。k < n。输出从大到小输出前k大的数,每个数一行。样例输入104 5 6 9 8 7 1 2 3 05样例输出98765解题用stl还是比较快的可以用sort,优先队列或者其它这里我是使用的优先队列代码#原创 2021-04-06 16:17:54 · 300 阅读 · 0 评论 -
2991:2011
描述已知长度最大为200位的正整数n,请求出2011^n的后四位。输入第一行为一个正整数k,代表有k组数据,k<=200接下来的k行,每行都有一个正整数n,n的位数<=200输出每一个n的结果为一个整数占一行,若不足4位,去除高位多余的0样例输入3528792样例输出1051815521解题因为n的长度最大为200,这肯定涉及到字符串转数字,再用数字进行运算而这涉及到n次方后4位的运算,一般都是会有规律,通过打表发现每500次一轮回,所以运算可得代码#in原创 2021-04-06 16:06:25 · 319 阅读 · 0 评论 -
6262:流感传染
描述有一批易感人群住在网格状的宿舍区内,宿舍区为n*n的矩阵,每个格点为一个房间,房间里可能住人,也可能空着。在第一天,有些房间里的人得了流感,以后每天,得流感的人会使其邻居传染上流感,(已经得病的不变),空房间不会传染。请输出第m天得流感的人数。输入第一行一个数字n,n不超过100,表示有n*n的宿舍房间。接下来的n行,每行n个字符,’.’表示第一天该房间住着健康的人,’#’表示该房间空着,’@’表示第一天该房间住着得流感的人。接下来的一行是一个整数m,m不超过100.输出输出第m天,得流感原创 2021-04-03 20:50:29 · 435 阅读 · 1 评论 -
3525:上台阶
描述楼梯有n(100 > n > 0)阶台阶,上楼时可以一步上1阶,也可以一步上2阶,也可以一步上3阶,编程计算共有多少种不同的走法。输入输入的每一行包括一组测试数据,即为台阶数n。最后一行为0,表示测试结束。输出每一行输出对应一行输入的结果,即为走法的数目。样例输入12340样例输出1247解题从最后一步往前看,如果最后一步是1的话,前面有all[13]中可能为2的话,有all[12]种可能为3的话,有all[11]种可能,然后加起来所有情况即可代原创 2021-04-03 20:06:03 · 553 阅读 · 0 评论 -
1760:菲波那契数列(2)
描述菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数a,要求菲波那契数列中第a个数对1000取模的结果是多少。输入第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1 <= a <= 1000000)。输出n行,每行输出对应一个输入。输出应是一个正整数,为菲波那契数列中第a个数对1000取模得到的结果。样例输入452191样例输出511811解题递归,得到的数都用数组原创 2021-04-03 19:35:02 · 740 阅读 · 0 评论 -
NOI(OJ)总目录
编程基础NOI(OJ)编程基础篇基本算法NOI / 2.1基本算法之枚举NOI / 2.2基本算法之递归和自调用函数原创 2021-03-30 16:21:07 · 2995 阅读 · 3 评论 -
NOI / 2.2基本算法之递归和自调用函数&&递归变递推
NOI / 2.2基本算法之递归和自调用函数标题分数1696逆波兰表达式1750全排列1751分解因数1755菲波那契数列1777文件结构“图”1788Pell数列2705扩号匹配问题3089爬楼梯6261汉诺塔问题666放苹果7592求最大公约数问题87582的幂次方表示9273PKU2506Tiling...原创 2021-03-30 16:10:55 · 853 阅读 · 0 评论 -
9273:PKU2506Tiling
描述对于一个2行N列的走道。现在用1*2,2*2的砖去铺满。问有多少种不同的方式。下图是一个2行17列的走道的某种铺法。输入整个测试有多组数据,请做到文件底结束。每行给出一个数字N,0 <= n <= 250输出如题样例输入2812100200样例输出317127318451004001521529343311354702511071292029505993517027974728227441735014801995855195223534251解题从后原创 2021-03-30 16:01:55 · 394 阅读 · 0 评论 -
8758:2的幂次方表示
描述任何一个正整数都可以用2的幂次方表示。例如:137=27+23+20同时约定方次用括号来表示,即ab可表示为a(b)。由此可知,137可表示为:2(7)+2(3)+2(0)进一步:7=22+2+20(21用2表示) 3=2+20所以最后137可表示为:2(2(2)+2+2(0))+2(2+2(0))+2(0)又如:1315=210+28+25+2+1所以1315最后可表示为:2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(原创 2021-03-30 13:02:24 · 317 阅读 · 0 评论 -
7592:求最大公约数问题
描述给定两个正整数,求它们的最大公约数。输入输入一行,包含两个正整数(<1,000,000,000)。输出输出一个正整数,即这两个正整数的最大公约数。样例输入6 9样例输出3提示求最大公约数可以使用辗转相除法:假设a > b > 0,那么a和b的最大公约数等于b和a%b的最大公约数,然后把b和a%b作为新一轮的输入。由于这个过程会一直递减,直到a%b等于0的时候,b的值就是所要求的最大公约数。比如:9和6的最大公约数等于6和9%6=3的最大公约数。由于6%3原创 2021-03-30 12:29:28 · 571 阅读 · 0 评论 -
666:放苹果
描述把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。输入第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。输出对输入的每组数据M和N,用一行输出相应的K。样例输入17 3样例输出8解题设函数为dg(m,n),分别代表苹果和盘子当苹果为0或者盘子为1时只有1种情况当苹果少与盘子时有dg(m,m)种情况,因为原创 2021-03-30 12:15:32 · 458 阅读 · 0 评论 -
6261:汉诺塔问题
描述约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下、由小到大顺序串着由64个圆盘构成的塔。目的是将最左边杆上的盘全部移到中间的杆上,条件是一次只能移动一个盘,且不允许大盘放在小盘的上面。这是一个著名的问题,几乎所有的教材上都有这个问题。由于条件是一次只能移动一个盘,且不允许大盘放在小盘上面,所以64个盘的移动次数是:18,446,744,073,709,551,615这是一个天文数字,若每一微秒可能计算(并不输出)一次移动,那么也需要几乎一百万年。我们仅能找出原创 2021-03-29 17:26:12 · 549 阅读 · 0 评论