zoukankan      html  css  js  c++  java
  • 牛客小白月赛34(待补全,等期末考完

    dd爱科学1.0

    最长不下降子序列。。。

    dd爱科学2.0

    每次改成啥不知道,要求结果最大化

    一看1e6,暴力dp上

    int a[N],n,dp[N][30];
    char s[N];
    void solve(){
        cin>>n;cin>>s+1;
        for(int i=1;i<=n;++i){
            a[i]=s[i]-'A'+1;
        }
        for(int i=0;i<=n;++i){
            for(int j=0;j<=26;++j){
                dp[i][j]=inf;        
            }
        }
        for(int i=1;i<=26;++i){
            dp[1][i]=abs(a[1]-i);
        }
        for(int i=2;i<=n;++i){
            for(int j=1;j<=26;++j){
                for(int k=1;k<=j;++k){
                    dp[i][j]=min(dp[i][j],dp[i-1][k]+abs(j-a[i]));
                }
            }
        }
        int ans=inf;
        for(int i=1;i<=26;++i){
            ans=min(dp[n][i],ans);
        }
        cout<<ans<<endl;
    }

    dd爱框框

    找一段最短的区间,区间和大于等于x,随便尺取一下

    int p1,p2,sum=0,n,x,a[N],l,r;
    void solve(){
        cin>>n>>x;int ans=n;
        for(int i=1;i<=n;++i)cin>>a[i]; 
        p1=1;p2=0;
        while(p2<=n){
            p2++;sum+=a[p2];
            while(p2<=n&&sum<x){
                p2++;
                sum+=a[p2];
            }
            while(p1<=n&&sum-a[p1]>=x){
                sum-=a[p1];
                p1++;
            }
            if(ans>p2-p1+1){
                ans=p2-p1+1;
                l=p1;r=p2;
            }
        }
        cout<<l<<" "<<r<<endl;
    }
  • 相关阅读:
    HDU2222 自动机(学习中)
    POJ 2289(多重匹配+二分)
    POJ 1486二分图的必要边
    二分图
    2015陕西 并查集
    Hdu2680 最短路
    函数调用约定
    用01随机函数构造[a,b]整数范围随机数
    hello
    Ubuntu 16.04 install R language
  • 原文地址:https://www.cnblogs.com/PdrEam/p/14833551.html
Copyright © 2011-2022 走看看