上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 28 下一页

2012年8月7日

NYOJ 238 小明的调查统计

摘要: 1 #include<stdio.h> 2 #include<stdlib.h> 3 int cmp(const void *a,const void *b) 4 { 5 return *(int *)a-*(int *)b; //升序 6 } 7 int main() 8 { 9 int t,n,i;10 int a[110];11 scanf("%d",&t);12 while(t--)13 {14 scanf("%d",&n);15 for(i=0;i<n;i++)16 scanf("%d.. 阅读全文

posted @ 2012-08-07 20:39 mycapple 阅读(170) 评论(0) 推荐(0) 编辑

NYOJ 225 小明求素数积

摘要: 1 #include<stdio.h> 2 #include<math.h> 3 #include<stdlib.h> 4 int is_prime(int x) 5 { 6 int i; 7 if(x==1) return 0; 8 for(i=2;i<=sqrt(x);i++) 9 if(x%i==0) return 0;10 return 1;11 }12 int main()13 {14 int t,n,i,sum;15 scanf("%d",&t);16 while(t--)17 {18 s... 阅读全文

posted @ 2012-08-07 20:28 mycapple 阅读(298) 评论(0) 推荐(0) 编辑

NYOJ 224 灯光师小明

摘要: 刚开始一直不能编译,后来才知道,当数组所占空间比较大时,就不能放进函数里,因为在函数里定义的变量,是在栈上创建的,数组太大,会造成栈溢出,使程序出错。而全局变量是在数据段创建的,可非常大1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 int light[1000010];//不能放到函数里是由于在函数中定义的变量,在栈上创建,全局定义的变量,在数据段上创建。由于你的数组太大,会造成栈溢出,使得程序错误 5 int main() 6 { 7 int n,t,m,sum=0; 8 c 阅读全文

posted @ 2012-08-07 20:01 mycapple 阅读(322) 评论(0) 推荐(0) 编辑

NYOJ 223 小明的烦恼

摘要: 1 #include<stdio.h> 2 #include<stdlib.h> 3 int main() 4 { 5 int n; 6 scanf("%d%*c",&n); 7 while(n--) 8 { 9 int i,j,t=0;10 int a[11];11 char ch;12 for(i=0;i<=11;i++) //刚开始i<11,不知咋的出错了wa。我想应该要进行12次循环,虽然有11位号码,最后循环是enter吧13 {14 ch=ge... 阅读全文

posted @ 2012-08-07 17:09 mycapple 阅读(218) 评论(0) 推荐(0) 编辑

HDU 1863 畅通工程

摘要: 法一:地址:http://acm.hdu.edu.cn/showproblem.php?pid=1863 1 #include<iostream> 2 #include<cstdlib> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 int parent[105]; 7 struct Edge{ 8 int from,to,price; 9 }edge[5100];10 bool compare(Edge a,Edge b){11 return a.price 阅读全文

posted @ 2012-08-07 16:43 mycapple 阅读(308) 评论(0) 推荐(0) 编辑

数据结构之并查集

摘要: 1、 概述并查集(Disjoint set或者Union-find set)是一种树型的数据结构,常用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。2、 基本操作并查集是一种非常简单的数据结构,它主要涉及两个基本操作,分别为:A. 合并两个不相交集合B. 判断两个元素是否属于同一个集合(1) 合并两个不相交集合(Union(x,y))合并操作很简单:先设置一个数组Father[x],表示x的“父亲”的编号。那么,合并两个不相交集合的方法就是,找到其中一个集合最父亲的父亲(也就是最久远的祖先),将另外一个集合的最久远的祖先的父亲指向它。上图为两个不相交集合,b图为合并后Fa 阅读全文

posted @ 2012-08-07 16:25 mycapple 阅读(673) 评论(0) 推荐(0) 编辑

数据结构之堆

摘要: 1. 概述堆(也叫优先队列),是一棵完全二叉树,它的特点是父节点的值大于(小于)两个子节点的值(分别称为大顶堆和小顶堆)。它常用于管理算法执行过程中的信息,应用场景包括堆排序,优先队列等。2. 堆的基本操作堆是一棵完全二叉树,高度为O(lg n),其基本操作至多与树的高度成正比。在介绍堆的基本操作之前,先介绍几个基本术语:A:用于表示堆的数组,下标从1开始,一直到nPARENT(t):节点t的父节点,即floor(t/2)RIGHT(t):节点t的左孩子节点,即:2*tLEFT(t):节点t的右孩子节点,即:2*t+1HEAP_SIZE(A):堆A当前的元素数目下面给出其主要的四个操作(以大顶 阅读全文

posted @ 2012-08-07 16:24 mycapple 阅读(672) 评论(0) 推荐(0) 编辑

数据结构之Treap

摘要: 1. 概述同splay tree一样,treap也是一个平衡二叉树,不过Treap会记录一个额外的数据,即优先级。Treap在以关键码构成二叉搜索树的同时,还按优先级来满足堆的性质。因而,Treap=tree+heap。这里需要注意的是,Treap并不是二叉堆,二叉堆必须是完全二叉树,而Treap可以并不一定是。2. Treap基本操作为了使Treap 中的节点同时满足BST性质和最小堆性质,不可避免地要对其结构进行调整,调整方式被称为旋转。在维护Treap 的过程中,只有两种旋转,分别是左旋转(简称左旋)和右旋转(简称右旋)。左旋一个子树,会把它的根节点旋转到根的左子树位置,同时根节点的右子 阅读全文

posted @ 2012-08-07 16:22 mycapple 阅读(539) 评论(0) 推荐(0) 编辑

数据结构之AVL树

摘要: 1. 概述AVL树是最早提出的自平衡二叉树,在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。AVL树得名于它的发明者G.M. Adelson-Velsky和E.M. Landis。AVL树种查找、插入和删除在平均和最坏情况下都是O(log n),增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。本文介绍了AVL树的设计思想和基本操作。2. 基本术语有四种种情况可能导致二叉查找树不平衡,分别为:(1)LL:插入一个新节点到根节点的左子树(Left)的左子树(Left),导致根节点的平衡因子由1变为2(2)RR:插入一个新节点到根节点的右子树(Right)的右子树 阅读全文

posted @ 2012-08-07 16:21 mycapple 阅读(547) 评论(0) 推荐(0) 编辑

算法之排序算法

摘要: 1. 概述排序算法是计算机技术中最基本的算法,许多复杂算法都会用到排序。尽管各种排序算法都已被封装成库函数供程序员使用,但了解排序算法的思想和原理,对于编写高质量的软件,显得非常重要。本文介绍了常见的排序算法,从算法思想,复杂度和使用场景等方面做了总结。2. 几个概念(1)排序稳定:如果两个数相同,对他们进行的排序结果为他们的相对顺序不变。例如A={1,2,1,2,1}这里排序之后是A = {1,1,1,2,2} 稳定就是排序后第一个1就是排序前的第一个1,第二个1就是排序前第二个1,第三个1就是排序前的第三个1。同理2也是一样。不稳定就是他们的顺序与开始顺序不一致。(2)原地排序:指不申请多 阅读全文

posted @ 2012-08-07 16:21 mycapple 阅读(1593) 评论(0) 推荐(0) 编辑

上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 28 下一页

导航