自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (9)
  • 收藏
  • 关注

原创 Prim算法实现(详细伪码)

S集存放最小生成树的顶点。lowcost[j] :j->s集的最小权值closest[j]: j在S集中的邻接顶点T集合:存放最短路struct enode{    int weight;//边权    int u,v;//相关联的2点}; 实现要点:1.找出lowcost中的最小值(j->s集的最小权)2.选取(j,closest[j])[(v-s)-

2009-07-31 10:28:00 2384

原创 【Folye】算法实验题12.1 自动应答器

这次是用Folye算法实现的。发现由于使用Folye求多点最短路只要调用一次函数。如果用Dijkstra求则要多次调用函数,初始化数组,会使程序运行时间变长。所以说,求多点最短路,最好还是使用Folye算法。#include using namespace std;#define NUMOFPOINT 301#define INFINITE 99999999vo

2009-07-31 08:40:00 1636 2

原创 【Dijkstra】算法实验题12.1 自动应答器

搞了半天终于把这题用Dijkstra算法搞定了!一天的辛苦没有白费。其实这个题目还可以用polye算法实现。。。这就是明天的任务了!!!! 题目:算法实验题12.1 自动应答器★问题描述Ares的舍友Rot是个很守时却又很健忘的人,每一次他要去一个地方都必须算清楚从起点到终点最少要花多少时间。起初,Ares积极地回答Rot的每一次询问,终于有一天,厌烦的他决

2009-07-30 20:54:00 1452

原创 FOJ 1408 位图

此题还是BFS的思想。对每个为1的点进行BFS.若BFS的值小于原来的,则进行替换。这种题目注意格式问题了。。。不要多个空格。。。。 #include #include using namespace std;#define X 200#define Y 200struct Point_Struct{ int x; int y; in

2009-07-29 22:00:00 734

原创 FOJ 1205 小鼠迷宫问题

此题利用的是图的广度优先遍历的思想。先找出最短路径。然后再从终点递归回朔求解。 其实此递归过程可以写成栈,会更加节省时间。 下面是我的代码。。。。。 #include #include #include using namespace std;#define X 100#define Y 100#define DISABLE_SIGN -1

2009-07-29 20:59:00 950

原创 A^B mod C代码实现!

终于过了。。。不容易呀。。。。用的就是前面总结的知识,终于把它转化为代码了。。。。 #include #define LL unsigned long long int//a*b mod cinline LL MulAndMod(LL a, LL b,LL c){ LL val,pre,shl_b; pre = a%c; shl_b = b; val

2009-07-29 19:21:00 849

原创 N塔问题的分析。

首先我们来讲三塔问题。递推公式是f(n) = 2f(n-1)+1首先我们来讲下这个式子是怎么推出来的。 我们要把第一个塔上的盘子全部移动到最后一个塔上面。假设有n个盘子。那么,就需要先把n-1个盘子移动到第二个塔上面,然后把最大的一个盘子移动到第3个塔上面。最后再把n-1个盘子移动到第三个塔上面。 所以这样就得出了f(n) = f(n-1) + 1 + f(

2009-07-29 08:48:00 1330 1

原创 费马小定理

费马小定理Ap-1 mod p = 1p为素数。

2009-07-28 15:40:00 650

原创 A^B mod C的分治思想

A^B mod C假设01.使用最原始的方法是把A^B先求出来,最后mod C求出值。但是这种方法效率低,时间复杂度为O(b)而且a^b必须小于n才不会溢出。具有很大的局限性。 2.改进方法一:假设A>C,那么存在A^B mod C = (A mod C)^(B mod C)这种情况用在A>C的情况下非常适用,但是当A所以最坏的情况下,还是需要a^b必须小于n才不会

2009-07-28 09:10:00 2051

原创 【收藏】A^B mod C代码

 #includeunsigned long long mul(unsigned long long a,unsigned long long b,unsigned long long c){ unsigned long long ret=0,tmp=a%c; while(b) { if(b&0x1) if((ret+=tmp)>=c) ret-

2009-07-27 21:25:00 993

原创 模运算的技巧

模运算规则, 模运算与基本四则运算有些相似,但是除法例外。其规则如下    (a + b) % n = (a % n + b % n) % n             (1)    (a - b) % n = (a % n - b % n) % n             (2)     (a * b) % n = (a % n * b % n) % n             (3)    ab

2009-07-27 11:22:00 978

原创 x86 C中各种整型表示的范围

long 型数据表示范围表示数值区间:【-2147483648,2147483647】注:在x86机子上面int和long表示的范围相同。 long long 型表示范围【-9223372036854775808,9223372036854775807】

2009-07-27 11:00:00 758

原创 求A^B mod C的主要公式

A*B mod C=((A mod C)*(B mod C) mod C A^B mod C=(A mod C)^(B mod C) mod C

2009-07-27 10:57:00 965

原创 递归经典简单问题之猴子吃桃

猴子第一天摘下若干桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。 我们可以很容易的得出递推公式f(n-1) = (f(n)+1)*2只要在n=1的时候return就ok啦 #include int taozi(in

2009-07-27 10:08:00 1062

原创 KMP之完全版

#include #include void getnext(char str[],int next[]){ next[0] = -1; int i=0; int j=-1; while (i<strlen(str)) { if (j==-1||str[i]==str[j]) { i++; j++; next[i] = j;

2009-07-27 09:51:00 676

原创 KMP之获取next表。

代码如下,自己看书去理解吧,哈哈! void getnext(char str[],int next[]){ next[0] = -1; int i=0,j=-1; while (i<strlen(str)) { if (j==-1||str[i]==str[j]) { i++; j++; next[i] = j; } else

2009-07-27 08:56:00 615

原创 FZU数据结构精品课程 2.1 选举问题

实验题2.1 选举问题问题描述:某城市正在进行一场市长选举,选民将要选的人的名字,写在很选票上,最后统计选票,确定最后的市长人选(初步选举)。实验任务:给定一组选票,求出市长的人选,及所得的选票数。数据输入:由文件input.txt给出输入数据。每行给出一组字符串(不含空格),表示所选择的人选的名字。字符串长度不超过30个字符。(最多有10000组字符串)。结果

2009-07-26 11:10:00 646

原创 FJNU OJ 2072粉刷迷宫。

这一题是一道搜索题。和以前做过的最大黑区域有着很大的相似之处。都是利用递归进行搜索。但是最大的不同就是,粉刷迷宫由于要先求出可以和外界相通的迷宫。所以必须从最外围进行搜索,然后标记出可以和外界相通的路。最后对内部需要粉刷的墙壁和外部需要粉刷的墙壁进行统计。最后得出的结果就是总共需要粉刷的墙壁了。 其实这题还可以用栈来做。算法思想见严蔚敏的数据结构的栈那一章。最后提到

2009-07-26 09:15:00 1020

原创 FOJ 1589 自动机

这题主要考的是队列的应用。。。嘿嘿,我偷懒了,用了STL的deque为什么不用queue呢??因为经过查找发现queue没有清空队列的成员函数。。不符合题目的要求。。。 代码就简单了。。 #include #include using namespace std;int main(){ int m,n; char command[10];

2009-07-24 01:46:00 602

原创 栈的应用之表达式运算。

 因此,从原表达式求得后缀式的规则为:<a onclick="function onclick(){MM_openBrWindow(../../../flash/chap03/3-3-7.swf,数据结构,width=400,height=390)}" href="javascript:;">  1) 设立运算符栈;  2) 设表达式的结束符为"#",预设运算符栈的栈底为"

2009-07-24 00:44:00 614

原创 FOJ 1042 Ackermann Function

最后自己得出的结论,双递归的深度不能超过3.否则层数将会以难以想象的速度趋向正无穷大!! 这题Ackerman函数是经典的一个双递归函数。这题其实主要目的就是要让我们了解双递归函数的执行过程。但是我们的代码当中并没有用到递归函数,这是为什么呢??因为根据推倒可以得出,当m=1的时候可以推导出2+n当m=2的时候可以推导出3+n*2当m=3的时候可以推导出sum

2009-07-23 19:20:00 880

原创 FOJ 1068 An Interesting Set

还是题意的理解。最开始以为set集里面最大的值是500;一直错。。后来才发现是set里面的元素个数最多为500....差了很多。。。。 方法是用打表的方法。由于1-9必符合条件。所以先添加到表中,由于10=5*2也是,也添加到表中。11肯定不是了,那么就从12开始。先判断i是否是表中已经有的元素*2,如果是,直接加入表中。如果不是,再进行判断,是否各位数

2009-07-23 11:15:00 873

原创 FOJ 1067 Running Length Code

很简单的一个问题,但是由于最开始题目看不懂。。。。弄了好久。。就是要让你统计连续0 1的个数,然后和它的值(比如0,值就为0,1,值就为1)组成一个byte也就是比如0 0 0 0 0 0 0那么存在有7个0,组成的byte值就是00000111又比如1 1组成的byte值就是10000010化成10进制就是所得的数。还要注意Suppose that the lengt

2009-07-23 08:32:00 823

原创 FOJ 1157 Crazy Tea Party

 等差数列求和的公式忘记了。、、、、无语吧。。。算了,小数让计算机来算。。回家复习一下。。。 思路:假设123456  若不构成环,就需要变成654321则根据冒泡法排序可以计算出次数为(n*(n-1)+1)/2也就是5+4+3+2+1如果构成环,则最终应该变为321654这样所需的次数最少那么冒泡排序的次数就是((n/2*(n/2-1)+1)/2)*2

2009-07-22 21:49:00 569

原创 FOJ 1082 最大黑区域

这题做的都要哭出来了。。。。。早上跑跑卡丁车的题目做了几遍都没过。。。。没有比那个题目再简单的了。回去重新写遍代码就AC....后来看论坛上面大牛指点,原来是数组开的不够大。。。郁闷,竟然没有Runtime ERROR.... 这题原来用一种很挫的方法做。。。后来发现考虑不够全面。。。。想到连续的1区域其实可以看做联通图。然后用图的深度优先遍历就可以解决问题

2009-07-22 16:03:00 1251

原创 FOJ 1685 跑跑卡丁车

水都不能一次过,非常非常的郁闷。。。回来重写一遍代码就过了。。。什么人品这是。。。。排序,相除。 #include #include using namespace std;bool v_sort(int a,int b){ return a>b;}int main(){ int m,n; int speed[1002]; int t

2009-07-22 12:50:00 746

原创 FOJ 1411 最长配对子串

还是使用栈,如果存在不匹配的括号,那么这些括号最后都会剩余在栈中。只要在压入栈的同时,带入这个符号在字符串的位置。这样我们最后就可以根据栈中剩余的符号,来分割原来的字符串,并且也很容易取到最长的匹配。 本程序一次性AC,真的是没有想到。。。写代码前理清思路,规范代码真的很重要。。很搓的代码一般是不容易通过的。。要是通过了,说明你人品不错。连续通过3题。你就可以考虑去买彩

2009-07-22 00:02:00 1448 2

原创 FOJ 1402 猪的安家

这道题目的基本思想就是必须求前n-1个数的最大公约数。 比如这边为了方便大家理解,给出一组测试数据。 33 15 17 210 1 这组数据的最终结果是121下面我们就来分析一下。 定义一个函数gongbeishu()求前n-1项的最小公倍数。首先,我们定义变量 gbs 表示前n-1个数的最小公倍数。定义sum来表示程序运行中猪的头数。初始化su

2009-07-21 20:51:00 1053

原创 FOJ 1481 环串

这题原来想的太复杂了。。。。其实用暴力很容易解决。。原来想用kmp比较。。可是比较来比较去,判断的条件就是不符合。。。搞的郁闷一个早上。。。 以后象字符串环的基本都可以用扩展的方法来做了。 #include #include int main(){ char str0[201]; char str0_ex[603]; char str1[20

2009-07-21 20:30:00 682

原创 FOJ 1476 矩形的个数

数学题,要注意精度问题!OJ支持到long long#include int main(){ long n,m; long i,j; long long sum; while (scanf("%ld%ld",&m,&n)!=EOF) { sum = 0; for (i=1;i<=m;i++) for (j=1;j<=n;j++)

2009-07-21 16:16:00 694

原创 FOJ 1076 穿越沙漠

逆向思考。但是最后路程会多出来,必须减去多出来的那部分。 #include int main(){ int n,k; double dist; double orl; int i,j; while (scanf("%d", &k) != EOF) { for (j=0;j<k;j++) { scanf("%d", &n);

2009-07-21 11:56:00 707

原创 FOJ 1002 HangOver

纯粹的精度题。用了点偷鸡的方法,嘿嘿。。 #include int main(){ double i,j; double length; float inp; double arr[299]; int k; for (j=2.0;j<301.0;j++) { length = 0; for (i=j;i>1.0;i=i-1.0)

2009-07-21 11:51:00 633

原创 FOJ 1207 半数集问题

思想为递归的思想。注意半数集不是多重集。集合中已经有的元素不再添加到集合中。 必须注意重复问题!由于0故可能产生重复的是一个2位数例如30->1230和30->230->1230相同。或者60-(添加24)>2460-(添加1)>12460和60-(添加4)>460-(添加2)>2460-(添加1)>12460在一位数y=x%10的半数集中已经产生。这样就必须剔

2009-07-20 19:40:00 1160

原创 FOJ 1004 Number Triangle

思路就是从上加到下。求最后一排数的最大值。 貌似还可以用DP来做。。。不过那东西还不会。。。继续学习。。 #include #include int main(){ int sjx[1001][1001]; int i,j,n,pos; int max; int a,b; while (scanf("%d", &n)!=EOF) { m

2009-07-20 18:04:00 877

原创 FOJ 的一个跨站~~orz~~~

http://acm.fzu.edu.cn/user.php?name=xiaoc 不过Recent Ranklist这个页面不存在问题。

2009-07-20 12:02:00 478

原创 FOJ 1551 猪猪玩牌

其实只要统计被借牌后不足平均数的牌堆就可以了。这里是重头开始借牌的。还是水题。。水题都水不过别人。。。 #include int main(){ int arr[101]; int n; int sum,i,avg,r; int count; while (scanf("%d", &n)!=EOF) { sum = 0; coun

2009-07-20 11:58:00 606

原创 FOJ 1706 括号表达式

又是很挫的代码,很水的题目。。。看来我只能做水题了。。。。具体思想是用栈来实现。 注意最后如果括号不匹配,必定是)(的形式。知道下面该怎么做了吧。。。 #include int main(){ char str[10001]; char stack[10001]; int p1,p2,p3,p4; char pp3[10001]; cha

2009-07-20 09:47:00 586

原创 FOJ 1557 Tennis Score Board

不多说了,又是一水题。下午Time那题过不了,真是郁闷。。那么搓的代码能过才怪。。。。 这题主要是程序流程要写清楚了。。其他没什么需要注意的。#include #include int main(int argc, char* argv[]){ int n,m,i,j; int flag_a,flag_b,status; int score_a,

2009-07-19 19:58:00 594

原创 FOJ 1024 Simple Computer

搞了一个早上,代码有点搓。。。。由于判断while退出的条件是HLT,而我却画蛇添足加了个PC>32的条件。导致了几次的Wrong Answer 其实题目很简单,就是实现一些简单的运算罢了,主要还是对题目的理解。 下面是指令的翻译 000xxxxx   STA x   把运算器的值存入内存x store the value of the accu into memo

2009-07-19 11:14:00 758

原创 树的学习笔记。

一、在二叉树的第 i 层上至多有 2i-1 个结点(i≥1)。二、深度为k的二叉树中至多含有 2k-1 个结点,(k≥1)。三、对任何一棵二叉树 T,如果其终端结点数为,度为2的结点数为,则    = + 1四、具有n个结点的完全二叉树的深度为 log2n+1。五、如果对一棵有 n 个结点的完全二叉树(其深度为 log2n+1)的结点按层序(从第1层到第 log2n+1 层,每层从

2009-07-18 23:54:00 542

dsniff安装教程

dsniff安装教程,非常详细的,绝对有用!

2009-09-25

R1762_R2632_R2700 RGNOS10.2配置指南

R1762_R2632_R2700 RGNOS10.2配置指南R1762_R2632_R2700 RGNOS10.2配置指南

2009-09-25

锐捷RSR50系列路由器用户安装手册V1.1

锐捷RSR50系列路由器用户安装手册V1.1锐捷RSR50系列路由器用户安装手册V1.1锐捷RSR50系列路由器用户安装手册V1.1

2009-09-25

RG-RSR系列路由器RGNOS10.3配置手册

RG-RSR系列路由器RGNOS10.3配置手册RG-RSR系列路由器RGNOS10.3配置手册

2009-09-25

RG-NPE50系列路由器RGNOS10.3版本命令手册

RG-NPE50系列路由器RGNOS10.3版本命令手册RG-NPE50系列路由器RGNOS10.3版本命令手册RG-NPE50系列路由器RGNOS10.3版本命令手册RG-NPE50系列路由器RGNOS10.3版本命令手册

2009-09-25

NBR 系列快速安装手册

NBR 系列快速安装手册NBR 系列快速安装手册NBR 系列快速安装手册NBR 系列快速安装手册

2009-09-25

最好最全的ACM模板

最好最全的ACM模板最好最全的ACM模板最好最全的ACM模板最好最全的ACM模板最好最全的ACM模板最好最全的ACM模板最好最全的ACM模板最好最全的ACM模板最好最全的ACM模板

2009-09-16

U盘修复的方法!绝对有用!

U盘修复的方法!绝对有用!U盘修复的方法!绝对有用!U盘修复的方法!绝对有用!

2009-08-25

RG-SAM安全计费管理系统操作手册

RG-SAM安全计费管理系统操作手册RG-SAM安全计费管理系统操作手册RG-SAM安全计费管理系统操作手册RG-SAM安全计费管理系统操作手册

2009-08-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除