UVALive 4850 Installations——思维
按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——思维相关推荐
- UVALive 4850 Installations 贪心
题目链接 题意 工程师要安装n个服务,其中服务Ji需要si单位的安装时间,截止时间为di.超时会有惩罚值,若实际完成时间为ci,则惩罚值为max{0,ci-di}.从0时刻开始执行任务,问惩罚值最大 ...
- UVALive - 4850 Installations 贪心+枚举
题目大意:工程师要安装n个任务,其中第i个服务Ji需要si单位的安装时间,截止时间为di,如果在截止时间之前完成任务,不会有任何惩罚,否则惩罚值为任务完成时间与截止时间之差,你的任务是让惩罚值最大的两 ...
- Business Cycle 【UVALive - 7501】【二分答案+思维处理】
题目链接 14年的EC(银牌题),但是现在的大牛们进步神速,估计如今已经是道铜牌题了,具体我们先讲一下题意. 一个长度为N的自环圈,每个点(1-N)上有自己对应的权值(可能为负数),我们用一个初始值进 ...
- UVALive - 4636 Cubist Artwork——思维
把正视图用体积为1的小格子先填上一层,如果把这些列重排一下恰好能构成右视图,那么当前的填充方法就是最优的,基于这个思想我们对两个数列从大到小排序后瞎搞就可以了 #include <bits/st ...
- Beehive UVALive - 7528 (找规律+数学思维)
点击打开链接 There is an infinite beehive like the one given in the figure. We consider two cells to be ad ...
- 揭富人与穷人21个不同思维 看富豪如何脱颖而出
<富人是怎么想的>(How Rich People Think)的作者Steve Siebold曾在近30年里采访世界各地的富豪,看究竟是什么让富豪从普通人中站出来. 他发现这和金钱基本没 ...
- 学习,思维三部曲:WHAT、HOW、WHY
学习技术的三部曲:WHAT HOW WHY 我把学习归类为三个步骤:What.How.Why.经过我对周围同事和朋友的观察,大部分感觉自己技术没有提高的人,都仅仅停留在What阶段.下面我把这三个步骤 ...
- Linux架构思维导图
Linux架构思维导图 GUI(Graphical User Interface,图形用户界面) Linux 学习路径 软件框架 Linux 桌面介绍 FHS:文件系统目录标准 Linux 需要特别注 ...
- DP UVALive 6506 Padovan Sequence
题目传送门 /*题意:两行数字,相邻列一上一下,或者隔一列两行都可以,从左到右选择数字使和最大DP:状态转移方程:dp[i][j] = max (dp[i][j], dp[1-i][j-1] + a[ ...
最新文章
- Android UI -- 布局介绍(布局包括FrameLayout, LinearLayout, RelativeLayout, GridLayout)
- Filter_细节_过滤器拦截路径配置
- 杭州保俶塔实验机器人_【科教有闻】高照实验学校Pepper机器人课程亮相2020(杭州)国际数字教育大会“智能教育引领未来”论坛...
- 安静的飞鸽传书2011绿色版地方
- 计算机网络课程设计之网络聊天程序的设计与实现
- python简单爬虫代码-python爬虫超简单攻略,带你写入门级的爬虫,抓取上万条信息...
- java在线编译功能
- 马蜂窝火车票系统服务化改造初探
- android 坐标度分秒转换工具,android 经纬度度分秒与十进制之间的相互转换
- 智能测试实践之路-UI缺陷检测
- 扫 雷 小 游 戏
- EasyMesh - A Two-Dimensional Quality Mesh Generator
- 自己动手写工具(一)一个用Java8实现的内存级别的缓存
- 独自一人开发一整套 ERP 系统是什么水平?
- CellphoneDB-细胞通讯软件
- PCB layout学习路线
- 使用强化学习建立下一个最佳活动(或称行动营销)模型【译文初稿】
- c语言自动存取款机模拟系统
- 硬件系列(1)-电阻、电容、电感三大件
- 学生管理系统(软件架构课程实验)