题目:

poj3045 Cow Acrobats

解析:

贪心题,类似于国王游戏

考虑两个相邻的牛\(i\),\(j\)

设他们上面的牛的重量一共为\(sum\)

把\(i\)放在上面,危险值分别为\(x_1=sum-s_i\),$ x_2=sum+w_i-s_j\(
把\)j\(放在上面,危险值分别为\)x_3=sum-s_j$, \(x_4=sum+w_j-s_i\)

若把j放在上面更优,则有\(max(x_3,x_4)<max(x_1,x_2)\)

有四种情况

\(x_3<x_1\)

\(x_3<x_2\)

\(x_4<x_1\)

\(x_4<x_2\)

显然的是\(x_3<x_2\),\(x_1>x_4\)

而\(s_i\)和\(s_j\)关系不确定

所以一定有\(w_i+s_i>w_j+w_j\)

按\(w+s\)排序从小到大排序,大的在下面

代码:

很简单

#include <iostream>
#include <algorithm>
#include <cstdio>
#define int long long
using namespace std; const int N = 1e5 + 10;
const int INF = 0x3f3f3f3f; int n; struct node {
int w, s;
bool operator <(const node &oth) const {
return w + s < oth.w + oth.s;
}
} e[N]; template<class T>inline void read(T &x) {
x = 0; char ch = getchar();
while (isdigit(ch)) x = x * 10 + ch - '0', ch = getchar();
return;
} signed main() {
read(n);
for (int i = 1; i <= n; ++i) read(e[i].w), read(e[i].s);
sort(e + 1, e + 1 + n);
int sum = 0, ans = -INF;
for (int i = 1; i <= n; ++i) ans = max(ans, sum - e[i].s), sum += e[i].w;
cout << ans << endl;
}

poj3045 Cow Acrobats (思维,贪心)的更多相关文章

  1. POJ3045 Cow Acrobats —— 思维证明

    题目链接:http://poj.org/problem?id=3045 Cow Acrobats Time Limit: 1000MS   Memory Limit: 65536K Total Sub ...

  2. POJ-3045 Cow Acrobats (C++ 贪心)

    Description Farmer John's N (1 <= N <= 50,000) cows (numbered 1..N) are planning to run away a ...

  3. 【POJ - 3045】Cow Acrobats (贪心)

    Cow Acrobats Descriptions 农夫的N只牛(1<=n<=50,000)决定练习特技表演. 特技表演如下:站在对方的头顶上,形成一个垂直的高度. 每头牛都有重量(1 & ...

  4. POJ3045 Cow Acrobats 2017-05-11 18:06 31人阅读 评论(0) 收藏

    Cow Acrobats Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4998   Accepted: 1892 Desc ...

  5. 【POJ3045】Cow Acrobats(贪心)

    BUPT2017 wintertraining(16) #4 B POJ - 3045 题意 n(1 <= N <= 50,000) 个牛,重wi (1 <= W_i <= 1 ...

  6. [USACO2005][POJ3045]Cow Acrobats(贪心)

    题目:http://poj.org/problem?id=3045 题意:每个牛都有一个wi和si,试将他们排序,每头牛的风险值等于前面所有牛的wj(j<i)之和-si,求风险值最大的牛的最小风 ...

  7. 【BZOJ】1629: [Usaco2007 Demo]Cow Acrobats(贪心+排序)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1629 这题我想了很久都没想出来啊... 其实任意两头相邻的牛交换顺序对其它牛是没有影响的.. 那么我 ...

  8. BZOJ 1629 [Usaco2005 Nov]Cow Acrobats:贪心【局部证明】

    题目链接:http://begin.lydsy.com/JudgeOnline/problem.php?id=1332 题意: 有n头牛在“叠罗汉”. 第i头牛的体重为w[i],力量为s[i]. 一头 ...

  9. poj3045 Cow Acrobats(二分最大化最小值)

    https://vjudge.net/problem/POJ-3045 读题后提取到一点:例如对最底层的牛来说,它的崩溃风险=所有牛的重量-(底层牛的w+s),则w+s越大,越在底层. 注意范围lb= ...

随机推荐

  1. Ubuntu 16.04/18.04 右键创建新建文件

    刚刚安装完新的Ubuntu系统后不能直接右键创建新的文件,那么怎么做呢 办法: 打开终端,cd 切换到 Templates文件夹下,然后输入: sudo gedit text 这样就在Template ...

  2. 笔记3:MySQL数据库

    MySQL 1 基本概念 常见sql命令: show database 查看所有数据库 select now(); 显示当前时间 select version(); 显示当前版本 create dat ...

  3. socket_http

    socket_http import socket from urllib.parse import urlparse import time def get_url(url): # 通过socket ...

  4. opencv鼠标事件

    #include <opencv2\opencv.hpp> using namespace cv; struct mouse_para { cv::Mat org; cv::Mat img ...

  5. Linux上用NAT实现上网

    1. 安装好Linux后,选择NAT方式 2. 在Windows主机上用ipconfig /all 查看VMnet8的IP地址,一般是192.168.X.1/255.255.255.0,如果不知道是哪 ...

  6. Vue小练习(for循环,push方法,冒泡,if判断(以及与for循环的连用),按钮高亮,根据input框筛选数据)

    vue练习 ''' 1. 先有一下成绩单数据 scores = [ { name: 'Bob', math: 97, chinese: 89, english: 67 }, { name: 'Tom' ...

  7. HttpRequest对象

    在面向对象的语言中,有种“万物皆对象”的说法.在上篇文章中介绍了HttpRuntime类,在该类收到请求之后,立即通过HttpWorkerRequest工作者对象对传递的参数进行分析和分解,创建方便网 ...

  8. 树的遍历 | 1079 理解题意+DFS

    这题如果读懂了题意,就很好做,一波操作就结束了.不过题目有点难读,考验耐心和读题的细致. AC代码: #include <stdio.h> #include <memory.h> ...

  9. PowerShell常用命令及美化(现代化的CMD)

    PowerShell可谓现代终端,是微软用来替代古老的CMD的. PowerShell拥有面向对象的思想,非常方便. 常用命令 下载文件(此处以install.ps1文件为例) $client = n ...

  10. Consul 使用手册(感觉比较全了)

    HTTP API consul的主要接口是RESTful HTTP API,该API可以用来增删查改nodes.services.checks.configguration.所有的endpoints主 ...