zoukankan      html  css  js  c++  java
  • 解题:POI 2004 Bridge

    题面

    小学数奥见祖宗(相信大多数人小学都看过这个玩意

    如果你没看过这个问题,第一反应可能是让跑的最快的来回送火把,然而样例已经hack掉了这种做法,更优的做法是让跑的最快的和第二快的来回送火把。然后事实上这两种一定能组合出最优决策,为什么不会有什么跑的前三前四前几快的来回送的情况呢?因为一次只能过两个人的话让更慢的去送是没有意义的,于是递推一下就可以了

    注意边界和特判什么的......

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<algorithm>
     4 const int N=100005;
     5 long long a[N],rec[N],n;
     6 void SPJ()
     7 {
     8     if(n<=2)
     9         printf("%lld",a[n]),exit(0);
    10 }
    11 int main ()
    12 {
    13     scanf("%lld",&n);
    14     for(int i=1;i<=n;i++)
    15         scanf("%lld",&a[i]); SPJ();
    16     rec[n-1]=a[1]+a[n];
    17     for(int i=n-2;i>=2;i--)
    18         rec[i]=std::min(rec[i+1]+a[1]+a[i+1],rec[i+2]+a[2]+a[1]+a[i+2]+a[2]);
    19     printf("%lld",rec[2]+a[2]);
    20     return 0;
    21 }
    View Code
  • 相关阅读:
    Django cache (缓存)
    Django CSRF
    Django 中的 Cookie 和 Session
    Django views 中的装饰器
    Ajax 基础
    JavaScript 对象
    Django ORM 操作
    Django 视图
    Django 路由系统
    Django 模版语言
  • 原文地址:https://www.cnblogs.com/ydnhaha/p/9861526.html
Copyright © 2011-2022 走看看