网站meta 优化建议,中国十大软件开发公司排名,站外推广网站,作品怎么推广首先#xff0c;应该尽量让吃饭慢的排在前面#xff0c;先按这个排个序 然后再来决定每个人到底去哪边 设f[i][j]是做到了第i个人#xff0c;然后1号窗口目前的总排队时间是j#xff0c;目前的最大总时间 有这个i和j的话#xff0c;再预处理出前i个人的排队总时间sum[i]应该尽量让吃饭慢的排在前面先按这个排个序 然后再来决定每个人到底去哪边 设f[i][j]是做到了第i个人然后1号窗口目前的总排队时间是j目前的最大总时间 有这个i和j的话再预处理出前i个人的排队总时间sum[i]可以知道在2号窗口的排队时间是sum[i]-j 拿着两个去更新答案就行了 1 #includebits/stdc.h2 #define pa pairint,int3 #define CLR(a,x) memset(a,x,sizeof(a))4 using namespace std;5 typedef long long ll;6 const int maxn210;7 8 inline ll rd(){9 ll x0;char cgetchar();int neg1;
10 while(c0||c9){if(c-) neg-1;cgetchar();}
11 while(c0c9) xx*10c-0,cgetchar();
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.eb.e;}
22
23 int main(){
24 //freopen(,r,stdin);
25 int i,j,k;
26 Nrd();
27 for(i1;iN;i){
28 p[i].qrd(),p[i].erd();
29 }sort(p1,pN1,cmp);
30 for(i1;iN;i)
31 st[i]st[i-1]p[i].q;
32
33 CLR(f,127);f[0][0]0;
34 for(i1;iN;i){
35 for(j0;jN*200;j){
36 if(f[i-1][j]1e8) continue;
37 f[i][jp[i].q]min(f[i][jp[i].q],max(f[i-1][j],jp[i].qp[i].e));
38 f[i][j]min(f[i][j],max(f[i-1][j],st[i]-jp[i].e));
39 }
40 }
41 int ans1e9;
42 for(j0;jN*200;j)
43 ansmin(ans,f[N][j]);
44 printf(%d\n,ans);
45 return 0;
46 } 转载于:https://www.cnblogs.com/Ressed/p/9833565.html