zoukankan      html  css  js  c++  java
  • CodeForces

    每个位置的数变化最多为[0,1,2],就像1,1,2这种情况,中间位置最多加2,我们从后往前处理

    #include <bits/stdc++.h>
    #define inf 2333333333333333
    #define N 1000010
    #define p(a) putchar(a)
    #define For(i,a,b) for(long long i=a;i<=b;++i)
    //by war
    //2020.7.21
    using namespace std;
    long long T,n,ans;
    long long f[N][3];
    struct node{
        long long h;
        long long v;
    }a[N];
    void in(long long &x){
        long long y=1;char c=getchar();x=0;
        while(c<'0'||c>'9'){if(c=='-')y=-1;c=getchar();}
        while(c<='9'&&c>='0'){ x=(x<<1)+(x<<3)+c-'0';c=getchar();}
        x*=y;
    }
    void o(long long x){
        if(x<0){p('-');x=-x;}
        if(x>9)o(x/10);
        p(x%10+'0');
    }
    
    long long dfs(long long pos,long long k){
        if(~f[pos][k]) return f[pos][k];
        long long temp=inf;
        For(j,0,2)
            if(j+a[pos-1].h != a[pos].h+k)
                temp=min(temp,dfs(pos-1,j)+k*a[pos].v);
        f[pos][k]=temp;
        return f[pos][k];
    }
    
    signed main(){
        in(T);
        while(T--){
            in(n);
            For(i,1,n){
                in(a[i].h);in(a[i].v);
            }
            For(i,1,n)
                For(j,0,2)
                    f[i][j]=-1;
            f[1][0]=0;f[1][1]=a[1].v;f[1][2]=a[1].v*2;
            ans=inf;
            For(i,0,2) ans=min(ans,dfs(n,i));
            o(ans);p('
    ');
        }
        return 0;
    }
  • 相关阅读:
    全景3d
    node.JS
    同步、异步
    必填
    this.$http.post ||this.$http.put||vue 获取url参
    硬编码转换单位||vue
    路由下二级跳转: childen 的childen
    vue侧边栏导航和右边内容一样高
    v-for v-if || v-else
    Python_Automation_04Email_smtplib
  • 原文地址:https://www.cnblogs.com/war1111/p/13359233.html
Copyright © 2011-2022 走看看