2014广州站 A - Dogs' Candies(暴力)

来源:互联网 发布:sql删除记录 编辑:程序博客网 时间:2024/04/27 23:20

题目地址

题目大意:一个狗国家的狗国王有一个装糖的盒子,每颗糖有两个属性p,q,分别代表甜度和咸度,每只狗对于甜度和咸度的偏爱度不一样,所以每条狗有两个参数x, y,每颗糖对于特定的狗的美味度等于p*x+q*y。现在有50000个操作,分为三种:z=1,将新的糖(p,q)放入盒子中;z=-1,将盒子中存在的糖(p,q)吃掉;z=0给出一条狗的参数(x,y),询问当前存在的糖的最大美味度

解题思路:题目时间限制是30秒,直接暴力过,因为涉及到删除、插入操作,用list存储

#include<bits/stdc++.h>using namespace std;typedef pair<long long, long long> candy;list<candy> s;int main(){    int n;    while(scanf("%d",&n) && n)    {        s.clear();        while(n--)        {            long long x,y,z;            scanf("%I64d%I64d%I64d",&z,&x,&y);            candy aa;            aa.first=x;            aa.second=y;            if(z==1)                s.push_front(aa);            else if(z==-1)            {                for(list<candy>::iterator i=s.begin();i!=s.end();i++)                {                    if((*i).first==x&&(*i).second==y)                    {                        s.erase(i);                        break;                    }                }            }            else if(z==0)            {                long long sum=-0x7f7f7f7f;                for(list<candy>::iterator i=s.begin();i!=s.end();i++)                {                    sum = max(sum, (*i).first*x+(*i).second*y);                }                cout<<sum<<endl;            }        }    }    return 0;}


0 0
原创粉丝点击