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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【Codeforces Round #185 (Div. 2) D】Cats Transport

發布時間:2024/1/8 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Codeforces Round #185 (Div. 2) D】Cats Transport 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【鏈接】 鏈接
【題意】


有n座山,m只貓。
每只貓都在其中的一些山上玩。
第i只貓在h[i]山上玩,且會在t[i]時刻出現在山腳下(然后就一直在那里等)
然后有p個人。
它們聽從你的安排。
在某個時刻從1號山出發,依次經過每座山,如果有貓在山腳。那么它會順便把它們帶走。
(山與山之間有距離,然后人移動的速度是1單位每秒)
每個人可以無限數量地拿貓。
問你所有貓的總等待時間的最小值是多少。
(人可以在負數的時間出發)

【題解】


把山與山之間的距離求成前綴和。
即d[i]表示1..i之間的距離
然后對于第i只貓,設a[i] = t[i] - d[h[i]];
則a[i]就表示恰好走到h[i]的時候,貓恰好下來,應該從何時從1出發。
按照a[i]升序排一下。
那么
現在相當于,讓你在這m只貓里,選連續的p個段。分完所有的m只貓。
且所有貓的等待時間總和最短。
這個可以用區間DP來寫。
每個區間里的貓都在區間的右端點的貓的時間出發去取。然后算一下代價就好。
設s[i] = a[1] + a[2] +...+a[i],dp[i][j]表示i個人管了前j只貓的最小值
則dp[i][j] = min{dp[i-1][x] + a[j](j-x)-(s[j]-s[x])};
這樣的復雜度是
\(O(p*m^2)\)
考慮斜率優化。
假設x<y<j
且y優于x

dp[i-1][y] + a[j]j - a[j]y-s[j]+s[y] < dp[i-1][x] + a[j]j - a[j]x-s[j]+s[x]

dp[i-1][y]+s[y]-a[j]y<dp[i-1][x]+s[x]-a[j]*x
也即
\(\frac{dp[i-1][y]+s[y]-(dp[i-1][x]+s[x])}{y-x} < a[j]\)
而a[j]我們已經升序排了,是單調遞增的。
那么就是一個經典的斜率優化了。
優化過后。
復雜度能降為\(O(p*m)\)級別。

【錯的次數】


在這里輸入錯的次數

【反思】


在這里輸入反思

【代碼】

#include<bits/stdc++.h> #define ll long long using namespace std;const int N = 1e5; const int P = 1e2;int n,m,p,d[N+10],a[N+10]; ll s[N+10]; ll dp[P+10][N+10]; int dl[N+10],head,tail;double ju(int i,int x,int y) {return (1.0)*(dp[i-1][y] + s[y] - (dp[i-1][x]+s[x]))/(1.0*(y-x)); }int main() {//freopen("F:\\rush.txt","r",stdin);scanf("%d%d%d",&n,&m,&p);for (int i = 2;i <= n;i++){scanf("%d",&d[i]);d[i]+=d[i-1];}for (int i = 1;i <= m;i++){int h,t;scanf("%d%d",&h,&t);a[i] = t - d[h];}sort(a+1,a+1+m);for (int i = 1;i <= m;i++)s[i] = s[i-1] + a[i];for (int i = 0;i <= p;i++)for (int j = 1;j <= m;j++)dp[i][j] = 1e17;dp[0][0] = 0;for (int i = 1;i <= p;i++){head = 1,tail = 1;dl[1] = 0;for (int j = 1;j <= m;j++){while (head < tail && ju(i,dl[head],dl[head+1])<a[j]) head++;dp[i][j] = min(dp[i][j],dp[i-1][dl[head]] + 1LL*a[j]*(j-dl[head])-(s[j]-s[dl[head]]));while (head < tail && ju(i,dl[tail-1],dl[tail])>ju(i,dl[tail],j)) tail--;dl[++tail] = j;}}printf("%lld\n",dp[p][m]);return 0; }

轉載于:https://www.cnblogs.com/AWCXV/p/7636636.html

總結

以上是生活随笔為你收集整理的【Codeforces Round #185 (Div. 2) D】Cats Transport的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 午夜精品久久久久久久 | 精品无码久久久久国产 | 青青草社区 | 污视频网址| 色婷婷激情五月 | 综合久久一区二区 | 久草视频免费播放 | 中文字幕黄色 | 国产情侣av自拍 | 欧美大黑b| 亚洲中文字幕无码专区 | 国产女人18水真多18精品一级做 | 草久在线视频 | 国产超碰97 | 人人草人人看 | 美女露胸无遮挡 | 毛片在线免费观看网址 | 亚洲色图36p | 天天摸天天舔天天操 | 欧美变态绿帽cuckold | 日本一区二区在线视频 | 波多野结衣一本 | mm1313亚洲精品 | 日本一区二区三区免费电影 | 熟妇人妻无乱码中文字幕真矢织江 | 欧美日韩小视频 | 蜜桃网站 | 国产精品99久久久久久一二区 | 国产人成在线 | 中文在线观看高清视频 | 在线看黄色网址 | 99久久精品免费看国产免费软件 | 欧美激情一区二区三级高清视频 | xxx69美国| 国产欧美日韩视频 | 爱福利视频网 | 色天堂视频| 91国偷自产中文字幕久久 | 久久综合色综合 | 国产-第1页-浮力影院 | 日一日干一干 | 98久久| 国产精品第三页 | 成年人在线观看视频 | 四虎亚洲精品 | 国产高h视频 | 在线视频 一区二区 | 日日摸日日添日日躁av | 久久久三级视频 | 五月天一区二区三区 | 99插插| 色综合av在线 | 91国语对白 | 国产寡妇色xxⅹ交肉视频 | 操操操日日日 | 欧美888 | 日韩高清av| 麻豆网站免费看 | 欧美黄色小说 | 日韩在线精品强乱中文字幕 | 白丝一区| 黄网视频在线观看 | 淫久久| 欧美日韩一级黄色片 | 免费国产在线观看 | gav在线 | 麻豆一区二区在线 | 青青草国产在线 | ass亚洲尤物裸体pics | 日皮视频免费看 | 一本色道久久综合亚洲精品图片 | 亚洲欧洲日本一区二区三区 | 加勒比成人在线 | 欧美精品乱码视频一二专区 | 毛片网站在线免费观看 | 日韩爱爱片 | 最近免费中文字幕大全免费版视频 | 少妇视频在线观看 | 视频一区三区 | 国产精品久久久久无码av色戒 | 91插视频| 少妇被狂c下部羞羞漫画 | 亚洲热影院 | 久久久久久一 | 欧美福利电影 | 日韩中文字幕高清 | 国产麻豆乱码精品一区二区三区 | 欧美日韩在线观看一区二区三区 | 成人无码www在线看免费 | 日韩欧美精品在线视频 | 一级做a爰片 | 农民人伦一区二区三区 | 污污网站在线播放 | 日韩啪 | 老司机久久 | 成人午夜视频在线 | 日韩中文字| 国产一区二区三区影院 | 丰满少妇被猛烈进入高清播放 |