luogu2577/bzoj1899 午餐 (貪心+dp)

首先,應該盡量讓吃飯慢的排在前面,先按這個排個序

然后再來決定每個人到底去哪邊

設f[i][j]是做到了第i個人,然后1號窗口目前的總排隊時間是j,目前的最大總時間

有這個i和j的話,再預處理出前i個人的排隊總時間sum[i],可以知道在2號窗口的排隊時間是sum[i]-j

拿著兩個去更新答案就行了

 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 }

?

轉載于:https://www.cnblogs.com/Ressed/p/9833565.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/450932.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/450932.shtml
英文地址,請注明出處:http://en.pswp.cn/news/450932.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

wpf中xps文檔合并功能實現

原文:wpf中xps文檔合并功能實現跟著上一篇的xps文檔套打的文章&#xff0c;近期一直在研究xps打印技術&#xff0c;其中用戶提到了一個需求&#xff0c;要求能夠多頁面進行打印&#xff0c;我的想法是&#xff0c;先生成xps文件&#xff0c;然后將文件讀取出來以后&#xff0c;…

DCT(離散余弦變換(DiscreteCosineTransform))

離散余弦變換&#xff08;Discrete Cosine Transform&#xff0c;簡稱DCT變換&#xff09;是一種與傅立葉變換緊密相關的數學運算。在傅立葉級數展開式中&#xff0c;如果被展開的函數是實偶函數&#xff0c;那么其傅立葉級數中只包含余弦項&#xff0c;再將其離散化可導出余弦…

從源碼看ConcurrentHashMap

簡介 ConcurrentHashMap是線程安全的HashMap實現&#xff0c;這里主要研究JDK8后的ConcurrentHashMap&#xff0c;下面是ConcurrentHashMap的簡單結構&#xff1a; ConcurrentHashMap基于HashMap的基本邏輯&#xff0c;通過CAS synchronized 來保證并發安全性。ConcurrentHas…

代碼重構的方法

見&#xff1a;http://blog.csdn.net/u011889786/article/details/51865344 見&#xff1a;http://blog.csdn.net/weiky626/article/details/1602691 一.提取子函數 說白了就是一個大函數里&#xff0c;可以根據不同功能分成幾個小函數&#xff0c;因為說不定&#xff0c;其他…

android 去掉標題欄、狀態欄、橫屏

// 去掉標題欄supportRequestWindowFeature(Window.FEATURE_NO_TITLE);// 全屏、隱藏狀態欄getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);// 橫屏setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION…

Spring Boot 整合Mybatis (一)

2019獨角獸企業重金招聘Python工程師標準>>> 新建spring-boot項目&#xff0c;相關依賴 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><de…

x264 的 cache詳解

在這里和下一級別的分析中有必要先講一下這個h->mb.cache&#xff08;沒法講&#xff0c;就是cache!&#xff09;。 x264_macroblock_cache_load將參考幀中某位置的&#xff08;重建后&#xff09;數據保存進cache&#xff0c;供參考和反復使用。 x264_macroblock_cache_s…

同步/異步阻塞/非阻塞

平時開發中經常會聽大家說到什么同步阻塞、異步非阻塞等等名詞&#xff0c;這里我談下自己對這兩個名詞的理解&#xff0c;僅僅是個人觀點&#xff0c;并不一定正確。 1.阻塞/非阻塞 我認為判定阻塞還是非阻塞&#xff0c;取決于線程所做的操作是否需要將線程掛起等待。 舉個…

Repeater的使用

1.頁面代碼 如果要分頁&#xff0c;那么頁面開頭必須寫&#xff08;<% Register Src"~/Controls/Page.ascx" TagName"Page" TagPrefix"uc1" %>&#xff09; 并且分頁&#xff0c;頁腳<uc1:Page ID"Page2" runat"server&…

springboot 整合 mongodb實現 批量更新數據

