按d排序保证最大惩罚最小,但是此时次大惩罚+最大惩罚不一定最小,可以牺牲一个任务使得最大惩罚增大,次大惩罚减小使得最终答案减小

#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000;
int T, N, ans;
struct Data {int s, d, x;bool operator < (const Data& rhs) const {if (d != rhs.d) return d < rhs.d;return s < rhs.s;}
}node[maxn], temp[maxn];
void solve() {int t = 0, maxv = 0, maxv_ = 0;for (int i = 1; i <= N; i++) {t += temp[i].s;if (t - temp[i].d > maxv_) {maxv_ = t - temp[i].d;}if (maxv_ > maxv) swap(maxv_, maxv);}ans = min(ans, maxv + maxv_);
}
int main() {scanf("%d", &T);while (T--) {scanf("%d", &N);for (int i = 1; i <= N; i++) scanf("%d %d", &node[i].s, &node[i].d);sort(node+1, node+N+1);int t = 0, maxv = 0, maxv_ = 0, pos;for (int i = 1; i <= N; i++) {t += node[i].s;if (t - node[i].d >= maxv_) {pos = i;maxv_ = t - node[i].d;}if (maxv_ > maxv) swap(maxv_, maxv);}ans = maxv + maxv_;for (int i = pos+1; i <= N; i++) temp[i] = node[i];for (int i = 1; i < pos; i++) {for (int j = 1; j < i; j++) temp[j] = node[j];for (int j = i; j < pos; j++) temp[j] = node[j+1];temp[pos] = node[i];solve();}printf("%d\n", ans);}return 0;
}

UVALive 4850 Installations——思维相关推荐

  1. UVALive 4850 Installations 贪心

    题目链接  题意 工程师要安装n个服务,其中服务Ji需要si单位的安装时间,截止时间为di.超时会有惩罚值,若实际完成时间为ci,则惩罚值为max{0,ci-di}.从0时刻开始执行任务,问惩罚值最大 ...

  2. UVALive - 4850 Installations 贪心+枚举

    题目大意:工程师要安装n个任务,其中第i个服务Ji需要si单位的安装时间,截止时间为di,如果在截止时间之前完成任务,不会有任何惩罚,否则惩罚值为任务完成时间与截止时间之差,你的任务是让惩罚值最大的两 ...

  3. Business Cycle 【UVALive - 7501】【二分答案+思维处理】

    题目链接 14年的EC(银牌题),但是现在的大牛们进步神速,估计如今已经是道铜牌题了,具体我们先讲一下题意. 一个长度为N的自环圈,每个点(1-N)上有自己对应的权值(可能为负数),我们用一个初始值进 ...

  4. UVALive - 4636 Cubist Artwork——思维

    把正视图用体积为1的小格子先填上一层,如果把这些列重排一下恰好能构成右视图,那么当前的填充方法就是最优的,基于这个思想我们对两个数列从大到小排序后瞎搞就可以了 #include <bits/st ...

  5. Beehive UVALive - 7528 (找规律+数学思维)

    点击打开链接 There is an infinite beehive like the one given in the figure. We consider two cells to be ad ...

  6. 揭富人与穷人21个不同思维 看富豪如何脱颖而出

    <富人是怎么想的>(How Rich People Think)的作者Steve Siebold曾在近30年里采访世界各地的富豪,看究竟是什么让富豪从普通人中站出来. 他发现这和金钱基本没 ...

  7. 学习,思维三部曲:WHAT、HOW、WHY

    学习技术的三部曲:WHAT HOW WHY 我把学习归类为三个步骤:What.How.Why.经过我对周围同事和朋友的观察,大部分感觉自己技术没有提高的人,都仅仅停留在What阶段.下面我把这三个步骤 ...

  8. Linux架构思维导图

    Linux架构思维导图 GUI(Graphical User Interface,图形用户界面) Linux 学习路径 软件框架 Linux 桌面介绍 FHS:文件系统目录标准 Linux 需要特别注 ...

  9. DP UVALive 6506 Padovan Sequence

    题目传送门 /*题意:两行数字,相邻列一上一下,或者隔一列两行都可以,从左到右选择数字使和最大DP:状态转移方程:dp[i][j] = max (dp[i][j], dp[1-i][j-1] + a[ ...

最新文章

  1. Android UI -- 布局介绍(布局包括FrameLayout, LinearLayout, RelativeLayout, GridLayout)
  2. Filter_细节_过滤器拦截路径配置
  3. 杭州保俶塔实验机器人_【科教有闻】高照实验学校Pepper机器人课程亮相2020(杭州)国际数字教育大会“智能教育引领未来”论坛...
  4. 安静的飞鸽传书2011绿色版地方
  5. 计算机网络课程设计之网络聊天程序的设计与实现
  6. python简单爬虫代码-python爬虫超简单攻略,带你写入门级的爬虫,抓取上万条信息...
  7. java在线编译功能
  8. 马蜂窝火车票系统服务化改造初探
  9. android 坐标度分秒转换工具,android 经纬度度分秒与十进制之间的相互转换
  10. 智能测试实践之路-UI缺陷检测
  11. 扫 雷 小 游 戏
  12. EasyMesh - A Two-Dimensional Quality Mesh Generator
  13. 自己动手写工具(一)一个用Java8实现的内存级别的缓存
  14. 独自一人开发一整套 ERP 系统是什么水平?
  15. CellphoneDB-细胞通讯软件
  16. PCB layout学习路线
  17. 使用强化学习建立下一个最佳活动(或称行动营销)模型【译文初稿】
  18. c语言自动存取款机模拟系统
  19. 硬件系列(1)-电阻、电容、电感三大件
  20. 学生管理系统(软件架构课程实验)

热门文章

  1. c#:list转datatable;xtraReport打印
  2. 计算机科学的稿费有多少,写作近两年,稿费3000+,老实人告诉你为什么那么多人写作能月入30000...
  3. C语⾔的标识符以及规范
  4. 中医针灸学综合练习题库【12】
  5. 传统与现代的碰撞——脉学与HRV
  6. 【Web前端】HTML—6.表单标签
  7. 2017年美团Java程序员开发,看我如何拿到offer
  8. python学习之股票查询程序
  9. PEST分析顺丰服务需求_顺丰内外部环境分析.doc
  10. OGG12C安装与配置