- 博客(12)
- 资源 (1)
- 收藏
- 关注
原创 Prim输出无向图中所有的最小生成树
思路: 给出n个顶点m条边。一棵最小生成树中有n-1条边,所以在m条边中选n-1条边判断能否构成最小生成树,如果能则直接输出。 判断是否能构成最小生成树的条件是 当前的n-1条边的权值的和是否是最小生成树的权值的和(代码里的ans)。 步骤: 先进行一次prim,只是为了求出MST的权值ans。 再对m条边进行深搜,当选中n-1条边时判断是否能构成最小生成树。代码:#include<std
2017-12-21 21:36:25 1910 3
原创 HDU - 1254 推箱子
推箱子是一个很经典的游戏.今天我们来玩一个简单版本.在一个M*N的房间里有一个箱子和一个搬运工,搬运工的工作就是把箱子推到指定的位置,注意,搬运工只能推箱子而不能拉箱子,因此如果箱子被推到一个角上(如图2)那么箱子就不能再被移动了,如果箱子被推到一面墙上,那么箱子只能沿着墙移动. 现在给定房间的结构,箱子的位置,搬运工的位置和箱子要被推去的位置,请你计算出搬运工至少要推动箱子多少格.
2017-12-29 21:51:53 659
原创 HDU - 1254 推箱子(BFS+优先队列)
推箱子是一个很经典的游戏.今天我们来玩一个简单版本.在一个M*N的房间里有一个箱子和一个搬运工,搬运工的工作就是把箱子推到指定的位置,注意,搬运工只能推箱子而不能拉箱子,因此如果箱子被推到一个角上(如图2)那么箱子就不能再被移动了,如果箱子被推到一面墙上,那么箱子只能沿着墙移动. 现在给定房间的结构,箱子的位置,搬运工的位置和箱子要被推去的位置,请你计算出搬运工至少要推动箱子多少格.
2017-12-29 21:47:50 1724 2
原创 FZU - 2191 完美的数字
Bob是个很喜欢数字的孩子,现在他正在研究一个与数字相关的题目,我们知道一个数字的完美度是 把这个数字分解成三个整数相乘A*A*B(0#include<stdio.h>__int64 wmd(__int64 n){ __int64 sum=0; for(__int64 i=1;i*i*i<=n;i++) { sum+=(n/(i*i)-i+1); }
2017-12-21 22:03:23 353
原创 POJ1664放苹果
把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。 Input 第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。 Output 对输入的每组数据M和N,用一行输出相应的K。 Sample Input 1 7 3 Sample Out
2017-12-19 08:31:06 263
原创 POJ - 1679 The Unique MST(Prim 次小生成树)
Given a connected undirected graph, tell if its minimum spanning tree is unique. Definition 1 (Spanning Tree): Consider a connected, undirected graph G = (V, E). A spanning tree of G is a subgraph of G
2017-12-14 21:00:46 326
原创 bool型数据的一些笔记
#include<stdio.h>int main(){ bool a; int b=0; for(a=0;a<=1;a++) { printf("*************\n"); b++; } printf("%d\n",b);}这个结果是就是一直不停的循环,因为当a=1继续a++,以后的结果都是1,所以是死
2017-12-13 20:57:33 491
原创 Prim(各种功能)
输出边,输出最小生成树中的最大边以及初始化模板#include<stdio.h>#define INF 0x3f3f3f3fint mp[2010][2010],dis[2010],book[2010],n;int save[2010];void prim(){ int maxx=-1; for(int i=1;i<=n;i++) { dis[i]=mp
2017-12-11 21:32:09 473
原创 HDU - 1253 胜利大逃亡(bfs+queue的使用)
Ignatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会. 魔王住在一个城堡里,城堡是一个A*B*C的立方体,可以被表示成A个B*C的矩阵,刚开始Ignatius被关在(0,0,0)的位置,离开城堡的门在(A-1,B-1,C-1)的位置,现在知道魔王将在T分钟后回到城堡,Ignatius每分钟能从一个坐标走到相邻的六个坐标中的其中一个.现在给你城堡的地图,请你计算出Ign
2017-12-07 21:24:55 331
原创 51Nod - 1384 全排列(next_permutation)
给出一个字符串S(可能有重复的字符),按照字典序从小到大,输出S包括的字符组成的所有排列。例如:S = “1312”, 输出为:1123 1132 1213 1231 1312 1321 2113 2131 2311 3112 3121 3211 Input 输入一个字符串S(S的长度 <= 9,且只包括0 - 9的阿拉伯数字) Output 输出S所包含的字符组成的
2017-12-04 18:56:43 275
原创 HDU 1231 最大连续子序列(HDU 1003 dp)
给定K个整数的序列{ N1, N2, …, NK },其任意连续子序列可表示为{ Ni, Ni+1, …, Nj },其中 1 <= i <= j <= K。最大连续子序列是所有连续子序列中元素和最大的一个, 例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{ 11, -4, 13 },最大和 为20。 在今年的数据结构考卷中,要求编写程序得到最大
2017-12-01 21:47:54 250
原创 HDU - 1003 Max Sum(经典dp/尺取法)
Given a sequence a[1],a[2],a[3]……a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 + (-1) + 5 + 4 = 14. Input The firs
2017-12-01 21:24:29 487
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人