acgo题库
  • 首页
  • 题库
  • 题单
  • 竞赛
  • 讨论
  • 排行
  • 团队
  • 备赛专区

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
登录
注册
题目详情题解(0)讨论(0)提交记录(0)
  • 题解!!!

    #include<bits/stdc++.h> using namespace std; long long f[1001][1001];//f[i][j]表示当前位置为i,本次移动移动了j格 int a[1001];//第i个格子的花费 long long ans,n; int main(){ ans=0x7f7f7f7f; cin>>n; for(int i=1;i<=n;i++)cin>>a[i]; memset(f,0x7f,sizeof(f)); f[1][0]=0;//初始化设置 for(int j=1;j<=n-1;j++){ for(int i=n;i>=1;i--){ if(i>j)f[i][j]=min(f[i][j],f[i-j][j-1]);//当这个格子能从前前进到达时,更新此时数组值 if(i+j<=n)f[i][j]=min(f[i][j],f[i+j][j]);//当这个格子能从后倒退到达时,更新此时数组值 if(f[i][j]<0x7fffffff){//若以上任意两种情况满足一种及以上,加上花费 f[i][j]+=a[i]; } if(i==n){//更新答案 if(f[i][j]<ans)ans=f[i][j]; } } } cout<<ans; return 0; } 注!!! “//”为注释哦!!

    userId_undefined

    Lin猫澈.暮夏

    1阅读
    0回复
    0点赞
首页