题目链接:10981 - String Morphing
题意:给定开始的字符串,要求根据表格变化成一个字符串,问变化的顺序(注意,不一定要最少步数)
思路:记忆化搜索,用map来存字符串的状态,一开始按最少步数去做TLE,其实只要找到一个符合的就可以了
代码:
#include
#include
#include
#include
#include
using namespac...
分类:
其他好文 时间:
2014-07-22 23:03:54
阅读次数:
293
题目链接:uva 278 - Chess
题目大意:给出一个n*m的棋盘,并且给出棋子的种类,问说在这个大小的棋盘上最多能放几个给定的棋子,棋子之间不能互相攻击。
解题思路:总共有4种棋子,那么就分类讨论。
马(骑士):
n或m为1的时候,肯定可以摆满,因为肯定不能互相攻击
n或者m为2时,这样放是最优的。
其他情况的或就是间隔放最优。
车:因为车的攻...
分类:
其他好文 时间:
2014-07-22 23:03:52
阅读次数:
290
0-1背包问题:
描述:给定n中物品和一背包。物品i的重量是wi,其价值为vi,背包的容量为c,问应如何选择装入背包中的物品,使得装入背包中的物品总价值最大?
0-1背包问题是一个特殊的整数规划问题。 设所给0-1背包问题的子问题; 其最优值为m(i,j),即m(...
分类:
其他好文 时间:
2014-07-22 23:00:35
阅读次数:
319
题目题意:给定a, b, x, y; 求使c, d; 使c:d = x :y; 且c 2
#include 3 #include 4 #include 5 using namespace std; 6 7 long long gcd(long
long a, long long b) 8 {...
分类:
其他好文 时间:
2014-05-01 19:30:04
阅读次数:
372
在memory.c里面,遇到一个宏定义,如下:
#define CODE_SPACE(addr) ((((addr)+4095)&~4095) start_code + current->end_code)
看的第一眼,不知道,第二眼,还是不知道,纠结了半天还是不知道。
睡了一晚,今天早上再看,嘿嘿,居然看懂了。。。
这个宏定义用于判断给定的addr线...
分类:
系统相关 时间:
2014-05-01 17:54:09
阅读次数:
516
题目:
Given a sorted (increasing order) array, write an algorithm to create a binary tree with minimal height.
翻译:
给定一个有序数组(递增),写程序构建一棵具有最小高度的二叉树。
思路:
要使二叉树的高度最小,则要尽量使其左右子树的节点数目相当,自然就考虑到将其构造成为二叉排序树,且将有序数组的中间大的数作为根节点,这样得到的二叉树的高度便是最小的。...
分类:
其他好文 时间:
2014-05-01 17:48:45
阅读次数:
321
题意:
给定n长的数组(下标从1-n)(n个人的身高,身高各不相同
问:对于第i个人,他能看到的左边最矮的人下标。(如果这个最矮的人被挡住了,则这个值为0)
还有右边最高的人下标,同理若被挡住了则这个值为0
输出n行,每个人左右2边的下标。
单调队列,对于 front - rear 的队列(注意出队都是在rear,入队也是在rear)
当加入元素x,若这队列是单调递增的,显然q.fro...
分类:
其他好文 时间:
2014-05-01 17:21:43
阅读次数:
429
前序:
(二叉)堆数据结构是一种数组对象,它可以被视为一棵完全二叉树。树中每个节点与数组中存放该节点值的那个元素对应。
树的每一层都是填满的,最后一层除外。
树的根为a[1] (在这里是从1开始的,也可以从0开始),给定了某个节点的下标i,其父节点为i/2,左二子为2*i,右儿子为2*i+1。
二叉堆满足二个特性:
1.父结点的键值总是大于或等于(小于或等于)任何一个...
分类:
其他好文 时间:
2014-04-30 22:15:38
阅读次数:
434
进制转换
题目详情:
我们通常用的十进制数包含0-9十个数字。假设有一种进制系统包含3种数字,从低到高分别为"oF8”,那么从1到9分别表示为F, 8, Fo, FF, F8, 8o, 8F, 88, Foo, FoF。给定一种进制的数和两种进制的数字表,请把它从第一种进制转换为第二种进制。
输入格式:
第一行是T表示测测试数据组数。(0
以后T行,每行有3个部分:...
分类:
其他好文 时间:
2014-04-30 22:12:40
阅读次数:
277
有一个需要,给定一个数组,从中生成要求个数的随机数组,不重复,即getRandomArray(int[] originalArray,int number) 这样的一个函数。想了一下,可以这样做:
把数组元素放到一个List中从List中随机取一个数把取到的数从List中删除重复上述过程
代码如下:
import java.util.ArrayList;
import java.ut...
分类:
其他好文 时间:
2014-04-29 13:41:20
阅读次数:
295