
算法设计与分析
rain699
这个作者很懒,什么都没留下…
展开
-
自底向上的归并排序
void Mergesort(int a[],int n){ int len; for(len=1;len<n;len=2*len) { MergePass(a,len,n);//从步长为1开始归并 }}void MergePass(int a[],int len,int n)//归并{ int i; for(...原创 2018-09-08 22:38:19 · 433 阅读 · 0 评论 -
1575.图的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-29 13:19:34 · 451 阅读 · 0 评论 -
1041最长公共子序列
1041.最长公共子序列时限:1000ms 内存限制:200000K 总时限:3000ms描述一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X=<x1, x2,…, xm>,则另一序列Z=<z1, z2,…, zk>是X的子序列是指存在一个严格递增的下标序列 <i1, i2,…, ik>,使得对于所有j=1,2,…,...原创 2018-10-29 13:21:48 · 384 阅读 · 0 评论 -
1046防卫导弹
1046.防卫导弹时限:1000ms 内存限制:10000K 总时限:3000ms描述一种新型的防卫导弹可截击多个攻击导弹。它可以向前飞行,也可以用很快的速度向下飞行,可以毫无损伤地截击进攻导弹,但不可以向后或向上飞行。但有一个缺点,尽管它发射时可以达到任意高度,但它只能截击比它上次截击导弹时所处高度低或者高度相同的导弹。现对这种新型防卫导弹进行测试,在每一次测试中,发射一系列的测试...原创 2018-10-29 13:19:13 · 413 阅读 · 0 评论 -
1047田忌赛马
1047.田忌赛马(tian ji racing)时限:1000ms 内存限制:10000K 总时限:3000ms描述田忌与齐王赛马,双方各有n匹马参赛(n<=100),每场比赛赌注为1两黄金,现已知齐王与田忌的每匹马的速度,并且齐王肯定是按马的速度从快到慢出场,现要你写一个程序帮助田忌计算他最好的结果是赢多少两黄金(输用负数表示)。Tian Ji and the king ...原创 2018-10-29 13:20:56 · 840 阅读 · 0 评论 -
1048计算矩阵连乘积
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-29 13:21:37 · 442 阅读 · 0 评论 -
1148环形石子合并
1148.石子合并时限:1000ms 内存限制:10000K 总时限:3000ms描述在一个圆形操场的四周摆放着n堆石子(n<= 100),现要将石子有次序地合并成一堆。规定每次只能选取相邻的两堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。编一程序,读入石子堆数n及每堆的石子数(<=20)。选择一种合并石子的方案,使得做n-1次合并,得分的总和最小;比如有4...原创 2018-10-29 13:21:21 · 455 阅读 · 0 评论 -
1144.农场灌溉问题
1144.农场灌溉问题时限:1000ms 内存限制:10000K 总时限:3000ms描述一农场由图所示的十一种小方块组成,蓝色线条为灌溉渠。若相邻两块的灌溉渠相连则只需一口水井灌溉。 输入给出若干由字母表示的最大不超过50×50具体由(m,n)表示,的农场图 输出编程求出最小需要打的井数。每个测例的输出占一行。当M=N=-1时结束程序。 输入样例...原创 2018-10-29 13:19:45 · 578 阅读 · 0 评论 -
1143.字母转换(进栈出栈)
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-10-29 13:12:46 · 1587 阅读 · 1 评论 -
木乃伊问题
描述木乃伊地下宫殿是一个6行6列的迷宫。作为敢到木乃伊地下宫殿里去探险的你,有没有跟木乃伊抓迷藏的心理准备呵!游戏在木乃伊所在的迷宫里展开,任务就是尽快赶到出口。你一次只能走一步,而木乃伊可以走两步,但木乃伊是很笨的,他总是先尽量跟你达到同一列,如果已经是同一列了,他才会像你走来,有墙的地方人和木乃伊都不能过,你可以利用障碍物牵制住木乃伊。 输入先输入墙的数量n,然后在后续的n行里...原创 2018-10-29 13:20:09 · 339 阅读 · 0 评论 -
递归算24
给出4个小于10个正整数,你可以使用加减乘除4种运算以及括号把这4个数连接起来得到一个表达式。现在的问题是,是否存在一种方式使得得到的表达式的结果等于24。这里加减乘除以及括号的运算结果和运算的优先级跟我们平常的定义一致(这里的除法定义是实数除法)。比如,对于5,5,5,1,我们知道5*(5-1/5)=24,因此可以得到24。又比如,对于1,1,4,2,我们怎么都不能得到24。输入数据包括多...原创 2018-09-16 21:52:46 · 816 阅读 · 0 评论 -
分治 循环赛日程表
问题描述:对于n=2^k个选手,设计一个满足以下要求的比赛日程表。条件1:每个选手必须与其他n-1个选手各赛一次条件2:每个选手一天只能赛一次条件3:循环赛一共进行n-1天问题的求解方法:分治,将所有选手分成两半,n个选手的比赛日程表就可以通过n/2个选手设计的比赛日程表来决定递归进行分割,直到只剩下两个选手。倒退,首先确定日程表第一行,求得第二行,然后求得三四行。...原创 2018-10-29 13:18:49 · 241 阅读 · 0 评论 -
八数码(广搜)
1571.八数码时限:5000ms 内存限制:20000K 总时限:10000ms描述在九宫格里放在1到8共8个数字还有一个是空格,与空格相邻的数字可以移动到空格的位置,问给定的状态最少需要几步能到达目标状态(用0表示空格):1 2 34 5 67 8 0 输入输入一个给定的状态。 输出输出到达目标状态的最小步数。不能到达时输出-1。 输入样例...原创 2018-10-29 13:19:25 · 407 阅读 · 0 评论 -
1044独轮车(广搜)
1044.独轮车时限:1000ms 内存限制:10000K 总时限:3000ms描述独轮车的轮子上有红、黄、蓝、白、绿(依顺时针序)5种颜色,在一个如下图所示的20*20的迷宫内每走一个格子,轮子上的颜色变化一次。独轮车只能向前推或在原地转向。每走一格或原地转向90度均消耗一个单位时间。现给定一个起点(S)和一个终点(T),求独轮车以轮子上的指定颜色到达终点所需的最短时间。 ...原创 2018-10-29 13:18:38 · 507 阅读 · 0 评论 -
1042电子老鼠闯迷宫 (广搜)
1042.电子老鼠闯迷宫时限:1000ms 内存限制:10000K 总时限:3000ms描述有一只电子老鼠被困在如下图所示的迷宫中。这是一个12*12单元的正方形迷宫,黑色部分表示建筑物,白色部分是路。电子老鼠可以在路上向上、下、左、右行走,每一步走一个格子。现给定一个起点S和一个终点T,求出电子老鼠最少要几步从起点走到终点。 输入本题包含一个测例。在测例的第一行有四个由...原创 2018-10-29 13:18:57 · 420 阅读 · 0 评论 -
1045六数码(广搜)
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-29 13:19:56 · 200 阅读 · 0 评论 -
1141走迷宫
1141.走迷宫时限:1000ms 内存限制:10000K 总时限:3000ms描述判断是否能从迷宫的入口到达出口 输入先输入两个不超过20的正整数表示迷宫的行数m和列数n,再输入口和出口的坐标,最后分m行输入迷宫,其中1表示墙,0表示空格每个数字之间都有空格。 输出只能向上、下、左、右四个方向走若能到达,则输出"Yes",否则输出"No",结果占...原创 2018-10-29 13:21:10 · 558 阅读 · 2 评论 -
1142.踩气球
1142.踩气球时限:1000ms 内存限制:10000K 总时限:3000ms描述六一儿童节,小朋友们做踩气球游戏,气球的编号是1~100,两位小朋友各踩了一些气球,要求他们报出自己所踩气球的编号的乘积。现在需要你编一个程序来判断他们的胜负,判断的规则是这样的:如果两人都说了真话,数字大的人赢;如果两人都说了假话,数字大的人赢;如果报小数字的人说的是真话而报大数字的人说谎,则报小数...原创 2018-10-29 13:20:40 · 516 阅读 · 0 评论 -
1006堡垒问题&&1007八皇后问题
1006.堡垒问题时限:1000ms 内存限制:10000K 总时限:3000ms描述城堡是一个4×4的方格,为了保卫城堡,现需要在某些格子里修建一些堡垒。城堡中的某些格子是墙,其余格子都是空格,堡垒只能建在空格里,每个堡垒都可以向上下左右四个方向射击,如果两个堡垒在同一行或同一列,且中间没有墙相隔,则两个堡垒都会把对方打掉。问对于给定的一种状态,最多能够修建几个堡垒。 输入...原创 2018-11-14 17:10:31 · 440 阅读 · 0 评论