算法
sunnylinner
宅
展开
-
A + B + C Problem
Description已知N个不同的数a[1..N]。求能否从这些数中选出不同的三个数A、B、C,使得他们的和为S。Input多组数据,每组数据第一行有两个个整数N和S。(1 第二行有N个整数a[1], a[2], ..., a[n]。 (1 Output对于每组数据,如果可以,输出”YES”,否则输出”NO”,并换行。Sample Inpu原创 2016-03-09 17:57:51 · 587 阅读 · 0 评论 -
最长递增子序列问题的求解
最长递增子序列问题是一个很基本、较常见的小问题,但这个问题的求解方法却并不那么显而易见,需要较深入的思考和较好的算法素养才能得出良好的算法。由于这个问题能运用学过的基本的算法分析和设计的方法与思想,能够锻炼设计较复杂算法的思维,我对这个问题进行了较深入的分析思考,得出了几种复杂度不同算法,并给出了分析和证明。一, 最长递增子序列问题的描述设L=a1,a2,…,an>是n个不同转载 2016-09-20 12:06:53 · 348 阅读 · 0 评论 -
KaraTsuba乘法——高效的大数乘法
今天看Coursera课程时,看到一个牛逼的算法,叫KaraTsuba乘法。普通乘法复杂度一般都是O(n^2),而这个算法,仅有O(nlog3)。下面,我就来介绍一下这个算法。 首先来看看这个算法是怎么进行计算的,见下图:图中显示了计算5678*1234的过程,首先是拆分成abcd四个部分,然后分别计算ac, bd, (a + b)*(c+d),最后再用第三个算式的结果减去前转载 2016-09-20 08:26:01 · 10950 阅读 · 4 评论 -
N^N
题目描述夏天蚊子真多,睡不着,怎么办呢?小贤我没办法,只好坐在桌前发呆,拿着笔乱画,无意义的计算着,醒悟过来的时候,发现我算了好几个数字出来,很长很长,不过我隐约记得我是在计算N^N不过我不知道N是多少了,同时,数字也有些模糊不清,但还好,数字的位数不会出错。也就是如果我计算的是3^3=27,我可能写成了29或20之类的,但不会多或者少一位。 现在我想让你帮我看看我算的N到底是多少。输入输入样例有原创 2016-06-23 16:36:40 · 793 阅读 · 0 评论 -
VIJOS-P1156
题目描述猩猩,骆驼,还有泡泡经常喜欢在饭后到操场上散步,由于猩猩的走路姿势最突出最显眼,理所应当的成为他们中的主角,所以我的题目就说猩猩散步了。(骆驼和泡泡别有意见哈,和猩猩争啥……) 当然,话说回来,猩猩在OI上的能力也是不容低估的,你看,散步时还会想一道与此相关的问题,这是道经典的不能再经典的问题了。 在一个m×n的矩阵上,猩猩在左下角的顶点出现了,他只能沿着路径向上或者向右走,他的目标原创 2016-06-23 14:58:48 · 739 阅读 · 0 评论 -
Another kind of Fibonacci
题目描述As we all known , the Fibonacci series : F(0) = 1, F(1) = 1, F(N) = F(N - 1) + F(N - 2) (N >= 2).Now we define another kind of Fibonacci : A(0) = 1 , A(1) =1,A(N) = X * A(N - 1) + Y * A(N - 2) (N >原创 2016-06-23 13:24:47 · 963 阅读 · 1 评论 -
GCD
题目描述Given an integer N and M, you have to calculate Here GCD(N,K) means the greatest common divisor of integer N and integer K .输入The first line contains a single integer T(1≤T≤10), indicating the原创 2016-06-22 16:15:53 · 632 阅读 · 0 评论 -
Calculation
题目描述定义下列函数: 其中: 给出了A0、AX、AY、B0、BX、BY。计算S(N)输入多组输入,每组输入包括三行。 第一行一个正整数N(1<=N<=1018) 第二行和第三行各包含三个非负整数:A0 AX AY B0 BX BY其中A0,AX,AY,B0,BX,BY均不大于2x109输出输出S(N),对1000000007取模样例输入1 1 2 3 4 5 6样例输出130#inc原创 2016-06-21 23:15:52 · 1108 阅读 · 0 评论 -
矩阵
题目描述给一个n*n的矩阵A,它的每一个元素Ai,j都是整数( 0 <= i < n, 0 <= j < n )。在每一行i( 0 <= i < n )给一个右移操作,使第i行的整数整体向右移动一个位置,最右边的整数将会移动到最左端的那一列。 你可以在任意行做右移操作,这样你会得到一个新的矩阵,对于新的矩阵你当然也可以做右移操作。你的任务就是求列最小值ColMin,它是所有得到矩阵的列最大值中的最原创 2016-06-21 13:39:48 · 1059 阅读 · 0 评论 -
多项式加法
题目描述给定两个多项式P(x)与Q(x),通过链表实现它们的加法。输入有若干组,每组有2个多项式。每组输入时先输入第1个多项式,再输入第2个多项式。每组用若干对整数表示,依序每两个相邻的整数表示多项式的一项,分别是它的系数和幂。当输入的幂为负数时,表示一个多项式的结束。一个多项式中各项的次序是随机的。输出对每组中两个多项式,先输出“Case #:”,其中“#”是测试数据序号。接着在下面三行上分别输出原创 2016-06-21 11:04:30 · 1251 阅读 · 0 评论 -
矩阵
题目描述给你一个 N 行 M 列的矩阵,其中第 i 行,第 j 列的元素 Aij = 2 * i * j + 3 * i + 3 * j + 3。求第 k 小的数字。输入一行 3 个整数 N M k。0 < N, M < 1e5 0 < k < N * M + 1输出输出第 k 小的数字。样例输入2 3 3样例输出16#include <iostream>using namespace std;i原创 2016-06-20 00:25:25 · 546 阅读 · 0 评论 -
C语言大师的冒泡排序
题目描述记得当年的Yaoge刚刚看完谭老的C语言入门经典之后,大家都尊称它为C语言大师。那时他最精通的排序算法就是冒泡排序了,他的冒泡排序还和书上的不同。伪代码如下:Function BubbuleSort (Int Array[])While (Array[0..n-1] is not sorted) Do For i = 0 to n-2 If Array[i] > Arra原创 2016-06-20 00:19:18 · 1421 阅读 · 0 评论 -
字符排列问题
题目描述有n个字母,列出由该字母组成的字符串的全排列(相同的排列只计一次)。输入第一行输入是字母个数n,1<=n<=20。接下来一行输入的是待排列的n个字母。输出计算出的n 个字母的所有不同排列总数样例输入4 aacc样例输出6#include <iostream>#include <algorithm>using namespace std;int test(int s);int main()原创 2016-06-20 00:13:33 · 2069 阅读 · 0 评论 -
速算24点
速算24点题目描述速算24点相信绝大多数人都玩过。就是随机给你四张牌,包括 A(1),2,3,4,5,6,7,8,9,10,J(11),Q(12),K(13)。要求只用’+’,’-‘,’*’,’/’运算符以及括号改变运算 顺序,使得最终运算结果为24(每张牌必须且仅能用一次)。游戏很简单,但遇到无解的情况往往让人很郁闷。你的任务就是针对每一组随机产生的四张牌,判断 是否有解。我们另外规定,整个计算过原创 2016-06-19 21:01:12 · 3507 阅读 · 1 评论 -
高精度正整数乘法问题
题目描述给定任意两个高精度正整数a、b,计算a与b的乘积。输入输入文件中有若干行,每一行上有两个用字符串表示的正整数a,b。输入直到文件结束。输出对每个输入行上的两个正整数a,b,在一行上先输出形式a*b=,接着输出a与b的积。样例输入12345 6788466 345 66样例输出12345*6788466=83803612770 345*66=22770#include <iostream>原创 2016-06-19 23:07:38 · 1240 阅读 · 0 评论 -
XOR Zero
题目描述给出N个整数,求能否从这N个整数中取出任意个数(至少选一个数),使他们的XOR值等于0?输入多组数据。 每组数据第一行为一个整数N。(N<=100) 之后一行中有N个整数A[i]。(A[i]<2^63)输出对于每组数据,如果能够找到这样的集合,输出”YES”, 否则输出”NO”。样例输入3 1 2 3 1 0 3 3 5 7 2 1 1样例输出YES YES NO原创 2016-06-28 14:54:26 · 744 阅读 · 0 评论 -
蘑菇街2016校园招聘——回文串
import java.util.Scanner;/** * * ClassName:Solution * * * Description:给定一个串,通过添加一个字母将其变成“回文串” * * * @author sunnylinner */public class Solution { final String Y = "YES"; final原创 2016-03-30 13:45:26 · 454 阅读 · 0 评论 -
蘑菇街2016校园招聘——聊天
import java.util.Scanner;/** * * ClassName:Solution * * * Description:求小菇合适的起床时间 * * Scanner cin = new Scanner(System.in); * while (cin.hasNextInt()) {}//正确 * * 写 * * while(true){}/原创 2016-04-04 13:54:46 · 535 阅读 · 0 评论 -
常见算法时间复杂度和空间复杂度
原创 2016-09-20 20:45:12 · 693 阅读 · 0 评论