Dogs' Candies

Time Limit: 30000/30000 MS (Java/Others) Memory Limit: 512000/512000 K (Java/Others)

Total Submission(s): 1701 Accepted Submission(s): 404

Problem Description
Far far away, there live a lot of dogs in the forest. Unlike other dogs, those dogs love candies much more than bones.

Every candy has two attributes: the sweetness degree p and the sourness degree q. Different dogs like different candies. A dog also has two attributes: the fondness degree for sweetness x and the fondness degree for sourness y. So the deliciousness degree of a candy for a dog is defined as p×x + q×y.

The dog king has a huge candy box. At first, the box is empty. The king can add candies to the box or take some candies from the box and eat them. There are always some dogs who want to know which candies in the box are the most delicious for them. Please help the king to answer their questions.

Input
The input consists of at most 10 test cases. For each test case, the first line contains an integer n indicating that there are n candy box operations(1 The following n lines describe the n operations.

Each operation contains three integers t, x and y( 0 <= |x|, |y| <= 109). The first integer t may be -1, 0, or 1.

If t equals -1, it means that a candy in the box with sweetness degree x and sourness degree y is eaten by the dog king.

If t equals 1, it means that a candy with sweetness degree x and sourness degree y is added to the candy box.

If t equals 0, it means that a dog with sweetness fondness degree x and sourness fondness degree y wants to know the maximal deliciousness degree of the candies in the box for him.

It is guaranteed that every candy is unique in the box.

The input ends by n = 0.

Output
For each operation in which t equals to 0, you should print the maximal deliciousness degree of the best candy for the dog.


Sample Input

6

1 2 1

1 1 2

1 1 1

0 2 1

-1 2 1

0 2 1

0

Sample Output

5

4

Source
2014ACM/ICPC亚洲区广州站-重现赛(感谢华工和北大)


解析:时间给了30000ms,模拟即可。不过要注意,要选择合适的容器。一般来讲,应遵循以下规则:
* 如果需要高效的随即存取,而不在乎插入和删除的效率,使用vector
* 如果需要大量的插入和删除,而不关心随即存取,使用list
* 如果需要随即存取,并且关心两端数据的插入和删除,使用deque


```
#include
#include
#include
#define ll long long
using namespace std;

list<pair<ll, ll> > l;

list<pair<ll, ll> >::iterator it;

int main()

{

int n;

while(scanf("%d",&n) && n){

ll t, x, y;

while(n--){

scanf("%I64d%I64d%I64d", &t, &x, &y);

pair<ll, ll> p(x, y);

if(t == 1)

l.push_back(p);

else if(t == -1){

for(it = l.begin(); it != l.end(); ++it){

if(*it == p){

l.erase(it);

break;

}

}

}

else{

ll res = -1e18;

for(it = l.begin(); it != l.end(); ++it){

res = max(res, it->first * x + it->second * y);

}

printf("%I64d\n", res);

}

}

l.clear();

}

return 0;

}

HDU 5127 Dogs' Candies的更多相关文章

  1. HDU 5127.Dogs' Candies-STL(vector)神奇的题,set过不了 (2014ACM/ICPC亚洲区广州站-重现赛(感谢华工和北大))

    周六周末组队训练赛. Dogs' Candies Time Limit: 30000/30000 MS (Java/Others)    Memory Limit: 512000/512000 K ( ...

  2. hdu 2822 Dogs

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2822 Dogs Description Prairie dog comes again! Someda ...

  3. hdu 1514 Free Candies 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1514 题目意思:有4堆糖果,每堆糖果有n个,从上到下排好,取糖果只能从上往下取,取完的糖果放在篮子里, ...

  4. hdu - 2822 Dogs (优先队列+bfs)

    http://acm.hdu.edu.cn/showproblem.php?pid=2822 给定起点和终点,问从起点到终点需要挖几次只有从# 到 .或者从. 到  . 才需要挖一次. #includ ...

  5. hdu5127 Dogs' Candies CDQ分治 动态凸包

    传送门 题意 有三种操作 加入一个二元组\((x,y)\) 删除一个二元组\((x,y)\) 给出一个二元组\((a,b)\),问\(ax+by\)的最大值 题解 \(z=ax+by \Rightar ...

  6. hdu 2822 Dogs(优先队列)

    题目链接:hdu2822 会优先队列话这题很容易AC.... #include<stdio.h> #include<string.h> #include<queue> ...

  7. DP的优化总结

    一.预备知识 \(tD/eD\) 问题:状态 t 维,决策 e 维.时间复杂度\(O(n^{e+t})\). 四边形不等式: 称代价函数 w 满足凸四边形不等式,当:\(w(a,c)+w(b,d)\l ...

  8. HDU 6126.Give out candies 最小割

    Give out candies Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Other ...

  9. hdu 6126 Give out candies

    hdu 6126 Give out candies(最小割) 题意: 有\(n\)个小朋友,标号为\(1\)到\(n\),你要给每个小朋友至少\(1\)个且至多\(m\)个的糖果.小朋友们共提出\(k ...

随机推荐

  1. Struts2笔记——struts.xml配置详解

    访问HelloWorld应用的路径的设置 * 在struts1中,通过<action path=“/primer/helloWorldAction.action”>节点的path属性指定访 ...

  2. asp.net+swfupload 多图片批量上传(附源码下载)

    asp.net的文件上传都是单个文件上传方式,无法执行一次性多张图片批量上传操作,要实现多图片批量上传需要借助于flash,通过flash选取多个图片(文件),然后再通过后端服务进行上传操作. 本次教 ...

  3. USACO Section 2.2: Preface Numbering

    搬了leetcode的代码 /* ID: yingzho1 LANG: C++ TASK: preface */ #include <iostream> #include <fstr ...

  4. Data Base MongoVue 破解治标不治本

    MongoVue  破解治标不治本 ---------解决燃眉之急 注册表中查找B1159E65-821C3-21C5-CE21-34A484D54444中的子项4FF78130 ,删除其下的三个子项 ...

  5. lcd ram/半反穿技术解析【转】

    转自:http://bbs.meizu.cn/viewthread.php?tid=3058847&page=1 我的话题应该会比较长一些.但是大致板块如下:1.LCD RAM;-->此 ...

  6. Maven POM.xml详解[转]

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  7. sourceforge.net 打不开怎么办?(转)

    sourceforge.net 打不开怎么办?找个镜像地址下吧!   笔者试了下这个地址,可以打开 http://www.mirrorservice.org/sites/download.source ...

  8. android 分区layout以及虚拟内存布局-小结

    摘要 简述启动过程的内存分配,各个映像的烧写,加载,logo的刷新,文件系统mount. DRAM:外部RAM: ISRAM:内部RAM(128K),(PL会跑在ISRAM里面,去初始化DRAM,lo ...

  9. source idea of Unit

    After the construction of Global environment setting code, there is a convenient way for us in the f ...

  10. Nginx proxy_pass 加与不加 "/" 区别

    下面四种情况分别用http://192.168.1.100/proxy/test.html 进行访问. 第一种: location  /proxy/ { proxy_pass http://127.0 ...