
刷题找工作
文章平均质量分 69
准备找工作的Ocean
坚持住才能变得和别人不一样
展开
-
分治法 寻找第K小元素
package sdu.ocean;public class findK { public static void main(String[] args) { int a[] = { 0, 10, 4, 1, 6, 4, 8, 9, 5, 23, 12, 65, 43 }; int b[] = new int[13]; //用于存放结果 new findK().findK原创 2011-07-16 16:24:12 · 2914 阅读 · 0 评论 -
快速排序
package sdu.ocean;public class quickSort { public static void main(String[] args) { int a[] = { 0, 10, 4, 1, 6, 4, 8, 9, 5, 23, 12, 65, 43 };//不用0位置 new quickSort().quick(a, 1, 12); for(int原创 2011-07-16 15:10:05 · 405 阅读 · 0 评论 -
分治法 求最大元和最小元 Java语言
public class findMaxMin { public static void main(String[] args) { int[] Max = new int[2];//由于Java 值传递 的原因,改为数组 int[] Min = new int[2]; int a[] = { 0, 1, 3, 4, 5, 6, 7, 2, 4, 19, 45, 23 };// 不原创 2011-07-16 11:01:48 · 2274 阅读 · 0 评论 -
归并排序
public class mergerSort { /** * @param args */ public static void main(String[] args) { // TODO 自动生成方法存根 int [] a = {5,3,6,8,2,0,9,4,12,18}; int [] b = new int [10]; if(a.length原创 2011-07-15 10:12:55 · 345 阅读 · 0 评论 -
二分法搜索
public class binSearch { public static void main(String[] args) { // TODO 自动生成方法存根 int a [] = {0 ,1,2,3,5,7,8,9,23,45,67};// 不算0位置,数组1-n int find = 9; int location = new binSearch().bSear原创 2011-07-16 08:14:38 · 470 阅读 · 0 评论 -
什么是NP问题,什么是NP hard问题,什么是NP完全问题。
http://www.cs.pitt.edu/~ztliu/wordpress/2011/05/np-problem/首先解释一下什么是NP问题,什么是NP hard问题,什么是NP完全问题。看下面的图,他们之间的关系表示的比较清楚。P Problem:这个应该最易理解,就是一个问题可以在Polynominal的时间的得到解决,当然,是对于任意input size。NP转载 2013-10-07 17:41:05 · 1600 阅读 · 0 评论 -
常用算法二(动态规划)
一、基本概念 动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二、基本思想与策略 基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能的局部解,通转载 2013-10-07 17:03:47 · 713 阅读 · 0 评论 -
常用算法三(贪心算法)
一、基本概念: 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。 贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性,即某个状态以后的过程不会影响以前的状态,只与当前状态有关。转载 2013-10-07 17:04:44 · 639 阅读 · 0 评论 -
常用算法四(回溯算法)
1、概念 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。 回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。 许多复杂的转载 2013-10-07 17:04:54 · 1349 阅读 · 0 评论 -
博弈论
一.巴什博奕(Bash Game):首先我们来玩一个比较古老的报数游戏。A和B一起报数,每个人每次最少报一个,最多报4个。轮流报数,看谁先报到30.如果不知道巴什博弈的可能会觉得这个是个有运气成分的问题,但是如果知道的人一定知道怎样一定可以赢。比如A先报数的话,那么B一定可以赢(这里假定B知道怎么正确的报数)B可以这样报数,每次报5-k(A)个数,其中k(A)是A报数的个数这样的话转载 2013-10-11 22:32:46 · 652 阅读 · 0 评论 -
关于NP-hard NP-complete问题定义典故与解释证明
NP 是 Non-deterministic Polynomial 的缩写,NP 问题通俗来说是其解的正确性能够被很容易检查的问题,这里"很容易检查"指的是存在一个多项式检查算法。例如,著名的推销员旅行问题(Travel Saleman Problem or TSP):假设一个推销员需要从香港出发,经过广州,北京,上海,…,等 n 个城市, 最后返回香港。 任意两个城市之间都有飞机直达,但票价转载 2013-10-07 17:41:17 · 2541 阅读 · 0 评论 -
常用算法五(分支限界法)
一、基本描述 类似于回溯法,也是一种在问题的解空间树T上搜索问题解的算法。但在一般情况下,分支限界法与回溯法的求解目标不同。回溯法的求解目标是找出T中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解。 (1)分支搜索算法 所谓“分支”就是采用广度优先的策略,依转载 2013-10-07 17:39:20 · 1584 阅读 · 0 评论 -
常用算法一(分治算法)
一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 任何一个可以用计算机求解的问题所需的计算时间都与其转载 2013-10-07 16:58:54 · 889 阅读 · 0 评论 -
POJ_2485(Prim算法)
HighwaysTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 18042 Accepted: 8381DescriptionThe island nation of Flatopia is perfectly flat. Unfortunately, F原创 2013-05-15 09:37:19 · 687 阅读 · 0 评论 -
POJ_1789(Prim算法)
Truck HistoryTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 14308 Accepted: 5461DescriptionAdvanced Cargo Movement, Ltd. uses trucks of different types原创 2013-05-15 08:57:42 · 630 阅读 · 0 评论 -
判断两线段是否相交
#include "stdio.h"#includeusing namespace std;struct Point{ int x; int y;};int min(int a,int b){ return a<b?a:b;}int max(int a,int b){ return a<b?b:a;}int direction(Point pa,Point pb,原创 2013-05-14 15:36:35 · 555 阅读 · 0 评论 -
POJ_3268(两次dijkstra、路径翻转即可)
Silver Cow PartyTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 9825 Accepted: 4388DescriptionOne cow from each of N farms (1 ≤ N ≤ 1000) conveniently n原创 2013-04-22 14:57:01 · 723 阅读 · 0 评论 -
POJ_1125(folyd算法)Stockbroker Grapevine
Stockbroker GrapevineTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 22690 Accepted: 12374DescriptionStockbrokers are known to overreact to rumours. You原创 2013-04-22 09:34:14 · 616 阅读 · 0 评论 -
POJ_1502(Floyd算法)MPI Maelstrom
MPI MaelstromTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 3892 Accepted: 2327DescriptionBIT has recently taken delivery of their new supercomputer, a原创 2013-04-22 10:15:52 · 700 阅读 · 0 评论 -
poj_2387(最短路径Dijkstra)
#include "stdio.h"const int maxV = 1001;const int maxE = 2001;const int maxLen = 999999;int dist[maxV];int length[maxV][maxV];int i,j;void Dijkstra(int v,int n){ bool s[maxV]; for(i=1;i<原创 2013-04-21 10:01:03 · 517 阅读 · 0 评论 -
最短路算法(写烂它,倒背如流)
Floyd算法一定要记住,探测点循环要放到最外层!!!!!!!!!!!!!!!这是由其算法本身所决定的,其每一步求出任意一对顶点之间仅通过中间节点1,2,...,k的最短距离,当1,2,...,k扩展到所有顶点时,算法解出任意一对顶点间的最短距离,故顺序自然是:for(k=1;k<n;++k) //枚举任意一对顶点由其状态转移方程来看,这个算法的顺序也很清晰,应该是先计算较小的原创 2013-04-21 09:01:38 · 698 阅读 · 0 评论 -
哥德巴赫猜想(POJ_2262)
Goldbach's ConjectureTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 32670 Accepted: 12565DescriptionIn 1742, Christian Goldbach, a German amateur mathematician, sent a letter to Leonhard原创 2013-04-18 16:23:21 · 686 阅读 · 0 评论 -
Sum of Consecutive Prime Numbers (poj_2739)
Sum of Consecutive Prime NumbersTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 15463 Accepted: 8576DescriptionSome positive integers can be represented原创 2013-04-18 16:19:58 · 639 阅读 · 0 评论 -
本原勾股数 POJ_1305
Fermat vs. PythagorasTime Limit: 2000MS Memory Limit: 10000KTotal Submissions: 1105 Accepted: 641DescriptionComputer generated and assisted proofs and verificatio原创 2013-04-18 09:49:02 · 986 阅读 · 0 评论 -
矩阵乘法和二分求阶乘 解线性递推问题(大数据的递推)
题目1081:递推数列时间限制:1 秒内存限制:32 兆特殊判题:否提交:3505解决:412题目描述:给定a0,a1,以及an=p*a(n-1) + q*a(n-2)中的p,q。这里n >= 2。 求第k个数对10000的模。输入:输入包括5个整数:a0、a1、p、q、k。输出:第原创 2013-04-06 14:18:25 · 2509 阅读 · 0 评论 -
北邮12年网研 -二叉树的层数
B 网2——二叉树的层数Accept:34 Submit:366Time Limit:1000MS Memory Limit:65536KBDescription老师有一个问题想考考mabo,但是mabo不会,所以想请你来帮帮忙。问题如下:给一个二叉树请把这个棵二叉树按层来打印。如果为原创 2013-04-04 08:47:39 · 1713 阅读 · 0 评论 -
位操作练习
题目1151:位操作练习时间限制:1 秒内存限制:32 兆特殊判题:否提交:942解决:491题目描述:给出两个不大于65535的非负整数,判断其中一个的16位二进制表示形式,是否能由另一个的16位二进制表示形式经过循环左移若干位而得到。循环左移和普通左移的区别在于:最左边的那一位经过循环左移一位后就会被移到最右边去。原创 2013-03-29 17:18:01 · 1188 阅读 · 0 评论 -
数字反转(水)
题目1089:数字反转时间限制:1 秒内存限制:32 兆特殊判题:否提交:1463解决:800题目描述: 12翻一下是21,34翻一下是43,12+34是46,46翻一下是64,现在又任意两个正整数,问他们两个数反转的和是否等于两个数的和的反转。输入: 第一行一个正整数表示测试数据的个数n。原创 2013-03-25 09:33:41 · 1560 阅读 · 0 评论 -
大整数的乘法-列表法
大整数的乘法 在计算机中,长整形(long int)变量的范围是-2147483648至2147483647,因此若用长整形变量做乘法运算,乘积最多不能超过10位数。即便用双精度(double)变量,也仅能保证16位有效数字的精度。在某些需要更高精度的乘法运算场合,需要用别的办法来实现运算。 比较容易想到的是做多位数乘法时列竖式进行计算的方法,只要写出模拟这一过转载 2013-10-07 18:59:20 · 3485 阅读 · 0 评论 -
poj_1258(Prim算法)
Agri-NetTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 31587 Accepted: 12602DescriptionFarmer John has been elected mayor of his town! One of his campa原创 2013-05-11 09:51:18 · 598 阅读 · 0 评论 -
Kruakal算法
kruskal只与边有关,适合用于稀疏图。prim算法只与点有关,适合点比较少的稠密图。kruskal算法复杂度是O(ElnV)#include "stdio.h"#include #include using namespace std;const int INF=999999;const int MaxV=1000;//primint lowcost[MaxV];in原创 2013-05-11 09:04:20 · 996 阅读 · 0 评论 -
Prim算法
prim算法(只与顶点相关) 算法描述:普利姆算法求最小生成树时候,和边数无关,只和定点的数量相关,所以适合求稠密网的最小生成树,时间复杂度为O(n*n)。算法过程:1.将一个图的顶点分为两部分,一部分是最小生成树中的结点(A集合),另一部分是未处理的结点(B集合)。2.首先选择一个结点,将这个结点加入A中,然后,对集合A中的顶点遍历,找出A中顶点关原创 2013-05-10 21:09:50 · 872 阅读 · 0 评论 -
POJ_1797(dijkstra实现)
Heavy TransportationTime Limit: 3000MS Memory Limit: 30000KTotal Submissions: 17008 Accepted: 4465DescriptionBackground Hugo Heavy is happy. After the breakdown原创 2013-04-22 16:31:25 · 1939 阅读 · 0 评论 -
POJ_2253(最短路问题变形)
FroggerTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 19919 Accepted: 6460DescriptionFreddy Frog is sitting on a stone in the middle of a lake. Suddenl原创 2013-04-21 16:26:30 · 811 阅读 · 0 评论 -
素数筛选法
#include "stdio.h"int main(int argc, char* argv[]){ bool flag[10000]; int n,count; int i,j; while(scanf("%d",&n)!=EOF) { count=0; for(i=1 ; i<=n ; i++) flag[i] = true; flag[1]=false原创 2013-04-18 15:34:48 · 491 阅读 · 0 评论 -
找出直系亲属
题目1035:找出直系亲属时间限制:1 秒内存限制:32 兆特殊判题:否提交:1226解决:485题目描述: 如果A,B是C的父母亲,则A,B是C的parent,C是A,B的child,如果A,B是C的(外)祖父,祖母,则A,B是C的grandparent,C是A,B的grandchild,如果A,B是C的(外)曾祖父,原创 2013-04-05 09:02:08 · 1534 阅读 · 0 评论 -
猴子吃坚果
题目1416:猴子吃坚果时间限制:1 秒内存限制:32 兆特殊判题:否提交:947解决:286题目描述:动物园的猴子吃坚果的顺序都是按强壮程度来定的,最强壮的吃完才能轮到下一个,现在我们给出各个猴子的名字,强壮程度,吃饱的量,然后查询对应的猴子必须要扔多少坚果才可以轮到。输入:输入有多组,对于每组输入:输入的第一行包括两个整数n(1原创 2013-04-04 16:21:01 · 1722 阅读 · 0 评论 -
手机键盘
题目1079:手机键盘时间限制:1 秒内存限制:32 兆特殊判题:否提交:1148解决:604题目描述:按照手机键盘输入字母的方式,计算所花费的时间如:a,b,c都在“1”键上,输入a只需要按一次,输入c需要连续按三次。如果连续两个字符不在同一个按键上,则可直接按,如:ad需要按两下,kz需要按6下如果连续两字符在同一原创 2013-03-25 15:27:20 · 1021 阅读 · 0 评论 -
POJ_3026(bfs+prim) (WA)
提交不通过,但是测试用例对。先放着吧,调了快一下午没找到错。。#include #include#includeusing namespace std;struct Point{ int x,y;};struct direction//上下左右方向{ int x,y;}dir[5]={{0,0},{0,-1},{0,1},{-1,0},{1,0}};const in原创 2013-05-15 20:51:01 · 662 阅读 · 0 评论 -
数论知识(from bingshen)
断断续续的学习数论已经有一段时间了,学得也很杂,现在进行一些简单的回顾和总结。学过的东西不能忘啊。。。 1、本原勾股数:概念:一个三元组(a,b,c),其中a,b,c没有公因数而且满足:a^2+b^2=c^2首先,这种本原勾股数的个数是无限的,而且构造的条件满足:a=s*t,b=(s^2-t^2)/2,c=(s^2+t^2)/2其中s>t>=转载 2013-04-18 10:31:22 · 521 阅读 · 0 评论