• 杭电女生赛1001 1002 1003 1005 1008 hdu6023 6024 6025 6027 6030


    代码先贴这里

    #include "iostream"
    #include "string.h"
    #include "stack"
    #include "queue"
    #include "string"
    #include "vector"
    #include "set"
    #include "map"
    #include "algorithm"
    #include "stdio.h"
    #include "math.h"
    #define ll long long
    #define bug(x) cout<<x<<" "<<"UUUUU"<<endl;
    #define mem(a) memset(a,0,sizeof(a))
    using namespace std;
    const int N=1e5+100;
    ///1001
    /*
    struct Node{
        int a,t1,t2;
        string s;
        bool friend operator< (Node a, Node b){
            if(a.t1==b.t1) return a.t2<b.t2;
            return a.t1<b.t1;
        }
    };
    Node arr[N];
    int main(){
        string s;
        char c;
        map<int,int> M;
        map<int,int> M1;
    
        int a,t,n,m,t1,t2;
        scanf("%d",&t);
        while(t--){
            M.clear(),M1.clear();
            int k=0,ans=0;
            scanf("%d%d",&n,&m);
            for(int i=0; i<m; ++i){
                cin>>arr[i].a>>arr[i].t1>>c>>arr[i].t2>>arr[i].s;
            }
            sort(arr,arr+m);
            for(int i=0; i<m; ++i){
                a=arr[i].a,t1=arr[i].t1,t2=arr[i].t2,s=arr[i].s;
                if(M[a]==1) continue;
                if(s=="AC"){
                    M[a]=1;
                    k++;
                    ans+=M1[a]*20+t1*60+t2;
                }
                else{
                    M1[a]++;
                }
            }
            cout<<k<<" "<<ans<<endl;
        }
        return 0;
    }*/
    
    ///1002
    /*const ll INF=1e17+9;
    struct Node{
        ll x,c;
        bool friend operator< (Node a, Node b){
            return a.x<b.x;
        }
    };
    Node a[3010];
    int main(){
        int n;
        while(scanf("%d",&n)!=EOF){
            ll dp[3050][5],pre[3050]={0,0};
            for(int i=1; i<=n; ++i){
                scanf("%lld%lld",&a[i].x,&a[i].c);
                dp[i][0]=dp[i][1]=INF;
            }
            sort(a+1,a+1+n);
            for(int i=2; i<=n; ++i){
                pre[i]=pre[i-1]+a[i].x-a[1].x;
            }
            dp[1][0]=dp[1][1]=a[1].c;
            for(int i=2; i<=n; ++i){
                dp[i][1]=min(dp[i-1][0],dp[i-1][1])+a[i].c;
                for(int j=1; j<i; ++j){
                    ll x=pre[i]-pre[j]-(i-j)*(a[j].x-a[1].x);
                    dp[i][0]=min(dp[i][0],dp[j][1]+x);
                }
            }
            cout<<min(dp[n][0],dp[n][1])<<endl;
        }
        return 0;
    }*/
    
    ///1003
    /*
    const int N=1e5+100;
    int n,t,a[N],b[N];
    int main(){
        scanf("%d",&t);
        while(t--){
            scanf("%d",&n);
            for(int i=1; i<=n; ++i){
                scanf("%d",a+i);
                b[i]=a[i];
            }
            int c=a[1];
            for(int i=2; i<=n; ++i){
                c=__gcd(c,a[i]);
            }
            int g=a[1],l=1,r=n;
            for(int i=2; i<=n; ++i){
                if(g==c){
                    r=i-1;
                    break;
                }
                g=__gcd(g,a[i]);
            }
            g=a[r];
            for(int i=r-1; i>=1; --i){
                if(g==c){
                    l=i+1;
                    break;
                }
                g=__gcd(g,a[i]);
            }
            //cout<<l<<" "<<r<<endl;
            if(l==1) a[l]=a[l+1];
            else a[l]=a[l-1];
            if(r==1) b[r]=b[r+1];
            else b[r]=b[r-1];
            int ans1=a[1],ans2=b[1];
            for(int i=2; i<=n; ++i){
                ans1=__gcd(ans1,a[i]);
                ans2=__gcd(ans2,b[i]);
            }
            cout<<max(ans1,ans2)<<endl;
        }
        return 0;
    }
    */
    
    ///1005
    /*
    
    const int Mod=1e9+7;
    ll PowerMod( ll a, int b, int c ){
        ll ans = 1;
        a %= c;
        while( b ){
            if( b&1 )
                ans = (ans*a)%c;
            b >>= 1;
            a = (a*a)%c;
        }
        return ans;
    }
    int main(){
        int t,n,k;
        scanf("%d",&t);
        while(t--){
            scanf("%d%d",&n,&k);
            ll ans=0;
            for(int i=1; i<=n; ++i){
                ans+=PowerMod(i,k,Mod);
                ans+=Mod;
                ans%=Mod;
            }
            cout<<(ans+Mod)%Mod<<endl;
        }
        return 0;
    }*/
    
    ///1008
    /*const int Mod=1e9+7;
    const int N=3;
    struct Mat{
        ll m[N][N];
        Mat(){
            mem(m);
        }
        Mat friend operator* (Mat a, Mat b){
            Mat c;
            for(int i=0; i<N; i++)
                for(int j=0; j<N; j++)
                for(int k=0; k<N; k++)
                    c.m[i][j]=(c.m[i][j]+a.m[i][k]*b.m[k][j])%Mod;
            return c;
        }
    };
    Mat PowMod(Mat a, ll b){
        Mat c;
        for(int i=0; i<N; ++i) c.m[i][i]=1;
        while(b){
            if(b&1) c=c*a;
            a=a*a;
            b>>=1;
        }
        return c;
    }
    int main(){
        int t;
        ll n;
        scanf("%d",&t);
        while(t--){
            scanf("%lld",&n);
            Mat s,a,ans;
            a.m[0][0]=1,a.m[0][1]=1,a.m[0][2]=1;
            s.m[0][2]=1,s.m[1][0]=1,s.m[2][1]=1,s.m[2][2]=1;
            ans=a*PowMod(s,n-2);
            ll ans0=0;
            ans0=ans.m[0][0]+ans.m[0][1]+ans.m[0][2];
            ans0%=Mod;
            cout<<ans0<<endl;
        }
        return 0;
    }*/
  • 相关阅读:
    day10函数嵌套
    day 9
    day 8函数
    day7预习
    合唱队形(解题思维的锻炼)
    Cow Exhibition (背包中的负数问题)
    Investment(完全背包)
    Cash Machine(多重背包二进制转换)
    Milking Time(DP)
    Brackets Sequence(升级版)
  • 原文地址:https://www.cnblogs.com/max88888888/p/6828038.html
Copyright © 2020-2023  润新知