算法
文章平均质量分 57
kuangwanjing626
这个作者很懒,什么都没留下…
展开
-
动态规划1
#include #include #include int main() { int sum = 11; int candidate[3] = {1, 3, 5}; int s[12]; memset(s, 0, sizeof(s)); for(int i = 1; i { int min = 1原创 2012-08-14 22:44:17 · 224 阅读 · 0 评论 -
sicily 1135 飞越原野
题目思路:由于飞行的时候只计算变身的时间而不算飞行的时间,也就是说,走一步和飞一次(无论飞多久)花费的时间是一样的,因此,我们可以用广搜来解决这个问题。无论是飞行还是步行,都可以作为一个节点放到bfs状态的队列之中。 状态我用了一个结构体,内有主角的坐标位置、当前花销时间、可飞行的距离。既然是遍历,就要记着已经遍历过的位置,这里的visited数组有点特别,是一个三位数组,第一、二维分别原创 2013-04-16 23:12:32 · 1048 阅读 · 0 评论 -
1006 teamRanking
题目大意就是给出一堆关于ABCDE的排列,然后找出排列的中数。这个中数是所有排列中与输入排列的距离最小的排列,每当一对队伍的先后顺序不同,则距离加1。 解法是:由于只是关于ABCDE的排列,那么候选的答案只有A55,也就是120组而已,所以可以直接枚举。 #include #include #include using namespace std; string candidate; in原创 2013-03-27 08:24:17 · 438 阅读 · 0 评论 -
sicily 1029 Rabbits
题目大意是:有一对基因十分良好的兔子,每个月都会生一对小兔子,经过m个月后,小兔子又会长成大兔子,大兔子就可以又生一对小兔子。那么给出d个月后,总共有多少对兔子。(兔子期间不死亡,1 思路:我的想法是将兔子分成2种,一种是小兔子,另一种是大兔子。小兔子又依照它们的年龄分成n份(1 代码: #include #include #include using namespa原创 2013-03-24 15:28:30 · 458 阅读 · 0 评论 -
关于深搜。。
最近参加了一些实习的考试,发现其实很多企业对实习生的要求就是基础吗。基础就包括程序设计、算法、数据结构、操作系统之类的。 所以现在对自己学习过的东西进行一个汇总吧。 今天讲的深搜。 今天看了编程之美的一个题目:计算字符串的相似度。 比如说aabbc 和aabb吧,这两个字符串的距离就是1,因为只要将第一个字符的最后一个字符删除掉了(或者给第二个字符串添加一个字符),就跟第二个字符串相同原创 2013-03-18 22:33:59 · 714 阅读 · 0 评论 -
sicily 1011
代码是自己的,一些资料参考了别人的。 基本上这是一题水题啦~~~ 题目就是给出一个N和M,N表示步数,M表示从1开始的连续整数的上界,求在M以内,所有序列的个数,序列的数字数目是N,每一个数字都不比前一个数字的两倍小。 (1 这一个题目用的是动态规划,但因为计算出来的结果只与1到2000这一个总的序列特性有关的,所以可以做一次动态规划,计算出一个字典,然后每次只需要查看字典中某个转载 2012-12-20 17:48:37 · 281 阅读 · 0 评论 -
sicily1018
题目意思,在这里就不说了。大概说说解题思路吧。 我定义了一个Card的结构体: struct Card{ string name; int value; int suit; }five[5]; 首先要遍历5张卡片,当两张卡片的花色是一样的时候,就要计算它们是否能够组成一个符合要求的组合。 首先,我们要拿出两张花色一样的卡片。然后处理后面3张卡片。处理时,先把后面3张卡片排个序原创 2012-12-16 12:41:35 · 239 阅读 · 0 评论 -
sicily 1381 高精度乘法。
题目:给出两个数N,M,其中N的数量级为10的100次方,M的数量级在10的4次方以内,求N和M的乘积。 分析:若是直接用乘法,那就不用放上来啦!N的位数过多,会导致溢出的,所以这里用模拟我们笔算乘法的办法来解决问题。 由于N的数量级很大,所以我们不能直接用一个整型来存储,因此可以用字符串来存。读取N和M后,就遍历M的每一位,用M的每一位来乘N的每一位。每计算出一个结果,就直接原创 2012-12-10 12:52:33 · 529 阅读 · 0 评论 -
简单的马周游问题
abc 等我晚上回去再写!先记录着!原创 2012-11-20 15:02:57 · 490 阅读 · 0 评论 -
sicily 1443 Printer Queue
题目大意就是给出一个长度为n的打印任务队列,每个任务有优先级。每次从队列头得到一个任务,如果它是剩余任务中优先级最高的,则打印它,否则放到队列尾。求出其中某个特定任务是第几个被执行的。 n 题目分析:这是一题模拟题,只要模拟出运足场景即可。 #include #include #include #include using namespace std; int a原创 2012-11-02 20:36:59 · 586 阅读 · 1 评论 -
sicily 1441 pie[S]
题目的思路是:二分法。首先将pie按照半径大小排序,找出最大的pie。计算此时区间(0,max)的中值,然后中值代表的size来分pie,如果分得的人数是比当前分pie的人数要多,则取区间的右半部分,否则,取区间的左半部分。 代码如下: #include #include #include #include #include using namespace std; const double原创 2013-04-17 10:34:36 · 714 阅读 · 0 评论