zoukankan      html  css  js  c++  java
  • UVA 188 Perfect Hash

    UVA_188

        这个题目的难度主要在理解题意上面,理解了题意之后只要按题意进行模拟并找出C即可。

    #include<stdio.h>
    #include
    <string.h>
    #include
    <ctype.h>
    int head[30],next[30];
    int st[30],w[30],n,C;
    char b[200],temp[30];
    int min(int x,int y)
    {
    return x<y?x:y;
    }
    int make()
    {
    int i,j;
    for(i=0;i<n;i++)
    for(j=i+1;j<n;j++)
    if((C/w[i])%n==(C/w[j])%n)
    {
    C
    =min((C/w[i]+1)*w[i],(C/w[j]+1)*w[j]);
    return 0;
    }
    return 1;
    }
    int main()
    {
    int i,j,k,p;
    while(gets(b)!=NULL)
    {
    n
    =0;
    memset(w,
    0,sizeof(w));
    k
    =strlen(b);
    for(i=0;i<k;i++)
    if(isalpha(b[i]))
    {
    sscanf(
    &b[i],"%s",temp);
    p
    =strlen(temp);
    i
    +=p;
    for(j=0;j<p;j++)
    w[n]
    =(w[n]<<5)+(temp[j]-'a'+1);
    n
    ++;
    }
    C
    =1<<31-1;
    for(i=0;i<n;i++)
    if(w[i]<C)
    C
    =w[i];
    while(!make());
    printf(
    "%s\n",b);
    printf(
    "%d\n",C);
    printf(
    "\n");
    }
    return 0;
    }

      

  • 相关阅读:
    JUC学习
    java反射学习
    JSON入门学习
    redis
    NoSQ学习
    手写Lockl锁
    MapReduce过程
    scala学习
    idea jetty 配置
    java 基础--理论知识
  • 原文地址:https://www.cnblogs.com/staginner/p/2179733.html
Copyright © 2011-2022 走看看