- 博客(15)
- 收藏
- 关注
原创 营救BFS
营救BFSbfs通常用来寻找从特定源节点出发的最短路径,dfs找到的解不是最优的,可能从多个源节点重复进行。(ZOJ1649)Angel的朋友营救angel,x为警卫,须杀死警卫才能到达其方格,费时一个单位,移动一格费时一个单位,#为墙壁。问至少需要多长时间。#include <stdio.h>#include <stdlib.h>#include <queu...
2018-03-29 17:50:29
328
原创 农田灌溉(ZOJ2412)
我写的那么完美,为什么不对!!!!!!#include <stdio.h>#include <stdlib.h> #include <string.h>int m,n;char farm[51][51];int visit[51][51];int pipe[11][4] = { {1,1,0,0},{1,0,0,1},{0,1,1,0},{0,0,...
2018-03-28 20:55:12
369
原创 油田DFS
(POJ1562)计算一块区域有多少个不同的油田,周围8个方块相邻即为一个油田。*代表没有油田,@代表有油田。#include <stdio.h>char grid[101][101];int m,n;int dir[8][2] = {{-1,-1},{0,-1},{1,-1},{-1,0},{1,0},{-1,1},{0,1},{1,1}};//相邻的8个方向 voi...
2018-03-28 10:30:24
409
原创 骨头的诱惑DFS
(ZOJ2001)判断小狗能否跑出迷宫,即在t时刻能否刚好到达出口。D代表门,W代表墙,S代表小狗。迷宫为N*M#include <stdio.h>#include <math.h>char map[9][9];int n,m,t;int di,dj;bool escape; //逃脱标志 int dir[4][2] = {{-1,0},{1,0},{0,...
2018-03-28 10:27:06
605
原创 牌型种数
牌型种数 小明被劫持到X赌城,被迫与其他3人玩牌。一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。这时,小明脑子里突然冒出一个问题:如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢? 请填写该整数,不要填写任何多余的内容或说明文字。3598180 暴力:#include <stdio.h>int main ...
2018-03-25 20:25:37
1816
3
原创 切割钢条问题
切割钢条问题给出每种长度钢条对应的价格,对于长为n的钢条,怎样切割使得总利益最大。找到一个分割点,左边不再切割,右边递归求解。自顶向下,带备忘:R[n]保存对应解,避免重复求解#include <stdio.h>#include <iostream>using namespace std;int p[] = {0,1,5,8,9,10,17,17,20,24,3...
2018-03-25 20:18:14
281
转载 二维数组指针传递
向C函数中传递指向二维数组的指针参数 先来回顾一下一维数组,一维数组的数组名即为指向该数组的指针,该指针值保存了数组存放在内存中的一块连续区域的起始地址;数组的下标表示了这片内存区域的某存储区相对于起始地址的偏移量。简单来讲就是:指向一维数组的指针,指向数据存放区域的起始位置。事实上,计算机系统的多维数组其实最终还是以一维数组的形式实现的。就N x M的二维数组来讲,设其数组名为arr...
2018-03-25 19:02:37
4294
转载 Vector类
vector类为内置数组提供了一种替代表示,与string类一样 vector 类是随标准 C++引入的标准库的一部分 ,为了使用vector 我们必须包含相关的头文件 :#include <vector>使用vector有两种不同的形式,即所谓的数组习惯和 STL习惯。 一、数组习惯用法1. 定义一个已知长度的 vector :vector< int > ivec...
2018-03-25 17:58:40
210
原创 递推与递归
递推与递归 递推像是多米诺骨牌,递归是大事化小。递推的效率更高递推:斐波那契数列例:母亲为儿子的四年大学学费准备了一笔存款,儿子每月月底取下月生活费1000元。银行年利率为1.71%,毕业时连本带息要取出1000元。则要存入多少钱。 #include <stdio.h>#define RATE 0.0171int mai...
2018-02-27 14:47:00
462
原创 枚举算法
枚举算法一.百钱买百鸡公鸡一,值钱五;母鸡一,值钱三;鸡雏三,值钱一。白钱买百鸡,问翁,母,雏各几何?#include <stdio.h>#include <conio.h>int main () { int x = 0; int y = 0; int z = 0; for (x = 0; x <= 20; x++) { for (y = 0; y <=...
2018-02-22 16:51:12
303
转载 序列求和(数值范围)
序列求和(数值问题)问题描述求1+2+3+...+n的值。输入格式输入包括一个整数n。输出格式输出一行,包括一个整数,表示1+2+3+...+n的值。注意:1 数据规模较大,不在整型范围内#include int main () { long long n = 0; scan
2017-12-27 20:56:44
564
原创 入门训练Fibonacci数列
入门训练 Fibonacci数列 时间限制:1.0s 内存限制:256.0MBFibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。输入包含一个整数n。输出一行,包含一个整数,表示Fn除以10007的余数。 说明:在本题中,答案是要求Fn除以10007的余数,因此我
2017-12-20 10:14:18
195
转载 三种距离.A*算法解八数码问题
曼哈顿距离(出租车距离)走网格线的矩形路线欧氏距离 以空间为基准的两点之间最短距离切比雪夫距离 维度为3及以上,例,出物理距离外,还要加上财力等权值。明氏距离 明科夫斯基距离 维度为1时,等价与曼哈顿距离 为2时,等价与欧式距离 3及以上,等价于切比雪夫距离汉明距离 在信息论中,两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数。换句话
2017-10-29 16:48:19
7346
1
原创 取石子
取石子 共有n个石子,每次最多取m个,两人轮番取出其中的若干个,假定小w先取,最先取完为赢,判断他是否会赢每次给对方剩下m+1的倍数,若他取y个,则取m+1-y个#include <stdio.h>int main () { int n = 0; int m = 0; int t = 0; scanf ("%d",&t); while (t--) { ...
2017-10-22 11:08:36
170
转载 字符串替换
将输入字符串中的you 替换为 we 1.scanf 输入字符串,有空格即为多个串 gets 输入有空格,仍为一个字符串 #include #include int main () { char in[1001]; //while (scanf("%s",in) != EOF) { while (gets(in)) { int len = strlen(
2017-10-21 16:48:13
165
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人