UOJ#244-[UER#7]短路【贪心】
生活随笔
收集整理的這篇文章主要介紹了
UOJ#244-[UER#7]短路【贪心】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
正題
題目鏈接:http://uoj.ac/problem/244
題目大意
n+1n+1n+1個矩陣如下圖所示
每一層的格子有相同的延時,現在加一些平行于坐標軸的導線,求左上到右下的最小延遲。
解題思路
可以知道最優解一點是走到某個矩陣的左上角然后走這個矩陣到右下角然后到終點。
設fif_ifi?表示走到iii的左上角的最小延遲,顯然有fi=fi?1+min{aj}(1≤j<i)f_{i}=f_{i-1}+min\{a_j\}(1\leq j<i)fi?=fi?1?+min{aj?}(1≤j<i)
遞推即可。
codecodecode
#include<cstdio> #include<cstring> #include<algorithm> #define ll long long using namespace std; const ll N=1e5+10; ll n,a[N],f[N],num,ans; int main() {scanf("%lld",&n);num=ans=1e19;for(ll i=n;i>=0;i--)scanf("%lld",&a[i]);f[0]=a[0];num=a[0];for(ll i=1;i<=n;i++){f[i]=f[i-1]+a[i]+num;num=min(num,a[i]);}for(ll i=0;i<=n;i++)ans=min(ans,(f[i]+(n*2-i*2)*a[i])*2-a[i]);printf("%lld",ans); }總結
以上是生活随笔為你收集整理的UOJ#244-[UER#7]短路【贪心】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 星际争霸电脑配置要求(星际争霸电脑配置)
- 下一篇: unity 电脑配置(unity的电脑配