- 浏览: 32499 次
最新评论
文章列表
0903(first)
- 博客分类:
- in class
//冒泡
public class Sort {
public static void main(String[] args) {
int[] nNum=new int[]{2,5,8,9,3};
for(int i=0;i<nNum.length;i++)
{
for (int j = i+1; j < nNum.length; j++)
{
if(nNum[j]>nNum[i])
{
int temp=nNum[j];
nNum[j]=nNum[i];
nNum[i]=temp;
...
给出N个数字, 计算出最大的子段和。
Input
第一行给出一个数字 T(1<=T<=20) 代表接下来的组数.
接下来每 T 行,开始给出一个数组 N(1<=N<=100000), 接着跟着N个数字.
数据保证最后结果小于2^31.
Output
输出最大的字段和
Sample Input
2
5 6 -1 5 4 -7
7 0 6 -1 1 -6 7 -5
Sample Output
14
7
#include<iostream>
using namespace std;
#define MAX 10001
void ...
对于序列(1, 7, 3, 5, 9, 4,,有它的一些不下降子序列
如(1, 7), (3, 4,等等。这些子序列中最长的长度是4,比如子序列(1, 3, 5,。
Input
多组cas , 每组cas 两行:
第一行 输入一个数 n (n < 10000), 表示有n个数
第二行 n个数, 分别代表每个数;
Output
每个cas 一行 输出 该书数列的最长的长度 ;
Sample Input
7
1 7 3 5 9 4 8
Sample Output
4
#include<iostream>
using namespace std ...
求两字符串匹配的最长子序列
- 博客分类:
- 算法课
如果两种特征序列的公共子序列越长表示越接近,现在请你帮助计算出最长的公共特征。
输入说明:
本问题有多组测试数据,第一行就是测试数据的组数(1<=组数<=20)。对于每一组测试数据,有两行,每一行都是有大写英文字母组成的特征序列(1<=特征序列的长度<=1000)。
输出说明:
对于每一组输入,对应的输出只有一行,即最长的公共子序列的长度。
Sample Input:
1
ABDCRHGWDWSDSKJDSKDFHJKFDKJDSAFKJFDAKFDSAJFDKASDJLFLDKF
ERUDSHDFHGFLKGFGFKGFLKSAEWALUTRHGF ...
#include<iostream>
#include<string>
using namespace std;
#define MAX 1001
int nEditD[MAX][MAX];
void vInit(int nA,int nB);
void vGetEdit(string sA,string sB,int nA,int nB);
void vOut(int nA,int nB);
int min(int nA,int nB);
int get3Min(int nA,int nB,int nC);
int nDiff(char cA ...
Kruskal最小生成树
- 博客分类:
- 算法课
#include<iostream>
#include<algorithm>
using namespace std;
#define MAX 101
struct stuEdge
{
int nFrom;
int nCost;
int nTo;
};
int nInput(stuEdge stuArr[],int nN);
void vSort(int nEdge,stuEdge stuArr[]);
bool bCmp(const stuEdge &stuA,const stuEdge &stuB);
void vMem(int nArr ...
#include<iostream>
using namespace std;
#define MAX 101
#define INF 99999999
struct stuNodes
{
int nFrom;
int nCost;
int nTo;
};
void vInput(int nArry[][MAX],int nN);
int nGetMin(int nArry[][MAX],int nN);
stuNodes nFindMinCost(bool bF[],bool bT[],int nArry[][MAX],int nN);
void vOut(int ...
#include<iostream>
#define MAX 1001
#define INF 999999
struct stuNode
{
int nLeftTree;
int nRightTree;
int nPd;
};
struct stuNo12
{
int No1;
int No2;
};
void vInput(int nArr[], int nN);
void vBuildTree(stuNode stuJD[],int nArr[],int nN);
stuNo12 getTwo(bool bUse[],int nArr[],int nN);
v ...
从前有一个一望无际的海滩,海滩后面是陆地,前面是广阔的大海。海中有很多小岛(可以用一个点表示)。现在海滩上需要安装一些基站(海滩上的任意位置)这样岛上的居民就能用手机通话了,所有的基站的覆盖距离都是d,在距离d范围内的小岛都能收到基站发送的信号。
我们用笛卡尔坐标系来表示这个问题,定义x轴为海滩,x轴上方是大海,下方是陆地。现给出每个小岛的位置(用x-y坐标表示)和基站的覆盖范围d,你的任务就是写一个程序,计算出可以覆盖所有的小岛,至少需要在海滩上安装多少基站?
Input
输入包含多组数据。对每组数据,第一行包含两个整数n(1 <= n <= 1000)和d,n代表小岛数量, ...
#贪心算法(零件加工)
- 博客分类:
- 算法课
#include<stdio.h>
#include<algorithm>
#include<iostream>
using namespace std;
#define MAX 1001
struct strTime
{
int nStart;
int nEnd;
};
strTime strLing[MAX],strMach[MAX];
void vInit();
void vInput(int n);
void vSort(int n);
bool cmp(const strTime &strA,const strTime &s ...
#include <stdio.h>
#include <string>
using namespace std ;
int main()
{
int min,max ;
int n;
int inta[100000] ;
int i;
while(scanf("%d",&n)!=EOF)
{
min=1000000000;
max=0;
memset(inta,0,sizeof(inta) ) ;
int a;
for(i=0;i<n;i++)
{
scanf("%d" ...
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#define MAX 100000
void ps(int a[],int low,int high) //快速排序
{
int key,i,j;
i=low;
j=high;
key=a[low];
if(low>high) return;
while(i<j)
{
while(key&l ...
#include<iostream>
using namespace std;
#define MAX 4001
int nGetPow(int num,int pow);
int main()
{
int num,pow;
while(cin >>num >>pow)
{
nGetPow(num,pow);
}
return 0;
}
int nGetPow(int num,int pow)
{
int i,j,num1,mod;
int shuzu[MAX];
memset(shuzu,0,sizeof(shuzu));
...
#include<iostream>
#include<string>
using namespace std;
string nGetstrAB(string strA,string strB);
void vOutPut(string strRet);
int main()
{
string strA,strB,strAB;
while(cin >>strA >>strB)
{
strAB=nGetstrAB(strA,strB);
vOutPut(strAB);
}
return 0;
}
...
这一个星期下来,收获了一点东西:
9.13 细节决定成败!
9.15 一个人的能力:不管这社会有多复杂,你要始终坚持自己的道德原则,有位老师在课堂上说,他看过的黑暗多了,就是不愿在我们面前说,有些人因为小聪明而成功,那是暂时的,好的东西始终会被保留下来,社会淘汰不掉的。我们有了能力,又怎么被世界所淘汰?!
9.16 时间!做个不迟到的人,是最基本的!
感谢自己的坚持!