个人博客:https://luxialan.com

随笔分类 -  算法

摘要:描述需要在一个N × M的网格中建立一个通讯基站,通讯基站仅必须建立在格点上。网格中有A个用户,每个用户的通讯代价是用户到基站欧几里得距离的平方。网格中还有B个通讯公司,维护基站的代价是基站到最近的一个通讯公司的路程(路程定义为曼哈顿距离)。在网格中建立基站的总代价是用户通讯代价的总和加上维护基站的... 阅读全文
posted @ 2015-04-21 15:15 luxialan 阅读(343) 评论(0) 推荐(0)
摘要:描述给定字符串,求它的回文子序列个数。回文子序列反转字符顺序后仍然与原序列相同。例如字符串aba中,回文子序列为"a", "a", "aa", "b", "aba",共5个。内容相同位置不同的子序列算不同的子序列。输入第一行一个整数T,表示数据组数。之后是T组数据,每组数据为一行字符串。输出对于每组... 阅读全文
posted @ 2015-04-21 11:40 luxialan 阅读(157) 评论(0) 推荐(0)
摘要:描述给定两个日期,计算这两个日期之间有多少个2月29日(包括起始日期)。只有闰年有2月29日,满足以下一个条件的年份为闰年:1. 年份能被4整除但不能被100整除2. 年份能被400整除输入第一行为一个整数T,表示数据组数。之后每组数据包含两行。每一行格式为"month day, year",表示一... 阅读全文
posted @ 2015-04-21 11:28 luxialan 阅读(171) 评论(0) 推荐(0)
摘要:求数组中某个出现n次的数是一类很有技巧的问题,这类问题思路巧妙,但是一旦想到思路,编程异常简单快速。这求出现n次的数问题可以归结为下列常见的三个问题:问题1:数组中只有一个数出现一次,其余的数出现2次,求这个出现一次的数是多少。问题2:数组中只有一次数出现一次,其余的数出现3次,求这个出现一次的数是... 阅读全文
posted @ 2014-12-06 09:28 luxialan 阅读(156) 评论(0) 推荐(0)
摘要:插入排序:稳定最优时间复杂度:O(n) 此时数列顺序排列最差时间复杂度:O(n^2) 此时数列逆序排列插入排序的思想:固定一个元素a,分别比较a之前的元素,如果a之前的元素比a大,则元素后移,将a插入比a小的元素后面。要理解插入排序,实际上递归和不递归的思想是个相反的过程,递归的最后一层相当... 阅读全文
posted @ 2014-11-06 19:55 luxialan 阅读(116) 评论(0) 推荐(0)
摘要:矩形嵌套时间限制:3000ms | 内存限制:65535KB难度:4描述有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a#includeusing namespace std;struct ret{ int x; int y;};bool c... 阅读全文
posted @ 2014-10-31 09:17 luxialan 阅读(246) 评论(0) 推荐(0)
摘要:Maximum Depth of Binary TreeTotal Accepted:36406Total Submissions:83130Given a binary tree, find its maximum depth.The maximum depth is the number of ... 阅读全文
posted @ 2014-10-29 21:16 luxialan 阅读(119) 评论(0) 推荐(0)
摘要:单调递增最长子序列时间限制:3000ms | 内存限制:65535KB难度:4描述求一个字符串的最长递增子序列的长度如:dabdbf最长递增子序列就是abdf,长度为4输入第一行一个整数0#includeint main(){ int m,n,r,i,j; char a[10001]; int s[... 阅读全文
posted @ 2014-10-29 13:11 luxialan 阅读(143) 评论(0) 推荐(0)
摘要:超级台阶时间限制:1000ms | 内存限制:65535KB难度:3描述有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第m级,共有多少走法?注:规定从一级到一级有0种走法。输入输入数据首先包含一个整数n(1#includeint main(){ int r,i,j,n; int... 阅读全文
posted @ 2014-10-28 08:20 luxialan 阅读(143) 评论(0) 推荐(0)
摘要:最长公共子序列时间限制:3000ms | 内存限制:65535KB难度:3描述咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common Subsequence)。其定义是,一个序列 ... 阅读全文
posted @ 2014-10-27 21:50 luxialan 阅读(137) 评论(0) 推荐(0)
摘要:位运算位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,得到位串信息的结果。位运算符有:&(按位与)、|(按位或)、^(按位异或)、~ (按位取反)。其中,按位取反运算符是单目运算符,其余均为双目运算符。位运算符的优先级从高到低,依次为~、&、... 阅读全文
posted @ 2014-10-27 21:14 luxialan 阅读(174) 评论(0) 推荐(0)
摘要:6174问题时间限制:1000ms | 内存限制:65535KB难度:2描述假设你有一个各位数字互不相同的四位数,把所有的数字从大到小排序后得到a,从小到大后得到b,然后用a-b替换原来这个数,并且继续操作。例如,从1234出发,依次可以得到4321-1234=3087、8730-378=8352、... 阅读全文
posted @ 2014-10-25 14:15 luxialan 阅读(197) 评论(0) 推荐(0)
摘要:素数距离问题时间限制:3000ms | 内存限制:65535KB难度:2描述现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度。如果左右有等距离长度素数,则输出左侧的值及相应距离。如果输入的整数本身就是素数,则输出该素数本身,距离输出0输入第一行给出测试数据组数N(0... 阅读全文
posted @ 2014-10-21 13:24 luxialan 阅读(136) 评论(0) 推荐(0)
摘要:The Triangle时间限制:1000ms | 内存限制:65535KB难度:4描述73 88 1 02 7 4 44 5 2 6 5(Figure 1)Figure 1 shows a number triangle. Write a program that calculates the h... 阅读全文
posted @ 2014-10-18 22:13 luxialan 阅读(178) 评论(0) 推荐(0)
摘要:开灯问题时间限制:3000ms | 内存限制:65535KB难度:1描述有n盏灯,编号为1~n,第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依此类推。一共有k个人,问最后有哪些灯开着?输... 阅读全文
posted @ 2014-10-14 14:43 luxialan 阅读(184) 评论(0) 推荐(0)
摘要:介绍这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作。本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用。通过阅读这篇文章读者应该能够有效地使用vector容器,而且应该不会再去使用C类型的动态数组了。Vect... 阅读全文
posted @ 2014-09-25 22:29 luxialan 阅读(131) 评论(0) 推荐(0)
摘要:定义一个数组dnum用来存储一个划分中的每个数,用show函数来对一次划分进行一次输出,运用递归的方法进行整数的划分,递归的时时候考虑5种情况,分别是nm>1, n>= 1>=m和 0=#include#include//show函数用于将dnum数组中存储的一个整数划分输出//dnum中存储的是一... 阅读全文
posted @ 2014-09-25 21:37 luxialan 阅读(200) 评论(0) 推荐(0)