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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

[SDOI2008]Sue的小球(区间Dp)

發布時間:2023/12/20 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [SDOI2008]Sue的小球(区间Dp) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

[SDOI2008]Sue的小球

區間DPDPDP

題目

這一道題的區間DPDPDP還是比較顯然:首先可以考慮開始的總的答案是所有的初速度的和,之后再在收集的過程中逐漸減少答案,最后得到的答案最大。同時又由于速度都是線性減少的,那么dp[i][j]dp[i][j]dp[i][j]很明顯就應該表示從iiijjj這一段區間表示的答案(也就是答案減少的最小值)。這里,注意到轉移方程中既可以從左邊的點與右邊的區間轉移,又可以從右邊的點與左邊的區間轉移,這樣不妨設dp[i][j]dp[i][j]dp[i][j]表示區間為[i,j][i, j][i,j]同時人在jjj這一個位置的時候的答案減少最小值。


新的問題出來了,就是最重要的部分。

我們在轉移的時候需要使用新的節點的速度?*?已經經過的時間,但是已經經過的時間顯得非常難維護(非要使用pairpairpair也可以),這里注意到所有的小球都是要接住的,那么對于某一段區間,這一段區間外面的小球也一定會下降這個區間答案所使用的時間,于是我們可以在統計區間[i,j][i, j][i,j]的時候同時把位于區間[1,i?1]&[j+1,n][1, i - 1] \& [j + 1, n][1,i?1]&[j+1,n]的小球的答案減少也統計到這里面來。

離散化等簡單的操作就不說了。

代碼:

#include <bits/stdc++.h> using namespace std; const int N = 1000 + 5; int n, x0; struct Egg {int x, y, v;Egg (int a, int b, int c) {x = a;y = b;v = c;}Egg () {} }info[N]; int num[N]; inline int Abs (int u) {return u < 0 ? -1 * u : u; } inline int Find (int u) {int l = 1, r = n, mid;while (l < r) {mid = (l + r) / 2;if (num[mid] < u) {l = mid + 1;}else {r = mid;}}return l; } int dp[N][N], sum[N], tot; bool cmp (Egg m, Egg n) {return m.x < n.x; } int main () {#ifdef wllfreopen ("testdata.in", "r", stdin);#endifmemset (dp, 127, sizeof (dp));scanf ("%d%d", &n, &x0);for (int i = 1; i <= n; ++i) {scanf ("%d", &info[i].x);num[i] = info[i].x;}for (int i = 1; i <= n; ++i) {scanf ("%d", &info[i].y);tot += info[i].y;}for (int i = 1; i <= n; ++i) {scanf ("%d", &info[i].v);}sort (info + 1, info + n + 1, cmp);sort (num + 1, num + n + 1);for (int i = 1; i <= n; ++i) {sum[i] = sum[i - 1] + info[i].v;}for (int i = 1; i <= n; ++i) {info[i].x = Find (info[i].x);dp[i][i] = sum[n] * Abs (x0 - num[info[i].x]);}for (int k = 1; k <= n; ++k) {for (int i = 1; i <= n - k + 1; ++i) {int j = i + k - 1;dp[i][j] = min (dp[i][j], dp[i][j - 1] + (num[info[j].x] - num[info[j - 1].x]) * (sum[n] - sum[j - 1] + sum[i - 1]));dp[i][j] = min (dp[i][j], dp[j - 1][i] + (num[info[j].x] - num[info[i].x]) * (sum[n] - sum[j - 1] + sum[i - 1]));dp[j][i] = min (dp[j][i], dp[j][i + 1] + (num[info[i + 1].x] - num[info[i].x]) * (sum[n] - sum[j] + sum[i]));dp[j][i] = min (dp[j][i], dp[i + 1][j] + (num[info[j].x] - num[info[i].x]) * (sum[n] - sum[j] + sum[i]));}}printf ("%.3lf\n", (tot - min (dp[1][n], dp[n][1])) / 1000.0);return 0; }

總結

以上是生活随笔為你收集整理的[SDOI2008]Sue的小球(区间Dp)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 91国偷自产一区二区三区老熟女 | 久久久亚洲精品无码 | 黄视频在线免费看 | 四虎在线免费视频 | 99热久久这里只有精品 | 国产精品剧情一区 | 操大逼网站 | 国产午夜精品一区二区三区欧美 | a级片一级片 | 日韩综合一区二区三区 | 夜夜躁日日躁狠狠久久av | 波多野结衣av在线观看 | 久久韩日 | 亚洲综合日韩精品欧美综合区 | 久久精品一区二区三区黑人印度 | 夜夜爽网站 | 夜夜嗨一区二区三区 | 人妖粗暴刺激videos呻吟 | 成人免费视频久久 | 欧美一区二区三区在线观看视频 | 国产情侣呻吟对白高潮 | aaaaa级少妇高潮大片免费看 | 久久精品视频免费观看 | 五月天激情视频 | 国产精品99久久久久久一二区 | 国产在线无 | 国产精品久久久久久久久免费桃花 | 国产性猛交 | 国产精品老牛影视 | 亚洲第一自拍 | 国产精品毛片一区二区三区 | 精品毛片在线观看 | kendra lust free xxx| 性一交一乱一色一免费无遮挡 | jizz处女| 精品国产成人亚洲午夜福利 | 亚洲婷婷在线视频 | 日韩伦理在线视频 | 黄色片一级 | 亚洲一区欧美一区 | 男人的天堂视频 | 欧美日韩精选 | 久久精品电影网 | 日日夜夜国产精品 | 91视频久久 | 九色视频在线播放 | 综合国产视频 | 羞羞影院体验区 | 免费黄色观看 | 免费在线视频你懂的 | 北条麻妃二三区 | 亚洲视频网站在线 | 青青五月天| www.猫咪av.com | 国产日韩欧美精品在线 | 中文字幕成人在线观看 | 四季av中文字幕一区 | 亚洲av乱码久久精品蜜桃 | 亚洲国产精品自拍视频 | 丰满少妇xbxb毛片日本 | gay男互凵gay男同偷精 | 婷婷中文网 | 日韩高清三区 | 在线观看www. | 一级黄av | 国产成人麻豆精品午夜在线 | 黄色免费在线观看视频 | 蜜桃av在线免费观看 | 四虎免费视频 | 天天操操 | 最新国产三级 | 九色婷婷 | 38激情| 美女被爆操网站 | 国产小视频免费观看 | 国产精品夜夜爽 | 一区二区三区日韩在线 | 美女福利视频 | 91亚洲综合 | 亚洲精品字幕在线观看 | 国产精品一品二区三区的使用体验 | 日韩特一级 | 日b视频在线观看 | 毛片网页 | 天天干精品 | av日韩av | 国产精品自拍99 | 亚洲av无一区二区三区久久 | 视频在线观看一区二区三区 | 欧美一级爱爱 | 久久久视频6r | 亚洲网站视频 | 91成人在线观看喷潮蘑菇 | 在线看的av | 日本人妻伦在线中文字幕 | 国产久精品 | 琪琪色综合 | 国产日韩欧美中文 | www.欧美精品 |