51Nod 1099 任务执行顺序 (贪心)
复制代码
1 #include <iostream> 2 #include <algorithm> 3 using namespace std; 4 5 const int maxn =100000+5; 6 struct node{ 7 int r, q; 8 }a[maxn]; 9 10 bool cmp(node x, node y){ 11 if(x.r - x.q != y.r - y.q) 12 return (x.r-x.q) > (y.r-y.q); 13 return x.r > y.r; 14 } 15 16 int main() 17 { 18 int n; 19 cin >> n; 20 for(int i =0 ;i<n;i++){ 21 cin >> a[i].r >> a[i].q; 22 } 23 sort(a,a+n,cmp); 24 int ans = 0; //总空间 25 int sum = 0; //剩余的空间 26 for(int i = 0;i < n;i++){ 27 if(sum < a[i].r){ 28 ans += a[i].r - sum; 29 sum = a[i].r; 30 } 31 sum -= a[i].q; //执行后剩下的空间 32 } 33 cout << ans << endl; 34 return 0; 35 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2017-05-05 完全背包