日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【UESTC 594】我要长高

發布時間:2024/4/17 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【UESTC 594】我要长高 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目連接:https://vjudge.net/problem/UESTC-594

韓父有NN個兒子,分別是韓一,韓二…韓NN。由于韓家演技功底深厚,加上他們間的密切配合,演出獲得了巨大成功,票房甚至高達20002000萬。舟子是名很有威望的公知,可是他表面上兩袖清風實則內心陰暗,看到韓家紅紅火火,嫉妒心遂起,便發微薄調侃韓二們站成一列時身高參差不齊。由于舟子的影響力,隨口一句便會造成韓家的巨大損失,具體虧損是這樣計算的,韓一,韓二…韓NN站成一排,損失即為C×C×(韓ii與韓i+1i+1的高度差(1i<N1≤i<N))之和,搞不好連女兒都賠了.韓父苦苦思索,決定給韓子們內增高(注意韓子們變矮是不科學的只能增高或什么也不做),增高11cm是很容易的,可是增高1010cm花費就很大了,對任意韓ii,增高HHcm的花費是H2H2.請你幫助韓父讓韓家損失最小。

Input

有若干組數據,一直處理到文件結束。

每組數據第一行為兩個整數:韓子數量NN(1N500001≤N≤50000)和舟子系數CC(1C1001≤C≤100)

接下來NN行分別是韓i的高度(1hi1001≤hi≤100)。

Output

對每組測試數據用一行輸出韓家的最小損失。

Sample Input

5 2 2 3 5 1 4

Sample Output

15

Hint

輸入數據多請使用scanf代替cin

題解:我連線性Dp都沒一次過嗎(哭了),先講下N*H*H的算法吧。(我一開始初始化有問題)

? ? ? ? ? ?第一層i先枚舉n個人,第二次枚舉n個人的身高j,第三層枚舉k,即第i-1個人的身高。

#include<iostream> #include<algorithm> #include<queue> #include<cmath> #include<cstring> #include<cstdlib> #include<cstdio> using namespace std; const int oo=0x3f3f3f3f; const int N=50005; int fun,n,c,a[N],dp[N][101]; int ans=oo; int main(){freopen("1685.in","r",stdin);freopen("1685.out","w",stdout);scanf("%d %d",&n,&c);memset(dp,0x3f,sizeof(dp));scanf("%d",&a[1]);for(int j=a[1];j<=100;j++){dp[1][j]=(j-a[1])*(j-a[1]);//cout<<dp[1][j]<<endl; }for(int i=2;i<=n;i++)scanf("%d",&a[i]);for(int i=2;i<=n;i++){//dp[i][a[i]]=0;for(int j=a[i];j<=100;j++){for(int k=a[i-1];k<=100;k++){fun=dp[i-1][k]+abs(j-k)*c+(a[i]-j)*(a[i]-j);dp[i][j]=min(dp[i][j],fun);} }}for(int i=0;i<=100;i++)ans=min(dp[n][i],ans);printf("%d\n",ans);return 0; }

?

轉載于:https://www.cnblogs.com/wuhu-JJJ/p/11335014.html

總結

以上是生活随笔為你收集整理的【UESTC 594】我要长高的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。