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

  • 相关阅读:
    ASP.NET MVC 几种 Filter 的执行过程源码解析
    C#中的线程二(BeginInvoke和Invoke)
    C#中的线程一(委托中的异步)
    C#比较dynamic和Dictionary性能
    C#微信公众平台开发—高级群发接口
    js 关闭浏览器
    切图神器 --- Assistor
    切图 -- cutterman
    mac上用teamviewer远程windows输入问题
    A quick introduction to HTML
  • 原文地址:https://www.cnblogs.com/zhangmingcheng/p/4127523.html
Copyright © 2011-2022 走看看