zoukankan      html  css  js  c++  java
  • 洛谷 P1220 关路灯

    题目传送门

    解题思路:

    f[i][j][0]表示i~j区间的灯全部被关了,当前站在i.

    f[i][j][1]表示i~j区间的灯全部被关了,当前站在j.

    剩下在代码里.

    AC代码:

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<algorithm>
     4 #include<cstring>
     5 
     6 using namespace std;
     7 
     8 int n,c,a[51],v[51],sum[51],f[51][51][2];
     9 
    10 int main() {
    11     scanf("%d%d",&n,&c);
    12     for(int i = 1;i <= n; i++) {
    13         scanf("%d%d",&a[i],&v[i]);
    14         sum[i] = sum[i-1] + v[i];
    15     }
    16     memset(f,0x3f3f,sizeof(f)); 
    17     f[c][c][1] = f[c][c][0] = 0;
    18     for(int len = 1;len < n; len++)
    19         for(int i = 1,j = len + i;j <= n; i++,j++) {
    20             f[i][j][0] = min(f[i+1][j][0] + (a[i+1] - a[i]) * (sum[i] + sum[n] - sum[j]),f[i+1][j][1] + (a[j] - a[i]) * (sum[n] - sum[j] + sum[i]));
    21             //从i+1走过来,或从j走过来关i 
    22             f[i][j][1] = min(f[i][j-1][1] + (a[j] - a[j-1]) * (sum[i-1] + sum[n] - sum[j-1]),f[i][j-1][0] + (a[j] - a[i]) * (sum[i-1] + sum[n] - sum[j-1]));
    23             //从j-1走过来,或从i走过来关j 
    24         }
    25     printf("%d",min(f[1][n][0],f[1][n][1]));
    26     return 0;
    27 }
  • 相关阅读:
    利用 localStorage 储存css js
    实现图片延迟加载的一些 库
    less 应用
    vue 问题集合||
    一个简易的登录框
    python_协程方式操作数据库
    爬取知名社区技术文章_分析_1
    python_爬百度百科词条
    python_爬校花图片
    python_猜年龄
  • 原文地址:https://www.cnblogs.com/lipeiyi520/p/12247068.html
Copyright © 2011-2022 走看看