【ZJOI2005】午餐

题面

https://www.luogu.org/problem/P2577

题解

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
struct node{
  int a,b;
  bool operator < (const node &rhs) const {
    return b>rhs.b;
  }
} t[250];
const int inf=98765;
int n,ans=inf;
int f[205][40250],sum[205];

int dp(int x,int y) {
  if (x>=0&&y>=0 && y<=sum[x]) return f[x][y]; else return inf;
}

int main() {
  int i,j;
  scanf("%d",&n);
  sum[0]=0;
  for (i=1;i<=n;i++) {
    scanf("%d %d",&t[i].a,&t[i].b);
  }
  sort(t+1,t+n+1);
  for (i=1;i<=n;i++) sum[i]=sum[i-1]+t[i].a;
  memset(f,0x3f,sizeof(f));
  f[0][0]=0;
  for (i=1;i<=n;i++) {
      for (j=0;j<=sum[i];j++) f[i][j]=min(max(dp(i-1,j-t[i].a),j+t[i].b),max(dp(i-1,j),sum[i]-j+t[i].b));
  }
  ans=inf;
  for (i=0;i<=sum[n];i++) ans=min(ans,f[n][i]);
  cout<<ans<<endl;
}

原文地址:https://www.cnblogs.com/shxnb666/p/11427298.html

时间: 2024-07-30 15:35:28

【ZJOI2005】午餐的相关文章

ZJOI2005午餐

描述 上午的训练结束了,THU ACM小组集体去吃午餐,他们一行N人来到了著名的十食堂.这里有两个打饭的窗口,每个窗口同一时刻只能给一个人打饭.由于每个人的口味(以及胃口)不同,所以他们要吃的菜各有不同,打饭所要花费的时间是因人而异的.另外每个人吃饭的速度也不尽相同,所以吃饭花费的时间也是可能有所不同的. THU ACM小组的吃饭计划是这样的:先把所有的人分成两队,并安排好每队中各人的排列顺序,然后一号队伍到一号窗口去排队打饭,二号队伍到二号窗口去排队打饭.每个人打完饭后立刻开始吃,所有人都吃完

[ZJOI2005]午餐 (贪心,动态规划)

题目描述 上午的训练结束了,THU ACM小组集体去吃午餐,他们一行N人来到了著名的十食堂.这里有两个打饭的窗口,每个窗口同一时刻只能给一个人打饭.由于每个人的口味(以及胃口)不同,所以他们要吃的菜各有不同,打饭所要花费的时间是因人而异的.另外每个人吃饭的速度也不尽相同,所以吃饭花费的时间也是可能有所不同的. THU ACM小组的吃饭计划是这样的:先把所有的人分成两队,并安排好每队中各人的排列顺序,然后一号队伍到一号窗口去排队打饭,二号队伍到二号窗口去排队打饭.每个人打完饭后立刻开始吃,所有人都

P2577 [ZJOI2005]午餐

题目描述 上午的训练结束了,THU ACM小组集体去吃午餐,他们一行N人来到了著名的十食堂.这里有两个打饭的窗口,每个窗口同一时刻只能给一个人打饭.由于每个人的口味(以及胃口)不同,所以他们要吃的菜各有不同,打饭所要花费的时间是因人而异的.另外每个人吃饭的速度也不尽相同,所以吃饭花费的时间也是可能有所不同的. THU ACM小组的吃饭计划是这样的:先把所有的人分成两队,并安排好每队中各人的排列顺序,然后一号队伍到一号窗口去排队打饭,二号队伍到二号窗口去排队打饭.每个人打完饭后立刻开始吃,所有人都

[ZJOI2005]午餐

题目描述 上午的训练结束了,THU ACM小组集体去吃午餐,他们一行N人来到了著名的十食堂.这里有两个打饭的窗口,每个窗口同一时刻只能给一个人打饭.由于每个人的口味(以及胃口)不同,所以他们要吃的菜各有不同,打饭所要花费的时间是因人而异的.另外每个人吃饭的速度也不尽相同,所以吃饭花费的时间也是可能有所不同的. THU ACM小组的吃饭计划是这样的:先把所有的人分成两队,并安排好每队中各人的排列顺序,然后一号队伍到一号窗口去排队打饭,二号队伍到二号窗口去排队打饭.每个人打完饭后立刻开始吃,所有人都

[luoguP2577] [ZJOI2005]午餐(DP)

传送门 显然吃饭时间越长的人排在前面越好,所以先排序. f[i][j]表示前i个人,A队的打饭时间为j的最优解,每个人只有两种选择,去A队或是去B队. #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define N 201 #define max(x, y) ((x) > (y) ? (x) : (y)) #define min(x, y)

我不想写题解的题们

[NOI2004]起床困难综合征:预处理每一位用1好还是0好,按位贪心就行. [网络流24题]运输问题:最小费用最大流裸题,最大费用权值取反就行.(然后我spfa就写错了) [ZJOI2005]午餐:排序后DP就行. [USACO08OCT]WateringHole:Prim板子. [SDOI2009]HH去散步:矩阵优化DP. [国家集训队]小Z的袜子:莫队. [HNOI2008]弹飞绵羊:分块,维护某个点几步出块和出块后到哪个点. [Luogu]教主的魔法:分块. 原文地址:https://

【BZOJ1898】[Zjoi2005]Swamp 沼泽鳄鱼 矩阵乘法

[BZOJ1898][Zjoi2005]Swamp 沼泽鳄鱼 Description 潘塔纳尔沼泽地号称世界上最大的一块湿地,它地位于巴西中部马托格罗索州的南部地区.每当雨季来临,这里碧波荡漾.生机盎然,引来不少游客.为了让游玩更有情趣,人们在池塘的中央建设了几座石墩和石桥,每座石桥连接着两座石墩,且每两座石墩之间至多只有一座石桥.这个景点造好之后一直没敢对外开放,原因是池塘里有不少危险的食人鱼.豆豆先生酷爱冒险,他一听说这个消息,立马赶到了池塘,想做第一个在桥上旅游的人.虽说豆豆爱冒险,但也不

微服务架构——不是免费的午餐

当我開始了解<微服务架构>的时候,我发现里面的中文文章是相当的少,于是開始试着翻译一些文章,比方这一篇<微服务--不是免费的午餐>.这篇文章是在某次讨论结束后听到的,和之前相似的是这样的差别有点相似于之前说的微内核与宏内核的差别. 译文例如以下: 文章是由Contino公司的CTO,Benjamin Wootton写的.Contino是一家在伦敦的咨询公司,专注于DevOps和持续支付. Microservices are a style of software architect

Unit 05 受邀与同事共进午餐

单词 restaurant    餐厅 yet           还(未) dinner        主餐 bother        麻烦 pleasure      快乐 tomato        西红柿 either        也 project       工程 know          知道 follow        跟随 trifle        琐事 waste         浪费 ashamed       害羞的 roughly       大致地 conce