算法设计NOJ
记录刷题日常
夏至夏至520
人说心如刀割,钻石要琢磨
展开
-
【NOJ1328】【回溯_DFS】装载问题加强版
1328.装载问题加强版时限:1000ms 内存限制:10000K 总时限:3000ms描述现在码头有一批重量不同的货物,有三艘装载量不同的货船,试求出能否一次将货物装完输入第一行给出货物的数量n(n<=10)第二行有n个整数,分别表示这n个货物的重量第三行有3个整数,分别表示三艘货船的载重量输出若能够一次装完输出Yes,否则输出No#include ...原创 2018-11-20 16:18:14 · 394 阅读 · 0 评论 -
【NOJ1540】【动态规划_DP】最长递增子序列的长度
1540.最长递增子序列的长度时限:1000ms 内存限制:10000K 总时限:3000ms描述给定一个序列,求它的最长递增子序列的长度输入先输入一个正整数n,表示序列的长度,再输入n个整数表示这个序列输出输出它的最长递增子序列的长度#include <iostream>using namespace std;int n;int a[10...原创 2018-11-20 16:10:21 · 523 阅读 · 0 评论 -
【NOJ1209】【算法实验四】【DP_动态规划】滑雪
1209.滑雪时限:1000ms 内存限制:10000K 总时限:3000ms描述Michael喜欢滑雪这并不奇怪,因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子1 2 3 4 516 17 1...原创 2018-10-26 12:11:25 · 926 阅读 · 0 评论 -
【NOJ1203】【算法实验四】【DP_动态规划】装盘子
1203.装盘子时限:1000ms 内存限制:10000K 总时限:3000ms描述N人为了大快朵颐,行至云餐二楼,取了N个盘子,打了M个饺子。现欲将M个饺子装入N个盘子中,试问共有多少种不同的装法?假设盘子足够大,并且盘子里可以什么都不放。注意像2 5 0和5 0 2之类的属于同一种放法。输入两个整数M、N(1=< M,N <=100)以空格隔开。输出...原创 2018-10-26 12:05:35 · 1198 阅读 · 4 评论 -
2018/11/17 瓜大算法实验考试
1、快速排序(分治)https://blog.csdn.net/qq_41727666/article/details/828868362、堡垒问题(回溯)https://blog.csdn.net/qq_41727666/article/details/829119943、最长公共子序列(动态规划)https://blog.csdn.net/qq_41727666/artic...原创 2018-11-17 11:38:14 · 954 阅读 · 7 评论 -
2018/11/9 瓜大算法理论考试
1、求第k小数(分治)https://blog.csdn.net/qq_41727666/article/details/828870492、0-1背包(回溯)(当前重量小于容量这一剪枝条件必须要有)https://blog.csdn.net/qq_41727666/article/details/829118763、穷举所有排列(回溯)https://blog.csdn.ne...原创 2018-11-09 14:50:09 · 756 阅读 · 0 评论 -
【NOJ1041】【算法实验四】【DP_动态规划】最长公共子序列
1041.最长公共子序列时限:1000ms 内存限制:200000K 总时限:3000ms描述一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X=<x1, x2,…, xm>,则另一序列Z=<z1, z2,…, zk>是X的子序列是指存在一个严格递增的下标序列 <i1, i2,…, ik>,使得对于所有j=1,2,…,...原创 2018-10-19 09:58:09 · 1593 阅读 · 3 评论 -
【NOJ1046】【算法实验四】【DP_动态规划】防卫导弹
1046.防卫导弹时限:1000ms 内存限制:10000K 总时限:3000ms描述一种新型的防卫导弹可截击多个攻击导弹。它可以向前飞行,也可以用很快的速度向下飞行,可以毫无损伤地截击进攻导弹,但不可以向后或向上飞行。但有一个缺点,尽管它发射时可以达到任意高度,但它只能截击比它上次截击导弹时所处高度低或者高度相同的导弹。现对这种新型防卫导弹进行测试,在每一次测试中,发射一系列的测试...原创 2018-10-19 11:22:54 · 2277 阅读 · 0 评论 -
【NOJ1048】【算法实验四】【DP_动态规划】计算矩阵连乘积
1048.计算矩阵连乘积时限:1000ms 内存限制:10000K 总时限:3000ms描述在科学计算中经常要计算矩阵的乘积。矩阵A和B可乘的条件是矩阵A的列数等于矩阵B的行数。若A是一个p×q的矩阵,B是一个q×r的矩阵,则其乘积C=AB是一个p×r的矩阵。计算C=AB总共需要p×q×r次乘法。现在的问题是,给定n个矩阵{A1,A2,…,An}。其中Ai与Ai+1是可乘的,i=1...原创 2018-10-19 14:32:19 · 1341 阅读 · 3 评论 -
【NOJ1047】【算法实验四】【DP_动态规划】田忌赛马
1047.田忌赛马(tian ji racing)时限:1000ms 内存限制:10000K 总时限:3000ms描述田忌与齐王赛马,双方各有n匹马参赛(n<=100),每场比赛赌注为1两黄金,现已知齐王与田忌的每匹马的速度,并且齐王肯定是按马的速度从快到慢出场,现要你写一个程序帮助田忌计算他最好的结果是赢多少两黄金(输用负数表示)。平局为0输入多个测例。每个测例三行...原创 2018-10-19 15:42:20 · 2471 阅读 · 7 评论 -
【NOJ1148】【算法实验四】【DP_动态规划】石子合并
1148.石子合并时限:1000ms 内存限制:10000K 总时限:3000ms描述在一个圆形(圆形!!!圆形!圆形!)操场的四周摆放着n堆石子(n<= 100),现要将石子有次序地合并成一堆。规定每次只能选取相邻的两堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。编一程序,读入石子堆数n及每堆的石子数(<=20)。选择一种合并石子的方案,使得做n-1次合并...原创 2018-10-19 17:30:52 · 1653 阅读 · 1 评论 -
【NOJ1149】【算法实验四】【DP_动态规划】旅游预算/加油站问题
1149.旅游预算时限:1000ms 内存限制:10000K 总时限:3000ms描述一个旅行社需要估算乘汽车从某城市到另一城市的最小费用,沿路有若干加油站,每个加油站收费不一定相同。旅游预算有如下规则:1、若油箱的油过半,不停车加油,除非油箱中的油不可支持到下一站;2、每次加油时都加满;3、在一个加油站加油时,司机要花费2元买东西吃;4、司机不必为其他意外情况而...原创 2018-10-19 21:17:52 · 3164 阅读 · 19 评论 -
【NOJ1083】【算法实验四】【DP_动态规划】花生米(二)
1083.花生米(二)时限:1000ms 内存限制:10000K 总时限:3000ms描述五一长假第二天,Tom和Jerry在仓库散步的时候又发现了一堆花生米(这个仓库还真奇怪)。这次Tom制定分花生米规则如下: 1、Tom和Jerry轮流从堆中取出k粒花生米吃掉,k可以是1,5,10中的任意一个数字; 2、为显示规则的公平性,Jerry可以选择先取或...原创 2018-10-25 23:49:12 · 800 阅读 · 0 评论 -
【NOJ1084】【算法实验四】【DP_动态规划】花生米(三)
1084.花生米(三)时限:1000ms 内存限制:10000K 总时限:3000ms描述五一长假第三天,Tom和Jerry在仓库散步的时候又发现了一堆花生米(仓库,又见仓库……)。这次Tom制定分花生米规则如下: ???????1、Tom和Jerry轮流从堆中取出k粒花生米吃掉; 2、第一次取花生米的人只能取一粒,以后取花生米的数量不能超过前一个人取花生米数量的两倍; 3、为...原创 2018-10-25 23:53:32 · 1445 阅读 · 0 评论 -
【NOJ1085】【算法实验四】【博弈算法】花生米(四)
原博客:https://blog.csdn.net/wenxindiaochizi/article/details/455910871085.花生米(四)时限:1000ms 内存限制:10000K 总时限:3000ms描述五一长假第四天,Tom逛了N个bbs,做了N^2个脑筋急转弯题,终于发现了每次吃完花生米嘴里都是苦味的原因:自己总会吃到最后一粒花生米。 五一长假第五天,Tom和J...转载 2018-10-25 23:56:04 · 866 阅读 · 0 评论 -
【NOJ1085】【算法实验四】【DP_动态规划】花生米(五)
1086.花生米(五)时限:1000ms内存限制:10000K 总时限:3000ms描述五一长假第六天,Tom在QQ上遇到了Kitty。呵呵,Kitty,在离散数学课上认识的PPMM……等等!Tom恍然大悟:自己这一生除了看帖不回之外最大的错误就是离散数学没学好!五一长假第七天,Tom和Jerry在仓库散步的时候发现了一堆花生米(仓库,呵呵,仓库…)。这次Tom制定分花生米规则...原创 2018-10-25 23:59:16 · 936 阅读 · 3 评论 -
【NOJ1571】【算法实验三】【分支限界法】八数码
1571.八数码时限:5000ms 内存限制:20000K 总时限:10000ms描述在九宫格里放在1到8共8个数字还有一个是空格,与空格相邻的数字可以移动到空格的位置,问给定的状态最少需要几步能到达目标状态(用0表示空格):1 2 34 5 67 8 0输入输入一个给定的状态。输出输出到达目标状态的最小步数。不能到达时输出-1。 10月27日第二版代码(比...原创 2018-10-12 18:36:26 · 3349 阅读 · 1 评论 -
【NOJ1541】【算法实验三】【BFS_分支限界】加1乘2平方
1541.加1乘2平方时限:1000ms 内存限制:10000K 总时限:3000ms描述给定两个正整数m、n,问只能做加1、乘2和平方这三种变化,从m变化到n最少需要几次输入输入两个10000以内的正整数m和n,且m小于n输出输出从m变化到n的最少次数#include <iostream>#include <queue>using...原创 2018-10-07 13:43:53 · 1795 阅读 · 1 评论 -
【NOJ1326】【算法实验三】【分支限界法】推箱子
1326.推箱子时限:1000ms 内存限制:10000K 总时限:3000ms描述绝大多数人都玩过推箱子的游戏,控制一个人将箱子推动到目标位置即获得胜利。现请你编写一个程序,判断将箱子推到目标位置至少需要多少步。输入推箱子的平面区域为固定大小(10*10),使用10行10列输入推箱子的初始局面。其中,0代表空格,1代表墙,2代表箱子,3代表目标位置,4代表人。注:游戏中只...原创 2018-10-11 21:48:24 · 3160 阅读 · 1 评论 -
【NOJ1325】【算法实验三】【分支限界法】特殊的二阶魔方
1325.特殊的二阶魔方时限:1000ms 内存限制:10000K 总时限:3000ms描述魔方大家应该都玩过。现在有一个特殊的二阶魔方,它只有一面是白色,其余五个面全是黑色。玩这个魔方当然也有特殊的规则,玩家只能通过六种方式去改变它,底层向左转一格(称为DL),底层向右转一格(称为DR),右侧向上转一格(称为RU),右侧向下转一格(称为RD),内侧顺时针转一格(称为C),内侧逆时针...原创 2018-10-12 00:24:51 · 1406 阅读 · 0 评论 -
【NOJ1147】【算法实验三】【分支限界法】木乃伊迷宫
1147.木乃伊迷宫时限:1000ms内存限制:10000K 总时限:3000ms描述木乃伊地下宫殿是一个6行6列的迷宫。游戏在木乃伊所在的迷宫里展开,任务就是尽快赶到出口。你一次只能走一步,而木乃伊可以走两步,但木乃伊是很笨的,他总是先尽量跟你达到同一列,如果已经是同一列了,他才会向你走来,有墙的地方人和木乃伊都不能过,你可以利用障碍物牵制住木乃伊。输入先输入墙的数量n,...原创 2018-10-12 16:53:30 · 2553 阅读 · 4 评论 -
【NOJ1146】【算法实验三】【分支限界法】找倍数
1146.找倍数时限:1000ms 内存限制:10000K 总时限:3000ms描述对于每个输入的数字(如:2),则要求 给出一个由1,0构成的十进制整数,且该整数为输入数字的某个倍数,且是满足该条件的最小数(如2对应的10)。输入数字n,n等于0时停止。输出n的一个满足条件的最小倍数。#include <iostream>#include <...原创 2018-10-11 20:12:11 · 713 阅读 · 0 评论 -
【NOJ1045】【算法实验三】【BFS_分支限界】六数码问题_Map判重
1045.六数码问题时限:1000ms 内存限制:10000K 总时限:3000ms描述现有一两行三列的表格如下:A B CD E F把1、2、3、4、5、6六个数字分别填入A、B、C、D、E、F格子中,每个格子一个数字且各不相同。每种不同的填法称为一种布局。如下:1 3 52 4 6布局12 5 64 3 1布局2定义α变换如下:把A格中的数字放入B格,把B格中...原创 2018-10-10 23:16:15 · 1872 阅读 · 1 评论 -
【NOJ1044】【算法实验三】【BFS_分支限界】独轮车
1044.独轮车时限:1000ms 内存限制:10000K 总时限:3000ms描述独轮车的轮子上有红、黄、蓝、白、绿(依顺时针序)5种颜色在一个如下图所示的20*20的迷宫内每走一个格子,轮子上的颜色变化一次(原地转向则不变色)独轮车只能向前推或在原地转向。每走一格或原地转向90度均消耗一个单位时间。现给定一个起点(S)和一个终点(T),求独轮车以轮子上的指定颜色(未指...原创 2018-10-07 19:33:42 · 1339 阅读 · 0 评论 -
【NOJ1043】【算法实验三】【BFS_分支限界】跳马
1043.跳马时限:1000ms 内存限制:10000K 总时限:3000ms描述在国际象棋中,马的走法与中车象棋类似,即俗话说的“马走日”,下图所示即国际象棋中马(K)在一步能到达的格子(其中黑色的格子是能到达的位置)。方向设置 7 6 8 5 K 1...原创 2018-10-07 12:00:32 · 1135 阅读 · 0 评论 -
【NOJ1042】【算法实验三】【BFS_分支限界】电子老鼠走迷宫
1042.电子老鼠闯迷宫时限:1000ms 内存限制:10000K 总时限:3000ms描述有一只电子老鼠被困在如下图所示的迷宫中。这是一个12*12单元的正方形迷宫,黑色部分表示建筑物,白色部分是路。电子老鼠可以在路上向上、下、左、右行走,每一步走一个格子。现给定一个起点S和一个终点T,求出电子老鼠最少要几步从起点走到终点。(题意中迷宫左上角为[1, 1])输入本题包含一个...原创 2018-10-07 14:32:54 · 1525 阅读 · 0 评论 -
【NOJ1205】【贪心算法】活动安排
1205.活动安排时限:1000ms 内存限制:10000K 总时限:3000ms描述Jack是一名nwpu的大一新生,对学校举办的各种活动都十分的好奇,想尽可能多的参加这些活动。Npwu每天共有N项活动,其开始结束时间分别为B[i],E[i],(i = 1,2,……N)请问Jack一天最多能参加几项活动。当然,Jack在同一时间内只能参加一项活动,即jack参加的活动时间上不能重...原创 2018-10-06 16:58:05 · 1442 阅读 · 5 评论 -
【NOJ1593、1594、1595】【并查集三连】朋友敌人关系
1593.并查集(一)时限:1000ms 内存限制:10000K 总时限:3000ms描述一个城市中有n个人,其中一些人是朋友关系,同时他们都认为:朋友的朋友是朋友,现在任给两个人,问他们是否是朋友关系。输入先输入两个正整数n和m(均小于1000),表示城市里有n个人,并且将给出m对朋友关系,接下来的m行每行给出两个0~n-1之间的整数,表示这两个人是朋友关系。最后一行再输...原创 2018-10-06 17:02:51 · 1226 阅读 · 0 评论 -
【NOJ1596、1597】【贪心算法之最小生成树】最少修建多长的公路能把所有村庄连起来(图示Prim与Kruskal算法)
1596.最少修建多长的公路能把所有村庄连起来(一)时限:1000ms 内存限制:10000K 总时限:3000ms描述一个地区有n个村庄,有一些村子之间可以修路,已知每条路的长度,问最少修建多长的公路可以把所有的村子连接起来。输入先输入两个正整数n,m(n小于10000,m小于100000),表示有n个村庄,m条可以修建的路,接下来的m行每行三个整数,前两个表示村庄的编号(...原创 2018-10-06 18:26:40 · 2027 阅读 · 0 评论 -
【NOJ1142】【算法实验二】【DFS_回溯】踩气球
1142.踩气球时限:1000ms内存限制:10000K 总时限:3000ms描述六一儿童节,小朋友们做踩气球游戏,气球的编号是1~100,两位小朋友各踩了一些气球,要求他们报出自己所踩气球的编号的乘积。现在需要你编一个程序来判断他们的胜负,判断的规则是这样的:如果两人都说了真话,数字大的人赢;如果两人都说了假话,数字大的人赢;如果报小数字的人说的是真话而报大数字的人说谎,则报小数...原创 2018-09-30 18:52:17 · 1778 阅读 · 3 评论 -
【NOJ1143】【算法实验二】【DFS_回溯】字母转换
1143.字母转换时限:1000ms 内存限制:10000K 总时限:3000ms描述通过栈交换字母顺序。给定两个字符串,要求所有的进栈和出栈序列(i表示进栈,o表示出栈),使得字符串2在求得的进出栈序列的操作下,变成字符串1。输出结果需满足字典序。例如TROT 到 TORT:[i i i i o o o oi o i i o o i o] 输入给定两个字符...原创 2018-09-30 19:42:27 · 947 阅读 · 1 评论 -
【NOJ1144】【算法实验二】【DFS_回溯】农场灌溉问题
1144.农场灌溉问题时限:1000ms 内存限制:10000K 总时限:3000ms描述一农场由图所示的十一种小方块组成,蓝色线条为灌溉渠。若相邻两块的灌溉渠相连则只需一口水井灌溉。输入给出(m,n)表示农场大小,若干由字母表示的农场图(最大不超过50×50)m==-1&&n==-1表示结束输出编程求出最小需要打的井数。每个测例的输出占一行。当M...原创 2018-09-30 20:29:50 · 1462 阅读 · 1 评论 -
【NOJ1145】【算法实验二】【DFS_回溯】求图像的周长
1145.求图像的周长时限:1000ms 内存限制:10000K 总时限:3000ms描述给一个用 ‘ . ’ 和 ' X ' 表示的图形,图形在上、下、左、右、左上、左下、右上、右下8个方向都被看作是连通的,并且图像中间不会出现空洞,求这个图形的边长。 输入首先给出m、n、x、y四个正整数,下面给出m×n的图形,x、y表示点击的位置,全0表示结束。 输出点击...原创 2018-09-30 20:40:46 · 1085 阅读 · 1 评论 -
【NOJ1575】【算法实验二】【DFS_回溯】图的m着色问题
1575.图的m着色问题时限:1000ms 内存限制:10000K 总时限:3000ms描述给定无向连通图G和m种不同的颜色。用这些颜色为图G的各顶点着色,每个顶点着一种颜色。如果有一种着色法使G中每条边的2个顶点着不同颜色,则称这个图是m可着色的。图的m着色问题是对于给定图G和m种颜色,找出所有不同的着色法。 输入第1行有3个正整数n,r 和m(n < 20,r ...原创 2018-10-02 11:29:44 · 965 阅读 · 0 评论 -
【NJO1579】【算法实验二】【DFS_回溯】三阶幻方
1579.三阶幻方时限:1000ms 内存限制:10000K 总时限:3000ms描述三阶幻方是最简单的幻方,又叫九宫格,是由1,2,3,4,5,6,7,8,9九个数字组成的一个三行三列的矩阵,其对角线、横行、纵向的的和都为15。 输入无 输出按字典序输出所有的满足条件的幻方矩阵,每两个数字之间带一个空格,行尾无空格,每个幻方后带一个空行。#includ...原创 2018-10-02 11:32:51 · 920 阅读 · 0 评论 -
【NOJ1004】【算法实验二】【DFS_回溯】0-1背包问题
1004.0-1背包问题时限:1000ms 内存限制:10000K 总时限:3000ms描述需对容量为c 的背包进行装载。从n 个物品中选取装入背包的物品,每件物品i 的重量为wi ,价值为pi 。对于可行的背包装载,背包中物品的总重量不能超过背包的容量,最佳装载是指所装入的物品价值最高。 输入多个测例,每个测例的输入占三行。第一行两个整数:n(n<=10)和c...原创 2018-09-30 17:17:35 · 1212 阅读 · 1 评论 -
【NOJ1005】【算法实验二】【DFS_回溯】装载问题
1005.装载问题时限:1000ms 内存限制:10000K 总时限:3000ms描述有两艘船,载重量分别是c1、 c2,n个集装箱,重量是wi (i=1…n),且所有集装箱的总重量不超过c1+c2。确定是否有可能将所有集装箱全部装入两艘船。 输入多个测例,每个测例的输入占两行。第一行一次是c1、c2和n(n<=10);第二行n个整数表示wi (i=1…...原创 2018-09-30 17:22:02 · 853 阅读 · 0 评论 -
【NOJ1006】【算法实验二】【DFS_回溯】堡垒问题_方格类数据表示方法
1006.堡垒问题时限:1000ms 内存限制:10000K 总时限:3000ms描述城堡是一个4×4的方格,为了保卫城堡,现需要在某些格子里修建一些堡垒。城堡中的某些格子是墙,其余格子都是空格,堡垒只能建在空格里,每个堡垒都可以向上下左右四个方向射击,如果两个堡垒在同一行或同一列,且中间没有墙相隔,则两个堡垒都会把对方打掉。问对于给定的一种状态,最多能够修建几个堡垒。 ...原创 2018-09-30 18:00:05 · 1276 阅读 · 2 评论 -
【NOJ1009】【算法实验二】【DFS_回溯】迷宫问题
1009.迷宫问题时限:1000ms 内存限制:10000K 总时限:3000ms描述给一个20×20的迷宫、起点坐标和终点坐标,问从起点是否能到达终点。 输入多个测例。输入的第一行是一个整数n,表示测例的个数。接下来是n个测例,每个测例占21行,第一行四个整数x1,y1,x2,y2是起止点的位置(坐标从零开始),(x1,y1)是起点,(x2,y2)是终点。下面20行每行...原创 2018-09-30 18:24:44 · 895 阅读 · 0 评论 -
【NOJ1007】【算法实验二】【DFS_回溯】八皇后问题
1007.8皇后问题时限:1000ms 内存限制:10000K 总时限:3000ms描述输出8皇后问题所有结果。 输入没有输入。 输出每个结果第一行是No n:的形式,n表示输出的是第几个结果;下面8行,每行8个字符,‘A’表示皇后,‘.’表示空格。不同的结果中,先输出第一个皇后位置靠前的结果;第一个皇后位置相同,先输出第二个皇后位置靠前的结果;依次类...原创 2018-09-30 18:05:12 · 891 阅读 · 0 评论