随笔分类 -  ACM篇

执着==成功
摘要:http://www.blogjava.net/dongwq/archive/2009/10/25/299653.html 阅读全文
posted @ 2011-03-29 16:21 聊聊IT那些事 阅读(265) 评论(0) 推荐(0) 编辑
摘要:dijkstra 1 #include"iostream" 2 using namespace std; 3 double map[1010][1010]; 4 int visit[1010]; 5 double used[1010]; 6 int k; 7 double _max=0; 8 int i,j; 9 int n,m,a,b;10 int main()11 {12 13 while(scanf("%d",&n)!=EOF)14 {15 memset(map,0,sizeof(map));16 for(i=1;i<=n;i++)1 阅读全文
posted @ 2011-03-22 16:54 聊聊IT那些事 阅读(832) 评论(0) 推荐(0) 编辑
摘要:#include"stdio.h"#include"stdlib.h"#define MAX_VEXTEX_NUM 20 //定义顶点的最大值#define M 20#define STACK_INIT_SIZE 100 //定义栈的大小 100#define STACKINCREMENT 10 //定义栈的增量 10#define OK 1#define ERROR 0typedef int ElemType; //定义栈顶元素类型typedef struct ArcNode{ int adjvex; //该弧所指向的顶点的位置 struct ArcN 阅读全文
posted @ 2011-03-18 13:22 聊聊IT那些事 阅读(464) 评论(0) 推荐(0) 编辑
摘要:View Code 1 //kmp算法2 #include"iostream"3 using namespace std;4 char s[10000001];5 int next[100001];6 int L;7 int i,j;8 void Index_kmp()9 {10 while(i<L) //kmp核心算法11 {12 if(j==0||s[i]==s[j]) //继续比较后继字符 13 { ++i; ++j; next[i]=j; }14 else15 j=next[j]; //串向右移动16 }17 }18 int main()19 {20 whil 阅读全文
posted @ 2011-03-15 20:26 聊聊IT那些事 阅读(299) 评论(0) 推荐(0) 编辑
摘要:44 #include"iostream"45 #define M 1000 //适合数据量小的字符串,那么字符串长度过大时又如何处理?!46 using namespace std;47 int c[M][M];48 int Max(int a ,int b)49 {50 return a>b?a:b;51 }52 void LCD(char aa[], char bb[], int x, int y) //核心53 {54 int i,j;55 for(i=0;i<=x;i++)56 c[i][0]=0;57 for(j=0;j<=y;j++)58 c 阅读全文
posted @ 2011-03-15 19:38 聊聊IT那些事 阅读(1204) 评论(0) 推荐(0) 编辑
摘要:http://acm.pku.edu.cn/JudgeOnline/problem?id=1423n!=(log10(sqrt(4.0*acos(0.0)*n))+n*(log10(n)-log10(exp(1.0)))+1);n==1除外 阅读全文
posted @ 2011-03-12 16:56 聊聊IT那些事 阅读(182) 评论(0) 推荐(0) 编辑
摘要:<本文中排序都是采用的从小到大排序>一、对int类型数组排序intnum[100];Sample:intcmp(constvoid*a,constvoid*b){return*(int*)a-*(int*)b;}qsort(num,100,sizeof(num[0]),cmp);二、对char类型数组排序(同int类型)charword[100];Sample:intcmp(constvoid*a,constvoid*b){return*(char*)a-*(int*)b;}qsort(word,100,sizeof(word[0]),cmp);三、对double类型数组排序(特别 阅读全文
posted @ 2011-03-12 16:52 聊聊IT那些事 阅读(403) 评论(0) 推荐(0) 编辑
摘要:View Code 1 /*给定一个八进制的小数题目要求你把它转换为十进制小数,转换后小数的位数是转换前八进制小数位数的3倍且不输出末尾无意义的零(即后置零). 我采用的方法是乘10然后对8取整(现在假设将p进制的小数转换为n进制,同样采用乘n取整:),每转换一位,都必须从最低位s[len-1]开始至小数的最高位(即小数点后的一位),每次计算积 g=a[j]*n+k(其中k为下一位积的进位),本位进位数 k=g/p,积在本位存入 s[j]=g%p;最后的整数k作为转换的一位存放于转换结果字符串中。*/ 2 #include"iostream" 3 #include" 阅读全文
posted @ 2011-03-06 18:43 聊聊IT那些事 阅读(419) 评论(0) 推荐(0) 编辑
摘要:View Code //POJ 3983 第二届顶嵌杯决赛A题 计算4个数等于24//搜索 数据较小,不用剪枝就过了//利用类似层叠那样,每运算一次,就合并两个数,所以少一个数,每次计算的值都保存在curVal中//注意浮点数1/3 *3 会等于1//格式化输出时用到sprintf,挺不错的#include<stdio.h>#include<string.h>#include<math.h>#define bool intint option[5];int order[5];float number[5];float curVal[4][5];//输出时用到 阅读全文
posted @ 2011-03-04 16:33 聊聊IT那些事 阅读(686) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/luxuejuncarl/archive/2007/05/03/1595192.aspx(借鉴)~**~View Code 函数的调用会花掉很多时间。定义一个数组,充分利用数组的下标和值。如int a[1000],把下标和值都利用上。#include<iostream>using namespace std;#define MAX 10003int main(){ int i, b, sum, a[MAX]={0}; for(i=1; i<MAX; i++) { b = sum = i; while(b) { sum += b % 1 阅读全文
posted @ 2011-03-03 20:55 聊聊IT那些事 阅读(385) 评论(0) 推荐(0) 编辑
摘要:一、算法思想  如算法名称那样,深度优先搜索所遵循的搜索策略是尽可能“深”地搜索树。它的基本思想是:为了求得问题的解,先选择某一种可能情况向前(子结点)探索,在探索过程中,一旦发现原来的选择不符合要求,就回溯至父亲结点重新选择另一结点,继续向前探索,如此反复进行,直至求得最优解。深度优先搜索的实现方式可以采用递归或者栈来实现。   由此可见,把通常问题转化为树的问题是至关重... 阅读全文
posted @ 2010-11-12 11:24 聊聊IT那些事 阅读(332) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示