狂奔のC/C++
文章平均质量分 73
大道至简
All in 0&1.
展开
-
Kruskal算法介绍与实现
最小生成树(MinimumSpanning Tree,MST)或者称为最小代价生成树:对无向连通图的生成树,各边的全值总和称为生成树的权,权最小的生成树称为最小生成树。构造最小生成树的准则有三条:(1)必须只使用该网络中的边来构造最小生成树;(2)必须使用且仅使用n-1条边来连接网络中的n个顶点;(3)不能使用产生回路的边。构造最小生成树的算法主要有:克鲁斯卡尔(Krusk原创 2014-04-12 20:21:59 · 8992 阅读 · 2 评论 -
AOE网络与关键路径(二)——实现
这一篇来实现下AOE网络和关键路径~原创 2014-04-07 11:43:50 · 4775 阅读 · 2 评论 -
C语言每日小练(一)——7744问题
例:aabb输出所有形如aabb的四位完全平方数(前两位数字相等、后两位数字相等)。解:法(1):(a)构造aabb形式的数;(b)判断是否为完全平方数。代码:#include#includeint main(){ int a, b, n; double m; for(a = 1; a <= 9; a++) { for(b原创 2014-04-08 16:52:13 · 3464 阅读 · 0 评论 -
C/C++的64位整型 不同编译器间的比较
//为了和DSP兼容,TSint64和TUint64设置成TSint40和TUint40一样的数 //结果VC中还是认为是32位的,显然不合适 //typedef signed long int TSint64; //typedef unsigned long int TUint64; //ANSI C中规定long long才能表示64位 //参转载 2014-04-08 17:16:22 · 997 阅读 · 0 评论 -
C语言每日小练(一)——3n+1问题
例:3n+1问题对于任意大于1的自然数n,若n为奇数,则将n变为3n+1,否则变为n的一半。经过若干次变换,一定会使n变为1。例如3-》10-》5-》16-》8-》4-》2-》1。输入n,输出变换的次数。n不大于10的九次幂。样例输入:3样例输出:7解:直接模拟过程即可,下面是代码:#includeint main(){ int n, count = 0;原创 2014-04-08 17:48:34 · 9479 阅读 · 0 评论 -
C语言每日小练(一)——n!问题
例:输入n,计算S = 1!+2!+3!+...+n!的末6位。n样例输入:10样例输出:37913解:法(1)直接模拟阶乘求和过程,代码如下:#include#define MOD 1000000int main(){ int i, j, n, m, S = 0; scanf("%d", &n); for(i = 1; i <= n; i++)原创 2014-04-08 19:09:13 · 1914 阅读 · 0 评论 -
C语言每日小练(二)——开灯问题
开灯问题~原创 2014-04-09 07:28:00 · 8573 阅读 · 0 评论 -
C语言每日小练(三)——abc排列问题
例:用户输入:a,b,c输出: a,b,c,ab,ac,bc,abc解:此程序应不仅适用于3个字符的情况~运用递归即可解决:法1:#include#include#define MAX 100int top = 0; //缓冲区指针。int count = 1; //统计组合数。void search(char *a, char *b, int start)原创 2014-04-10 22:04:24 · 4019 阅读 · 0 评论 -
C语言每日小练(二)——蛇形填数
蛇形填数问题~原创 2014-04-09 20:49:48 · 5450 阅读 · 0 评论 -
C/C++每日小练(六)——分金币
分金币题目描述:圆桌旁坐着n个人,每人有一定数量的金币,金币总数能被n整除。每个人可以给他左右相邻的人一些金币,最终使得每个人的金币数目相等。你的任务时求出被转手的金币数量的最小值。比如,n=4,且4个人的金币数量分别为1,2,5,4时,只需转移4枚金币(第3个人给第2个人两枚金币,第2个人和第4个人分别给第1个人一枚金币)即可实现每个人手中的金币数目相等。输入格式:原创 2014-04-24 17:05:36 · 3375 阅读 · 0 评论 -
C语言每日小练(三)——竖式问题
例:找出所有形如abc*de(三位数乘以两位数,均非零。)的算式,使得在完整的竖式中,所有数字都属于一个特定的数字集合。输入数字集合(相邻数字之间没有空格),输出所有竖式。每个竖式前应有编号,之后应有一个空行。最后输出解的总数。具体格式见样例输出(为了便于观察,竖式中的空格改用小数点显示,但你的程序应该输出空格,而非小数点)。样例输入:2357样例输出:..775X..33原创 2014-04-10 22:43:11 · 3673 阅读 · 1 评论 -
C/C++每日小练(七)——墓地雕塑
墓地雕塑题目描述:在一个周长为10000的圆上等距分布着n个雕塑。现在又有m个新雕塑加入(位置可以随意放),希望所有n+m个雕塑在圆周上均匀分布。这就需要移动其中一些原有的雕塑。要求n个雕塑移动的总距离尽量小。输入格式:输入包含若干组数据。每组数据仅一行,包含两个整数n和m(2输出格式:输入仅一行,为最小总距离,精确到0.0001。样例输原创 2014-04-25 21:31:21 · 2135 阅读 · 0 评论 -
C/C++每日小练(八)——蚂蚁
蚂蚁一根长度为L厘米的木棍上有n只蚂蚁,每只蚂蚁要么朝左爬,要么朝右爬,速度为1厘米/秒。当两只蚂蚁相撞时,二者同时掉头(掉头时间忽略不计)。给出每只蚂蚁的初始位置和朝向,计算T秒之后每只蚂蚁的位置。输入格式:输入的第一行为数据组数。每组数据的第一行为3个正整数L、T、n(0输出格式:对于每组数据,输出n行,按输入顺序输出每只蚂蚁的位置和朝向(Turing表示正原创 2014-04-27 00:58:20 · 3519 阅读 · 0 评论 -
AOE网络与关键路径(一)
1、与AOV网络密切相关的是AOE网络。如果在DAG中用有向边表示一个工程的各项活动,用有向边上的权值表示活动的持续时间,用顶点表示事件,则这种有向图叫做用边表示活动的网络(Activity On Edge),简称AOE网络;2、由于整个工程只有一个开始点和一个完成点,所以称开始点(入度为0)的点为源点,称结束点(出度为0)为汇点;3、AOE网络在某些方面(如工程估算)非常有用,例如,原创 2014-04-07 00:24:12 · 11438 阅读 · 0 评论 -
AOV网络与拓扑(二)——实现
例:对于输入的有向图进行拓扑排序,并输出一个拓扑有序序列;如果存在有向环,则给出提示信息。首先输入顶点个数n和边数m;然后输入每条边,输入0 0结束;顶点序号从1开始记起。样例输入:6 81 21 42 63 23 65 15 25 66 81 31 22 53 44 24 65 45 60 0样例输出:5原创 2014-04-05 17:04:30 · 2183 阅读 · 1 评论 -
链表初解(二)——双链表的创建、删除、插入
下面是基本的双链表操作,由于双链表有两个方向,所以在删除和插入节点时,可以节省一个指针,只用一个链表上的指针和一个待操作的指针即可完成插入和删除;同时也要注意在编写双链表时对情况的判断要仔细,否则很容易出错~#includeusing namespace std;typedef struct student{ int data; struct student *next;原创 2014-03-28 23:49:20 · 1710 阅读 · 0 评论 -
链表初解(三)——约瑟夫环之循环链表实现
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。现编写循环链表程序来实现约瑟夫环问题并输出每次出列的结果~用循环链表模拟此过程即可:1、建表;2、模拟出列规则。下面还是老套路,直接贴上源码+注释~原创 2014-03-29 01:54:23 · 3540 阅读 · 0 评论 -
链表初解(四)——队列的入队和出队
自己复习了一下简单队列的基本操作,其中要注意的是队头和队尾要始终保持位置正确~还是老习惯,上代码+注释啦~Code:#includeusing namespace std;typedef struct node{ int data; struct node *next;}node;//定义指针结构typedef struct queue{ node *first, *原创 2014-03-29 10:47:30 · 4874 阅读 · 0 评论 -
链表初解(一)——单链表的创建、删除、插入、测长、排序、逆置
由于考试需要,复习一下单链表的各种常见操作,直接上代码+注释,需要的可以参考下哈~Code:#includeusing namespace std;typedef struct student{ int data; struct student *next;}node;//创建单链表node *create(){ node *head, *p, *s; int x原创 2014-03-28 21:59:15 · 1950 阅读 · 3 评论 -
实现DFS之“油田”
“油田”问题是一个比较经典的体现DFS思想的题目,经过学习,对DFS也有了一点理解,下面介绍下这个题目~题目来源:Mid-Central USA 1997,ZOJ1709,POJ1562题目描述:GeoSurvComp地质探测公司负责探测地下油田。每次GeoSurvComp公司都是在一块长方形的土地上来探测油田。在探测时,他们把这块土地用网格分成若干个小块,然后逐个分析每块原创 2014-04-01 22:57:59 · 3965 阅读 · 2 评论 -
实现DFS之“骨头的诱惑”
深度优先搜索(DFS)是一个递归过程,有回退过程。下面是一道OJ上的题目,借此来实现下DFS~题目来源:Zhejiang Provincial Programming Contest 2004,ZOJ2110题目描述:一只小狗在一个古老的迷宫里找到一根骨头,当它叼起骨头时,迷宫开始颤抖,它感觉到地面开始下沉。它才明白骨头是一个陷阱,它拼命地试着逃出迷宫。迷宫是一原创 2014-04-01 20:42:07 · 2668 阅读 · 1 评论 -
实现DFS之“农田灌溉”
这也是一道利用了DFS的题目,先说下我的思路:用一个二维数组记录每个字母所代表的含义(管道方向),用另一个二维数组记录4个方向的变换坐标;随后利用经典的DFS递归遍历即可~(还要注意在方向的处理上......原创 2014-04-02 19:38:29 · 2040 阅读 · 0 评论 -
实现BFS之“营救”
广度优先遍历(Breadth First Search,BFS)是一个分层的搜索过程,没有回退过程,是非递归的。DFS与BFS的小秘密:1、深度优先搜索算法的思路很简单,比较好理解,但得到的解不是最优的;而广度优先搜索则恰恰相反;2、如果节点有无穷多个,深度优先搜索算法在某处分支可以无限搜索下去却找不到解,这时我们可以采用有界深度优先搜索~原创 2014-04-03 15:38:33 · 2193 阅读 · 1 评论 -
C语言每日小练(四)——勇者斗恶龙
勇者斗恶龙你的王国里有一条n个头的恶龙,你希望雇佣一些骑士把它杀死(砍掉所有的头)。村里有m个骑士可以雇佣,一个能力值为x的骑士可以砍掉恶龙一个致敬不超过x的头,且需要支付x个金币。如何雇佣骑士才能砍掉恶龙的所有头,且需要支付的金币最少?注意,一个骑士只能砍一个头(且不能被雇佣两次)。输入格式:输入包含多组数据。每组数据的第一行为正整数n和m(1输出格式:对于每组数据,原创 2014-04-19 10:05:42 · 3487 阅读 · 0 评论 -
AOV网络与拓扑(一)
一、活动网络之AOV:1、活动网络可以用来描述生产计划、施工过程、生产流程、程序流程等工程中各子工程的安排问题。活动网络可分为两种:AOV网络和AOE网络;2、实际上,可以用有向图来表示一个工程,在这种有向图中,用顶点表示活动,用有向边来表示活动u必须先于活动v进行。这种有向图叫做顶点表示活动的网络(Activity On Vertices),记作AOV网络;3、在AOV网络中,由于具原创 2014-04-05 15:44:06 · 3977 阅读 · 0 评论 -
C/C++每日小练(五)——突击战
突击战你有n个部下,每个部下需要完成一项任务。第i个部下需要你花Bi分钟交代任务,然后他会独立地、无间断地执行Ji分钟后完成任务。你需要选择交代任务的顺序,使得所有任务尽早执行完毕(即最后一个执行完的任务应尽早结束)。注意,不能同时给两个部下交代任务,但部下们可以同时执行他们各自的任务。输入格式:输入包含多组数据,每组数据的第一行为部下的个数N(1输出格式:对于每组数据原创 2014-04-20 11:25:36 · 2008 阅读 · 0 评论 -
sprintf函数的使用
这几天总遇到sprintf,下面自己来小小地总结下~srpintf()函数的功能非常强大:效率比一些字符串操作函数要高;而且更具灵活性;可以将想要的结果输出到指定的字符串中,也可作为缓冲区,而printf只能输出到命令行上~头文件:stdio.h函数功能:格式化字符串,将格式化的数据写入字符串中。函数原型:int sprintf(char *buffer, const char *原创 2014-04-05 19:25:41 · 15184 阅读 · 0 评论 -
Kruskal算法实例练习(一)
Kruskal算法练习例:剑鱼行动题目来源:ZhejiangUniversity Local Contest 2002,Preliminary,ZOJ1203题目描述:——给定平面上N个城市的位置,计算连接这N个城市所需线路长度总和的最小值。输入描述:——输入文件中包含多个测试数据。每个测试数据的第1行为一个正整数N,0≤N≤100,代表需要连接的城市数目;接下来有N行,每原创 2014-04-13 11:11:27 · 4486 阅读 · 0 评论