自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

原创 poj1611并查集

#includeint p[30006],q[30006];int find(int x){    if(p[x] == x) return x;    return p[x] = find(p[x]);}void Union(int x, int y){    int fx = find(x);    int fy = find(y);    if(f

2015-10-31 14:43:22 347

原创 并查集2524

#includeint p[50006];int find(int x){    if(p[x] == x) return x;    return p[x] = find(p[x]);}void Union(int x, int y){    p[y] = x;    //ans--;}int main(){    int n,m,an

2015-10-31 14:42:23 271

原创 杭电5499

#include#includetypedef struct person{    char name[21];    char sex[7];    int round1;    int round2;    float final_mark;}Person;void sort(Person end[], int n){    fo

2015-10-31 14:40:19 257

原创 杭电5494

#include#includeint cmp(const void *a, const void *b){    return *(int *)a - *(int *)b;}int main(){    int t,a[1006],b[1006];    scanf("%d",&t);    while(t--)    {        int n

2015-10-31 14:39:27 266

原创 杭电5273

#include#include int main(){    int n,q,l,r;    int a[1006];    int dp[1006][1006];    scanf("%d%d",&n,&q);    for(int i = 1; i     {        scanf("%d",&a[i]);    }    mems

2015-10-31 14:38:33 284

原创 杭电5500排书

#includeint main(){    int t,n,j,ans,a[26];    scanf("%d",&t);    for(int i = 0; i     {        scanf("%d",&n);        for(j = 0; j             scanf("%d",&a[j]);        ans = n;

2015-10-31 14:35:54 265

原创 poj1664递归放苹果

#includeint put_apple(int m, int n){    if(m     if(m == 0 || n == 1) return 1;    return put_apple(m - n, n) + put_apple(m, n - 1);}int main(){    int n,m,t;    scanf("%d",&t); 

2015-10-31 14:34:26 257

原创 第二次练习

A.Watermelon time limit per test 1 second memory limit per test 64 megabytes input standard input output standard output One hot summer day Pete and his friend Billy decided to buy a watermelon. The

2015-08-12 19:34:17 735

原创 数组模拟队列 广搜

#include  //数组模拟队列//char c[5][5]={s,*,#,#,#,#,*,#,#,#,*,*,*,*,*,*,#,#,#,e,*,*,*,*,*};char c[1006][1006];struct node{    int step;    int x,y;}s,temp;  //结构体变量int vis[10006][10006]; //标

2015-08-12 19:25:40 393

原创 poj3278广搜

#include  struct node{    int step;    int x;}s,temp;  struct node que[100006];int n,k;int vis[100006];int bfs(int step,int x){    int f=0,r=0;    s.step=step;     s.x=x;  

2015-08-12 19:24:26 235

原创 深搜和广搜

深度优先搜索遍历算法深度优先搜索的过程深度优先搜索所遵循的搜索策略是尽可能“深”地搜索图。在深度优先搜索中,对于最新发现的节点,如果它还有以此为起点而未搜索的边,就沿此边继续搜索下去。当节点v的所有边都己被探寻过,搜索将回溯到发现节点v有那条边的始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到

2015-08-12 19:16:00 402

原创 贪心凑钱

#include //凑钱贪心。int main(){    int n,ans=0;    int a[606],b[7]={1,5,10,20,50,100,500};    scanf("%d",&n);    for(int i=0;i    {        scanf("%d",&a[b[i]]);    }    for(int i=6;i>=

2015-08-12 19:13:43 403

原创 贪心及区间使做的工作最多

#include #includestruct node{    int s;    int t;};struct node p[100000];int cmp(const void *a,const void *b)  //交换函数{    struct node *aa=(node *)a;    struct node *bb=(node *)b;

2015-08-12 19:12:48 191

原创 poj3617贪心

Best Cow LineTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 13682 Accepted: 3924DescriptionFJ is about to take his N (1 ≤ N ≤ 2,000) cows to the annu

2015-08-12 19:11:29 240

原创 poj3069贪心

