zoukankan      html  css  js  c++  java
  • z

     http://wenku.baidu.com/link?url=60wguK6BIogNTyNdq6UGESAPuUW5vAVyFKo_kltrPtxFchYi-B7De3sWqr4oAxKrmwoHv9vo-sNxVwcK7Hr6vSdBV9zmAvgEZE7Vg971z_a

    HDU1588:

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <cstdlib>
    #define inf 0x3f3f3f3f
    using namespace std;
    char a[1001],b[1001],c[1001],d[1001];
    int l,U,I,P,t1,t2,t3,v1,i1,w1;
    void init()
    {
        U=inf;
        I=inf;
        P=inf;
        t1=t2=t3=0;
    }
    int main()
    {
        int T;
        scanf("%d",&T);
        for(int z=1; z<=T; z++)
        {
            init();
            gets(a);
            cout<<a<<endl;
            l=strlen(a);
            for(int i=0; i<l; i++)
            {
                if(a[i]=='U')
                {
                    for(int j=i+2; j<l; j++)
                    {
                        if(a[i]>='0'&&a[i]<='9')
                        {
                            b[t1++]=a[i];
                        }
                        else
                        {
                            if(a[i]=='k')
                                v1=1000;
                            else if(a[i]=='V')
                                v1=1;
                            break;
                        }
                    }
                    U=0;
                }
                else if(a[i]=='I')
                {
                    for(int j=i+2; j<l; j++)
                    {
                        if(a[i]>='0'&&a[i]<='9')
                        {
                            c[t2++]=a[i];
                        }
                        else
                        {
                            if(a[i]=='m')
                                i1=0.001;
                            else if(a[i]=='A')
                                i1=1;
                            break;
                        }
                    }
                    I=0;
                }
                else if(a[i]=='P')
                {
                    for(int j=i+2; j<l; j++)
                    {
                        if(a[i]>='0'&&a[i]<='9')
                        {
                            d[t3++]=a[i];
                        }
                        else
                        {
                            if(a[i]=='m')
                                w1=1000000;
                            else if(a[i]=='V')
                                w1=1;
                            break;
                        }
                    }
                }
                P=0;
            }
            b[t1]='';
            c[t2]='';
            d[t3]='';
            printf("Problem #%d ",z);
            double sum;
            if(U==0&&I==0)
            {
                sum=atof(b)*atof(c)*v1*i1;
                printf("P=%.00lfW ",sum);
            }
            else if(U==0&&P==0)
            {
                sum=atof(d)*w1/(atof(b)*v1);
                printf("I=%.00lfA ",sum);
            }
            else if(I==0&&P==0)
            {
                sum=atof(d)*w1/(atof(c)*i1);
                printf("U=%.00lfV ",sum);
            }
            cout<<endl;
        }
        return 0;
    }

    二分时可以这么写:

    matrix Sum(matrix x, int k)  
    {  
        if(k==1) return x;  
        if(k&1)  
            return Add(Sum(x,k-1),Pow(x,k));  
        matrix tmp;  
        tmp=Sum(x,k>>1);  
        return Add(tmp,Mult(tmp,Pow(x,k>>1)));  
    }  

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <cstdlib>
    #include <algorithm>
    using namespace std;
    typedef struct Node
    {
    struct Node *next[26];
    int flag;
    } Node,*Tree;
    int f1,l,tt;
    char a[5002][210],CH[210];
    void Creat(Tree &T)
    {
    T=(Node *)malloc(sizeof(Node));
    T->flag=0;
    for(int i=0; i<26; i++)
    T->next[i]=NULL;
    }
    void insert(Tree &T,char *s)
    {
    Tree p=T;
    int t;
    int l=strlen(s);
    for(int i=0; i<l; i++)
    {
    if(s[i]>='a'&&s[i]<='z')
    t=s[i]-'a';
    else t=s[i]-'A';
    if(p->next[t]==NULL)
    Creat(p->next[t]);
    p=p->next[t];
    }
    p->flag=1;
    }
    void D(Tree p)
    {
    for(int i=0; i<26; i++)
    {
    if(p->next[i]!=NULL)
    D(p->next[i]);
    }
    free(p);
    }
    void dfs(Tree &P,int r,int l)
    {
    if(P->flag>0)
    {
    CH[l]='a'+r;
    CH[l+1]='';
    printf("%s ",CH);
    }
    else CH[l]=CH[l]='a'+r;
    for(int i=0; i<26; i++)
    {
    if(P->next[i]!=NULL)
    dfs(P->next[i],i,l+1);
    }
    }
    int main()
    {
    Tree T;
    tt=0;
    while(gets(a[tt])!=NULL)
    {
    tt++;
    }
    Creat(T);
    char ch[210];
    for(int i=0; i<tt; i++)
    {
    l=strlen(a[i]);
    f1=0;
    for(int j=0; j<l; j++)
    {
    if((a[i][j]>='a'&&a[i][j]<='z')||(a[i][j]>='A'&&a[i][j]<='Z'))
    {
    ch[f1++]=a[i][j];
    }
    else
    {
    ch[f1]='';
    // printf("%s ",ch);
    if(f1!=0)
    insert(T,ch);
    f1=0;
    }
    }
    if(f1!=0)
    {
    ch[f1]='';
    insert(T,ch);
    //printf("%s ",ch);
    }
    }
    for(int i=0; i<26; i++)
    {
    if(T->next[i]!=NULL)
    dfs(T->next[i],i,0);
    }
    D(T);
    return 0;
    }

  • 相关阅读:
    查找oracle数据文件、表空间的位置
    select into 给多变量赋值
    关于Union 中 ORA-12704:字符集不匹配问题的解决
    weblogic线程阻塞性能调优(图解)
    window系统无法访问局域网内文件共享的问题
    查看oracle的sql语句历史记录和锁表的情况
    <c:forEach>标签的使用 JSTL
    CAS服务下单点登录(服务端与客户端)
    cas 配置数据源 , 解决CAS 不支持你提供的凭证 .
    信号量通俗释义
  • 原文地址:https://www.cnblogs.com/zhangmingcheng/p/4127523.html
Copyright © 2011-2022 走看看