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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

luogu2577/bzoj1899 午餐 (贪心+dp)

發(fā)布時(shí)間:2023/12/18 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 luogu2577/bzoj1899 午餐 (贪心+dp) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

首先,應(yīng)該盡量讓吃飯慢的排在前面,先按這個(gè)排個(gè)序

然后再來決定每個(gè)人到底去哪邊

設(shè)f[i][j]是做到了第i個(gè)人,然后1號(hào)窗口目前的總排隊(duì)時(shí)間是j,目前的最大總時(shí)間

有這個(gè)i和j的話,再預(yù)處理出前i個(gè)人的排隊(duì)總時(shí)間sum[i],可以知道在2號(hào)窗口的排隊(duì)時(shí)間是sum[i]-j

拿著兩個(gè)去更新答案就行了

1 #include<bits/stdc++.h> 2 #define pa pair<int,int> 3 #define CLR(a,x) memset(a,x,sizeof(a)) 4 using namespace std; 5 typedef long long ll; 6 const int maxn=210; 7 8 inline ll rd(){ 9 ll x=0;char c=getchar();int neg=1; 10 while(c<'0'||c>'9'){if(c=='-') neg=-1;c=getchar();} 11 while(c>='0'&&c<='9') x=x*10+c-'0',c=getchar(); 12 return x*neg; 13 } 14 15 int f[maxn][maxn*maxn],st[maxn]; 16 int N; 17 struct Node{ 18 int e,q; 19 }p[maxn]; 20 21 inline bool cmp(Node a,Node b){return a.e>b.e;} 22 23 int main(){ 24 //freopen("","r",stdin); 25 int i,j,k; 26 N=rd(); 27 for(i=1;i<=N;i++){ 28 p[i].q=rd(),p[i].e=rd(); 29 }sort(p+1,p+N+1,cmp); 30 for(i=1;i<=N;i++) 31 st[i]=st[i-1]+p[i].q; 32 33 CLR(f,127);f[0][0]=0; 34 for(i=1;i<=N;i++){ 35 for(j=0;j<=N*200;j++){ 36 if(f[i-1][j]>=1e8) continue; 37 f[i][j+p[i].q]=min(f[i][j+p[i].q],max(f[i-1][j],j+p[i].q+p[i].e)); 38 f[i][j]=min(f[i][j],max(f[i-1][j],st[i]-j+p[i].e)); 39 } 40 } 41 int ans=1e9; 42 for(j=0;j<=N*200;j++) 43 ans=min(ans,f[N][j]); 44 printf("%d\n",ans); 45 return 0; 46 }

?

轉(zhuǎn)載于:https://www.cnblogs.com/Ressed/p/9833565.html

總結(jié)

以上是生活随笔為你收集整理的luogu2577/bzoj1899 午餐 (贪心+dp)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。