Saruman's ArmyTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 5560 Accepted: 2847DescriptionSaruman the White must lead his army along a straight path f

2015-08-12 19:09:58 206

原创 poj2393贪心

Yogurt factoryTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 7798 Accepted: 3970DescriptionThe cows have purchased a yogurt factory that makes world-famo

2015-08-12 19:08:29 298

原创 poj1328贪心

#include #include#includestruct node{    int x0,x1;};struct node p[1006];int cmp(const void *aa,const void *bb){        if ((*(int*)aa)>(*(int*)bb))         return(1);        e

2015-08-12 19:05:31 252

原创 全排列

#include void premutation(int pos,int n);char c[100];char used[200];char pre[100];int main(){    int n;    scanf("%d",&n);    getchar();    gets(c);    premutation(0,n);    ret

2015-08-06 21:27:19 272

原创 codevs1215走迷宫

#includeint vis[17][17]={0};char  c[17][17];int n,m;    int dfs(int x,int y){      if(x==n-1 && y==n-1)  return 1;    if((c[x][y+1]!='#') && (y+1        {                vis[x][y]=1;

2015-08-06 21:24:26 400

原创 codevs1008深搜

#include#includeint n,k,a[22],count=0,sum=0;int is_prime(int x){ for(int i=2;i*i  if(x%i==0) return 0; return 1;}void dfs(int pos,int sum,int m)  //pos表示个数{ if(pos==k) {  if(

2015-08-06 21:23:06 290

原创 深搜求迷宫最短路径

#include   //0表示可以走 1表示墙int vis[6][6]={0};int a[6][6];   int num=10000000;int min(int x,int y){    if(x    return y;}void dfs(int x,int y,int step){       if(x==4 && y==4)    

2015-08-06 21:21:35 959

原创 深搜迷宫

#includeint vis[22][22]={0};//char c[5][5]={{'*','*','*','*','#'},{'*','*','#','*','#'},{'#','*','#','*','#'},{'#','*','*','*','*'},{'*','*','#','*','#'}};//char c[5][5]={{'*','#','*','*','#'}

2015-08-06 21:20:44 253

原创 深搜从n个数中找和为k的数

#includeint find(int n,int k,int a[],int sum,int pos);  int a[1002];int main(){int n,k,sum=0;scanf("%d%d",&n,&k);for(int i=0;i{    scanf("%d",&a[i]);}    if(find(n,k,a,sum,0))  /

2015-08-06 21:19:57 1804

原创 poj2386水洼dfs

#include   char a[102][102]; int d[8][2]={-1,-1,-1,0,-1,1,0,-1,0,1,1,-1,1,0,1,1};  //d数组表示方位int n,m;void dfs(int x,int y){       if(a[x][y]=='.' || x=n || y=m) return ;    for(int i=0;i

2015-08-06 21:17:17 866

原创 扩展欧几里德 POJ1061

#includetypedef long long ll; //重新定义long longll x,y;ll gcd(ll a,ll b)  //找ab的最大公约数{if(b==0)  return a;else return gcd(b,a%b);}void extend_gcd(ll a,ll b)  //函数求解ax+by=d的一组解{if(b==0)

2015-07-31 19:44:57 600

原创 素数(降低时间复杂度)

#include#includeint main(){int n,i,j,a[1000];scanf("%d",&n);a[0]=1,a[1]=1;int m=sqrt(n);for(i=2;i{ for(j=i*2;j  a[j]=1;}for(i=0;i if(a[i]!=1)  printf("%d\n",i);return 0

2015-07-29 21:09:49 353

原创 快速冥

#includeint main(){long int n,m,a,sum=1;scanf("%ld%ld",&m,&n);while(m!=0){if(m & 1)  sum*=n;n*=n;m/=2;}printf("%ld\n",sum);return 0;}

2015-07-29 21:08:47 788

原创 二叉树的先序、中序、后序遍历