現需求&#xff1a;需要批量將1000個數據先查詢在更新到mongodb&#xff08;如果查詢不到數據&#xff0c;則添加數據&#xff09; 1&#xff1a;工具類BathUpdateOptions 1 import org.springframework.data.mongodb.core.query.Query;2 import org.springframework.data.mong…

【開題報告】基于微信小程序的校園資訊平臺的設計與實現

1.選題背景與意義 隨著移動互聯網的快速發展&#xff0c;微信成為了人們日常生活中不可或缺的工具之一。在校園生活中&#xff0c;學生們對于校園資訊的獲取和交流需求也越來越高。然而&#xff0c;傳統的校園資訊發布方式存在信息不及時、傳播范圍有限等問題&#xff0c;無法…

三種Cache寫入方式原理簡介

三種Cache寫入方式原理簡介 在386以上檔次的微機中&#xff0c;為了提高系統效率&#xff0c;普遍采用Cache&#xff08;高速緩沖存儲器&#xff09;&#xff0c;現在的系統甚至可以擁有多級Cache。Cache實際上是位于CPU與DRAM主存儲器之間少量超高速的靜態存儲器&#xff08;S…

Minor GC和Full GC

我們在日常開發中可能經常會聽大家談論GC&#xff0c;但是其實很多人對GC的種類其實并不是很了解&#xff0c;接下來我們簡單介紹下Minor GC和Full GC及他們的區別。 MinorGC&#xff1a; 也可以叫作新生代GC&#xff0c;指的是發生在新生代的垃圾收集動作。因為新生代中對象大…

linux安裝軟件的幾種方法

見&#xff1a;http://blog.csdn.net/u010509774/article/details/50593231 一、rpm包安裝方式步驟&#xff1a; 1、找到相應的軟件包&#xff0c;比如soft.version.rpm&#xff0c;下載到本機某個目錄&#xff1b; 2、打開一個終端&#xff0c;su -成root用戶&#xff1b; …

Android NDK MediaCodec在ijkplayer中的實踐

https://www.jianshu.com/p/41d3147a5e07 從API 21&#xff08;Android 5.0&#xff09;開始Android提供C層的NDK MediaCodec的接口。 Java MediaCodec是對NDK MediaCodec的封裝&#xff0c;ijkplayer硬解通路一直使用的是Java MediaCodec接Surface的方式。 本文的主要內容是&a…

leetcode-49-字母異位詞分組(神奇的哈希)

題目描述&#xff1a; 給定一個字符串數組&#xff0c;將字母異位詞組合在一起。字母異位詞指字母相同&#xff0c;但排列不同的字符串。 示例: 輸入: ["eat", "tea", "tan", "ate", "nat", "bat"], 輸出: [[&quo…

【精心總結】java內存模型和多線程必會知識

內存模型 &#xff08;1&#xff09;java內存模型到底是個啥子東西&#xff1f; java內存模型是java虛擬機規范定義的一種特定模型&#xff0c;用以屏蔽不同硬件和操作系統的內存訪問差異&#xff0c;讓java在不同平臺中能達到一致的內存訪問效果&#xff0c;是在特定的協議下…

工作流 activity 視頻教程 + redis 視頻教程 百度網盤分享地址

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 云盤下載都沒有密碼&#xff0c;直接下載&#xff0c;解壓有密碼&#xff1a;chongxiangmengxiangjiaoyu&#xff0c; 解壓完成后就可以…

快速解決 GRADLE 項目下載 gradle-*-all.zip 慢的問題

1、首先根據項目中 gradle\wrapper\gradle-wrapper.properties 文件的 distributionUrl 屬性的值 #Tue Feb 06 12:27:20 CET 2018 distributionBaseGRADLE_USER_HOME distributionPathwrapper/dists zipStoreBaseGRADLE_USER_HOME zipStorePathwrapper/dists distributionUrlht…

[Python] 程序結構與控制流

1. 條件語句 if、else與elif語句用于控制條件代碼的執行。條件語句的一般格式如下&#xff1a; if expression:statements elif expression:statements elif expression:statements ... else:statements 如果不需要執行任何操作&#xff0c;可以省略條件語句的else和elif子句。…