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;
    }


  • 相关阅读:
    Meteor会话
    Meteor事件
    Meteor表单
    Meteor集合
    Meteor模板
    Visual Studio 必备神器
    DB2 DATE类型在显示的时候,带有00:00:00,去掉的方法,使用VARCHAR()函数
    SQL 递归查询
    程序员最艰巨的十大任务
    Windows 7,64位机器上安装DB2 7.2+FP7
  • 原文地址:https://www.cnblogs.com/staginner/p/2194788.html
Copyright © 2011-2022 走看看