zoukankan      html  css  js  c++  java
  • UVA 10720 Graph Construction

    UVA_10720

    这个题目做的时候有点贪心的味道,就是如果一个点的度很多的话,那么它应该优先和度比较多的点连成边。

    一开始估算了下qsort的时间,觉得麻烦了,但后来老大说他之前就是用qsort过的,于是我便才开始写起qsort来。可能是因为剪枝用的比较得当或者题目的数据比较少才不致以超时吧。

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    int a[10010],n,N,sum;
    int cmp(const void *_p,const void *_q)
    {
    int *p=(int *)_p;
    int *q=(int *)_q;
    return *p-*q;
    }
    int judge()
    {
    int i,j,k,t;
    qsort(a,n,sizeof(a[0]),cmp);
    for(k=n-1;k>0;k--)
    if(a[k])
    {
    for(i=k-1;i>=0;i--)
    if(a[i])
    {
    a[i]--;
    a[k]--;
    sum-=2;
    if(!a[k])
    break;
    }
    if(a[k])
    break;
    qsort(a,k,sizeof(a[0]),cmp);
    }
    if(sum==0)
    return 1;
    else
    return 0;
    }
    int main()
    {
    int i,j,k,max;
    while(1)
    {
    scanf("%d",&N);
    if(N==0)
    break;
    n=max=sum=0;
    for(i=0;i<N;i++)
    {
    scanf("%d",&a[n]);
    if(a[n])
    {
    if(a[n]>max)
    max=a[n];
    sum+=a[n];
    n++;
    }
    }
    if(sum==0)
    {
    printf("Possible\n");
    continue;
    }
    else if(max>=n||sum%2!=0)
    {
    printf("Not possible\n");
    continue;
    }
    if(judge())
    printf("Possible\n");
    else
    printf("Not possible\n");
    }
    return 0;
    }


  • 相关阅读:
    springcloud(三)
    springcloud(二)
    spring-cloud(一)
    springboot(三)
    springboot(二)
    springboot(一)
    dubbox
    SpringBoot终章(整合小型进销系统)
    SpringBoot第三节(thymeleaf的配置与SpringBoot注解大全)
    SpringBoot--集成Shiro
  • 原文地址:https://www.cnblogs.com/staginner/p/2194788.html
Copyright © 2011-2022 走看看