#includeint heap[20][2];void before_traverse(int a){ if(!a)  return; printf("%d ",a); before_traverse(heap[a][1]); before_traverse(heap[a][2]);}void middle_traverse(int a){ if(

2015-07-29 21:07:45 314

原创 辗转相除法

#include    int gcd(int m,int n){ while(m%n!=0)     //循环 {  int temp=n;   n=m%n;  m=temp; } return n;}int main(){ int m,n; scanf("%d%d",&m,&n); printf("%d\n",gcd(m,n));

2015-07-29 21:07:02 226

原创 二叉树的最大深度和最大宽度

#includeint main(){    int n,f[16] = {0},h = 1;  scanf("%d",&n);    f[1]=1; int a,b;    for(int i = 1;i     {        scanf("%d%d",&a,&b);        if(a!=0)f[a]=f[i]

2015-07-29 21:02:14 555

原创 搜索二叉树的相关操作

#include#includetypedef struct Node{ int val; struct Node *lch; struct Node *rch;}node,*pnode;pnode insert(pnode p,int x)  //插入函数(建树){ if(p == NULL)    {  pnode q=(pnode)malloc

2015-07-29 21:00:39 239

原创 哈夫曼树。。。贪心(小的)

#includeint heap[100000],size=0;void push(int x){ int i=size++; while(i>0) {  int j=(i-1)/2;  if(heap[j]  heap[i]=heap[j];  i=j; } heap[i]=x; }int pop(){ int res=heap[0

2015-07-29 20:59:26 189

原创 二叉树的相关操作

#includeint size=0;   //全局变量int heap[100];void push(int x)   //插入函数从下往上找{ int i=size++;  //size从0开始,i从0开始,之后size自加 while(i>0)  //当i等于0时,直接将x赋给heap[i] {  int j=(i-1)/2;  //找i的父节点j  if

2015-07-29 20:55:29 234

原创 循环队列相关知识

#include#includetypedef struct queue{ int *pbase; int front; int rear;}Q;void creat_queue(Q *pq)   //初始化{ pq->pbase = (int *)malloc(sizeof(int) * 10); pq->front = 0; pq->rear

2015-07-22 21:29:54 243

原创 算法

衡量算法的标准1、时间复杂度:程序最坏情况下要执行的次数,而非时间(因为对于不同的机器,时间往往不同)****2、空间复杂度:算法执行过程中最坏情况下要占用的内存空间。**3、难易程度4、健壮性时间复杂度:取最高次幂,去掉系数

2015-07-22 20:09:46 201

原创 快排相关知识

快速排序要排序的区间是[begin, end]0.begin 1,val = arr[begin]2.l = begin, r = end 2.1保证l 2.2从r往前找到一个小于val的值,r是是指向这个值 2.3从l往后找到一个大于等于val的值,l是指向这个值的 2.4交换l和r的值。 2.5如果l==r,arr[l] = val; 2.6否则回到2.

2015-07-22 20:03:58 281

原创 归并排序及求逆序对

#includeint cont=0;void sort(int a[],int temp[],int start,int end);void marge(int a[],int temp[],int start,int middle,int end);int main(){ int a[1000],temp[1000],i,n; printf("请输入数组个数:");

2015-07-22 19:59:50 224

原创 队列相关知识

#include#includetypedef struct node{ int data; struct node *pnext;}Node, *pnode;typedef struct queue{ pnode front; pnode rear;}QUEUE;QUEUE q;void creat_queue()   //创建队列{ 

2015-07-22 19:55:33 184

原创 分治思想 归并排序

#includevoid sort(int a[],int start,int end);  //声明void marge(int a[],int temp[],int start,int middle,int end);int main(){ int a[1000],temp[1000],i,n; printf("请输入数组个数:"); scanf("%d",&n);

2015-07-20 21:31:29 201

原创 栈总结

#include#include#define stack_size 30struct stack{ int size; int *base; int *top;};struct stack s;void creat_stack()     //创建{ s.base = (int *)malloc((stack_size)*sizeof(int));

2015-07-19 17:24:47 223

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除