上一页 1 ··· 37 38 39 40 41

Train Problem I(HDU1022)

摘要: As the new term comes, the Ignatius Train Station is very busy nowadays. A lot of student want to get back to school by train(because the trains in the Ignatius Train Station is the fastest all over the world ^v^). But here comes a problem, there is only one railway where all the trains stop. So all 阅读全文
posted @ 2012-03-28 17:32 江财小子 阅读(1468) 评论(0) 推荐(0) 编辑

STL的队列和栈简单使用

摘要: #include #include #include #include #include #include using namespace std;int main(){queue Q;stack S;int i;for(i=1;i M //例如 queue Q,q,、、查看是否为空范例 M.empty() 是的话返回1,不是返回0;从已有元素后面增加元素 M.push()输出现有元素的个数 M.size()显示第一个元素 M.front()显示最后一个元素 M.back()清除第一个元素 M.pop()入栈,如例:s.push(x);出栈,如例:s.pop();注意,出栈操作只是删除栈顶元. 阅读全文
posted @ 2012-03-28 17:32 江财小子 阅读(5220) 评论(0) 推荐(1) 编辑

栈的简单应用(hdu1870)

摘要: 愚人节的礼物四月一日快到了,Vayko想了个愚人的好办法——送礼物。嘿嘿,不要想的太好,这礼物可没那么简单,Vayko为了愚人,准备了一堆盒子,其中有一个盒子里面装了礼物。盒子里面可以再放零个或者多个盒子。假设放礼物的盒子里不再放其他盒子。用()表示一个盒子,B表示礼物,Vayko想让你帮她算出愚人指数,即最少需要拆多少个盒子才能拿到礼物。Input本题目包含多组测试,请处理到文件结束。每组测试包含一个长度不大于1000,只包含'(',')'和'B'三种字符的字符串,代表Vayko设计的礼物透视图。你可以假设,每个透视图画的都是合法的。Outpu 阅读全文
posted @ 2012-03-28 17:31 江财小子 阅读(365) 评论(0) 推荐(0) 编辑

排序6之堆排序

摘要: 在进行堆排序之前必须知道堆的性质。堆分为大根堆和小根堆,我们只说下大根堆,小根堆其实和大根堆没多大区别:ki>=k(2i)且ki>=k(2i+1)(1≤i≤ n),当然,这是大根堆,小根堆则换成//堆排序#include #include #define swap(x,y) {int t=x;x=y;y=t;}#define N 10int len;void kph(int *a,int n)//堆的性质维护{ //该函数实现前提是:以节点n的左右孩子为根的二叉树是堆 int k=n,l,r; l=k*2; r=l+1; if(ra[k]) { swap(a[k],a[l]); k 阅读全文
posted @ 2012-03-28 17:30 江财小子 阅读(180) 评论(0) 推荐(0) 编辑

排序5之归并排序

摘要: 归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。如 设有数列{6,202,100,301,38,8,1} 初始状态: [6] [202] [100] [301] [38] [8] [1] 比较次数 i=1 [6 202 ] [ 100 301] [ 8 38] [ 1 ] 3 i=2 [ 6 100 202 301 ] [ 1 8 38 ] 4 i=3 [ 1 6 8 38 100 202 301 ] 4 总计: 11次#include #include #define... 阅读全文
posted @ 2012-03-28 17:29 江财小子 阅读(160) 评论(0) 推荐(0) 编辑

排序4之计数排序

摘要: 程序一:#include #include #define M 10001 //看完程序后想想这个M干嘛用的,可以去看看哈希算法噢#define N 10int main(){ int a[N],b[M]; int i,n; memset(b,0,sizeof(b)); for(i=0;i#include #define M 10001#define N 10int main(){ int a[N],b[M]; int i,n; memset(b,0,sizeof(b)); for(i=0;i=0;i--) a[b[i]--]=i+1; for(i=1;i<=N;i++) printf( 阅读全文
posted @ 2012-03-28 17:28 江财小子 阅读(137) 评论(0) 推荐(0) 编辑

排序3之快排

摘要: 快排,据说是平均情况下最好的排序了,算法比较好实现,快排的关键是确定轴的位置,我这里用的轴是在末尾的。 有关快排的资料可以看http://baike.baidu.com/view/19016.htm根据上图的算法思想(我觉得这种最好写代码了,呵呵)#include #define N 10#define swap(x,y) {int t=x;x=y;y=t;}void qs(int l,int r,int *a){ if(l>=r) //这是递归的出口 return; int i=l,j; for(j=l;j<r;j++) if(a[j]<a[r])//每次都是和最后那个比较 阅读全文
posted @ 2012-03-28 17:27 江财小子 阅读(181) 评论(0) 推荐(0) 编辑

排序2之冒泡排序和选择排序

摘要: #include #define N 10int main(){ int a[N]; int i,j,temp; for(i=0;i#define N 10int main(){ int a[N]; int i,j,temp,flag;//添加了一个flag标志 for(i=0;i#define N 10#define swap(x,y) {int t=x;x=y;y=t;}int main(){ int a[N]; int i,j,flag=1; for(i=0;i#define N 10#define swap(x,y) {int t=x;x=y;y=t;}int main(){ ... 阅读全文
posted @ 2012-03-28 15:55 江财小子 阅读(203) 评论(0) 推荐(0) 编辑

排序1之插入排序

摘要: 插入排序,就像好多书上讲的像抓牌时将刚抓的新牌插入手里已经排好序的牌。a数组像牌堆,b数组像已经抓到我们手里的牌#include #define N 10 //这里是定义要排序的数目int main(){ int a[N],b[N]; //定义数组,a数组用来存输入的数,b数组用来存排序的结果 int i,j; for(i=0;ia[i])//这里作比较大小(b数组从小到大排) { b[j]=b[j-1];//这里就是后移操作,毕竟是计算机,插入数据前还是要先让出空间的。 j--; } b[j]=a[i]; } for(i=0;i#define N 10int main(){ int a[N] 阅读全文
posted @ 2012-03-28 13:08 江财小子 阅读(163) 评论(0) 推荐(0) 编辑

ACM起步

摘要: 从去年开始接触ACM,作为一位大一新生,找到了自己的大学方向,因为觉得对算法很有兴趣。于是就开始自学算法了! 不过学算法前还是的会一门语言的,学校里给我们(软件)专业安排的是C++语言,到了2012年才开始了自己的算法之路。 记得去年参加了杭电的百校菜鸟杯,貌似是第84名,当时基本不会什么算法,只是通过在杭电上做题,然后看别人的代码,学习。一点的系统性都没有,就感觉是看到啥学些啥(基本上是比较简单的),到了寒假,带了本算法书回家看,怎么说呢,有时就是看的云里雾里,无奈之下就把C语言学了下。 到了这个学期开学,就开始真的算法学习之路了,在百度找了许多的算法,看到算法书上介绍的,把自己能看懂的学. 阅读全文
posted @ 2012-03-28 13:00 江财小子 阅读(399) 评论(0) 推荐(0) 编辑
上一页 1 ··· 37 38 39 40 41