算法
文章平均质量分 83
兰前小驻
奇迹之所以被称之为奇迹,是因为它不会每次都发生!
展开
-
顺序建表
题目描述输入N个整数,按照输入的顺序建立单链表存储,并遍历所建立的单链表,输出这些数据。输入第一行输入整数的个数N;第二行依次输入每个整数。输出输出这组整数。示例输入812 56 4 6 55 15 33 62示例输出12 56 4 6 55 15 33 62提示不得使用数组!#inc原创 2014-04-01 19:20:35 · 504 阅读 · 0 评论 -
POJ【1909】数论
DescriptionOne of the famous proofs of modern mathematics is Georg Cantor's demonstration that the set of rational numbers is enumerable. The proof works by using an explicit enumeration of rati原创 2014-07-30 08:12:05 · 579 阅读 · 0 评论 -
SDUTOJ【2780】 pots---bfs
DescriptionYou are given two pots, having the volume of A and B liters respectively. The following operations can be performed:Input On the first and only line are the numbers A, B, an原创 2014-07-30 08:18:16 · 380 阅读 · 0 评论 -
HDU[1253]--bfs
Ignatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会.魔王住在一个城堡里,城堡是一个A*B*C的立方体,可以被表示成A个B*C的矩阵,刚开始Ignatius被关在(0,0,0)的位置,离开城堡的门在(A-1,B-1,C-1)的位置,现在知道魔王将在T分钟后回到城堡,Ignatius每分钟能从一个坐标走到相邻的六个坐标中的其中一个.现在给你城堡的地图,请你计算原创 2014-07-30 08:20:58 · 432 阅读 · 0 评论 -
HDU【2159】FATE--完全背包
Description最近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务。久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完这最后一级。现在的问题是,xhd升掉最后一级还需n的经验值,xhd还留有m的忍耐度,每杀一个怪xhd会得到相应的经验,并减掉相应的忍耐度。当忍耐度降到0或者0以下时,xhd就不会玩这游戏。xhd还说了他最多只杀s只怪。请问他原创 2014-07-30 16:14:42 · 338 阅读 · 0 评论 -
一维01背包和完全背包对比代码
01:#include#includeint dp[1005];int v[1005],w[1005];int max(int a,int b){ return a>b?a:b;}int main(){ int n,m,t,i,j,k,V; scanf("%d",&t); while(t--) {原创 2014-07-30 21:33:57 · 527 阅读 · 0 评论 -
POJ【2001】Shortest Prefixes----字典树
DescriptionA prefix of a string is a substring starting at the beginning of the given string. The prefixes of "carbon" are: "c", "ca", "car", "carb", "carbo", and "carbon". Note that the empty s原创 2014-07-31 20:45:01 · 351 阅读 · 0 评论 -
STL---map
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有转载 2014-08-04 17:01:19 · 326 阅读 · 0 评论 -
扩展欧几里得
欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b)。第一种证明: a可以表示成a = kb + r,则r = a mod b 假设d是a,b的一个公约数,则有 d|a, d|b,而r = a - kb,因此d|r转载 2014-08-07 20:40:18 · 379 阅读 · 0 评论 -
对于字符输入的处理
今天做的扫描线的一道题,怎么改都不对,我刚开始以为是s原创 2014-08-12 10:42:37 · 369 阅读 · 0 评论 -
二分图匹配(匈牙利算法)
1。一个二分图中的最大匹配数等于这个图中的最小点覆盖数König定理是一个二分图中很重要的定理,它的意思是,一个二分图中的最大匹配数等于这个图中的最小点覆盖数。如果你还不知道什么是最小点覆盖,我也在这里说一下:假如选了一个点就相当于覆盖了以它为端点的所有边,你需要选择最少的点来覆盖所有的边。 2。最小路径覆盖=最小路径覆盖=|G|-最大匹配数 在一个N*N的有向图中原创 2014-08-16 10:55:02 · 345 阅读 · 0 评论 -
桶排序
我让桶排序的作者给化了,这也算是一种算法?这种算法也叫算法?首先,数据得一样长。其次,特别耗费空间。再者,应该算是哈希思想的升华了。真正的桶排序应该是利用短板排序,而不是只有同长数据。原理:把数据取余,例如1000~9999对1000取余,然后对应的把1000放到 a[0],1001放到a[1]。以此类推。这也叫算法?好吧,算是一种算法,但是太鸡肋。原创 2016-08-24 19:36:22 · 399 阅读 · 0 评论 -
HDU【3790】最短路径问题
给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。 Input输入n,m,点的编号是1~n,然后是m行,每行4个数 a,b,d,p,表示a和b之间有一条边,且其长度为d,花费为p。最后一行是两个数 s,t;起点s,终点。n和m为0时输入结束。 (1原创 2014-07-28 17:27:24 · 399 阅读 · 0 评论 -
HDU【1285】确定比赛名次---拓扑排序
Problem Description有N个比赛队(1 Input输入有若干组,每组中的第一行为二个数N(1 Output给出一个符合要求的排名。输出时队伍号之间有空格,最后一名后面没有空格。其他说明:符合条件的排名可能不是唯一的,此时要求输出时编号小的队伍在前;输入数据保证是正确的,即输入数据确保一定能有一个符合要求原创 2014-07-28 15:59:20 · 414 阅读 · 0 评论 -
逆序建表
题目描述输入整数个数N,再输入N个整数,按照这些整数输入的相反顺序建立单链表,并依次遍历输出单链表的数据。输入第一行输入整数N;;第二行依次输入N个整数,逆序建立单链表。输出依次输出单链表所存放的数据。示例输入1011 3 5 27 9 12 43 16 84 22 示例输出22 84 16 43 12 9 27 5原创 2014-04-01 19:25:18 · 552 阅读 · 0 评论 -
链表的逆置
题目描述输入多个整数,以-1作为结束标志,顺序建立一个带头结点的单链表,之后对该单链表的数据进行逆置,并输出逆置后的单链表数据。输入输入多个整数,以-1作为结束标志。输出输出逆置后的单链表数据。示例输入12 56 4 6 55 15 33 62 -1示例输出62 33 15 55 6 4 56 12#inc原创 2014-04-01 20:02:09 · 413 阅读 · 0 评论 -
Parentheses Balance(括号匹配)--栈
#include#includeint main(){ char q[300],w[300]; int n,j,k,i; scanf("%d%*c",&n); for(i=0;i { memset(q,0,sizeof(q)); gets(q); int len=strlen(q);原创 2014-04-08 19:46:34 · 834 阅读 · 0 评论 -
The Mine (bfs)
The Mine The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and crea原创 2014-04-10 20:03:53 · 573 阅读 · 0 评论 -
数据定义的区别
#include #include #include using namespace std; int main() { cout "type: \t\t" "************size**************" cout "bool: \t\t" "所占字节数:" sizeof(bool); cout "\t转载 2014-04-10 21:04:17 · 555 阅读 · 0 评论 -
哈希
#includeint k[110002][4]={0};int main(){ int a,b,d,e,bj,zf; int c; int max [4]={-1}; scanf("%d",&a); for(b=0;b { zf=1; scanf("%d",&c); if原创 2014-04-24 20:11:42 · 448 阅读 · 0 评论 -
总结哈希链表储存冲突
这个题寒假的时候做过,当时用的线性探测原创 2014-06-05 19:20:03 · 547 阅读 · 0 评论 -
引用与传递---‘&’与‘*’
数据的传递,对于在调用函数时得到的结果转载 2014-07-21 10:52:42 · 509 阅读 · 0 评论 -
POJ(1068)(模拟)(栈)思想
Let S = s1 s2...s2n be a well-formed string of parentheses. S can be encoded in two different ways: q By an integer sequence P = p1 p2...pn where pi is the number of left parentheses before the ith原创 2014-07-27 20:29:44 · 458 阅读 · 0 评论 -
ZOJ 【2108】Agri-Net(最小生成树)模拟生成树&普利姆算法
Farmer John has been elected mayor of his town! One of his campaign promises was to bring internet connectivity to all farms in the area. He needs your help, of course. Farmer John ordered a high sp原创 2014-07-28 14:23:27 · 557 阅读 · 0 评论