[bzoj 1208]STL水过

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1208

看网上的题解都用的手写数据结构……然而直接用set的lower_bound就水过去了……

#include<bits/stdc++.h>
using namespace std;

const int md=1000000;
set<int> pet,people;

int main()
{
    int n;
    scanf("%d",&n);
    int ans=0;
    while (n--)
    {
        int op,x;
        scanf("%d%d",&op,&x);
        if (op==0)
        {
            if (people.empty())
            {
                pet.insert(x);
            }
            else
            {
                set<int>::iterator it = people.lower_bound(x);
                if (it==people.begin())
                {
                    ans=(ans+abs(*it-x))%md;
                }
                else if (it==people.end())
                {
                    --it;
                    ans=(ans+abs(*it-x))%md;
                }
                else
                {
                    set<int>::iterator it2=--it;
                    ++it;
                    if (abs(*it2-x)<=abs(*it-x)) --it;
                    ans=(ans+abs(*it-x))%md;
                }
                people.erase(it);
            }
        }
        else
        {
            if (pet.empty())
            {
                people.insert(x);
            }
            else
            {
                set<int>::iterator it = pet.lower_bound(x);
                if (it==pet.begin())
                {
                    ans=(ans+abs(*it-x))%md;
                }
                else if (it==pet.end())
                {
                    --it;
                    ans=(ans+abs(*it-x))%md;
                }
                else
                {
                    set<int>::iterator it2=--it;
                    ++it;
                    if (abs(*it2-x)<=abs(*it-x)) --it;
                    ans=(ans+abs(*it-x))%md;
                }
                pet.erase(it);
            }
        }
    }
    printf("%d\n",ans);
    return 0;
}
时间: 2024-08-07 22:41:11

[bzoj 1208]STL水过的相关文章

【BZOJ】初级水题列表——献给那些想要进军BZOJ的OIers(自用,怕荒废了最后的六月考试月,刷刷水题,水水更健康)

BZOJ初级水题列表——献给那些想要进军BZOJ的OIers 代码长度解释一切! 注:以下代码描述均为C++ RunID User Problem Result Memory Time Code_Length 695765 Eolv 1000 Accepted 804 kb 0 ms 118 B 739478 Eolv 2463 Accepted 804 kb 0 ms 134 B 696662 Eolv 1968 Accepted 1272 kb 48 ms 137 B 739546 Eolv

BZOJ 1208: [HNOI2004]宠物收养所

1208: [HNOI2004]宠物收养所 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 7514  Solved: 2982[Submit][Status][Discuss] Description 最近,阿Q开了一间宠物收养所.收养所提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物.每个领养者都希望领养到自己满意的宠物,阿Q根据领养者的要求通过他自己发明的一个特殊的公式,得出该领养者希望领养的宠物的特点值a(a是一个正整数,a<2^

BZOJ 1208 宠物收养所

Description 最近,阿Q开了一间宠物收养所.收养所提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物.每个领养者都希望领养到自己满意的宠物,阿Q根据领养者的要求通过他自己发明的一个特殊的公式,得出该领养者希望领养的宠物的特点值a(a是一个正整数,a<2^31),而他也给每个处在收养所的宠物一个特点值.这样他就能够很方便的处理整个领养宠物的过程了,宠物收养所总是会有两种情况发生:被遗弃的宠物过多或者是想要收养宠物的人太多,而宠物太少. 1. 被遗弃的宠物过多时,假若到来一个领养者

AC日记——宠物收养所 bzoj 1208

1208 思路: 一棵splay树: 如果来者是宠物且树空,就将其加入树中: 如果树不空,则查找前驱后继,取最优,然后删点: 对人亦然: 注意边界和取模,最后的ans用long long其余用int即可: 来,上代码: #include <cstdio> #include <iostream> #include <algorithm> using namespace std; #define maxn 80005 #define mod 1000000 #define

bzoj 1208: [HNOI2004]宠物收养所 set

1208: [HNOI2004]宠物收养所 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 7328  Solved: 2892[Submit][Status][Discuss] Description 最近,阿Q开了一间宠物收养所.收养所提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物.每个领养者都希望领养到自己满意的宠物,阿Q根据领养者的要求通过他自己发明的一个特殊的公式,得出该领养者希望领养的宠物的特点值a(a是一个正整数,a<2^

BZOJ 1208: [HNOI2004]宠物收养所(BST)

本来想先用set写一遍,再自己写个splay或treap,不过用set过了之后就懒得去写了....以后有空再来写吧..(不会有空的吧= = --------------------------------------------------------------------------------- #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #incl

BZOJ 1208 HNOI2004 宠物收容所 平衡树/set

标题效果:有一个宠物收容所.目前还没有被采纳的宠物或谁想要领养宠物,每个宠物有个性值,大家谁想要领养宠物具有理想人格值.每一刻,宠物收容所只是为了有谁想要领养宠物或宠物的人. 当领走宠物,将有一定程度的不愉快.最低要求是不舒服程度. 思路:就是个模拟+数据结构维护.用set能够水过,时间卡的不是非常紧.练手写了Treap. 注意极大值不能开太大.会re CODE: #include <cstdio> #include <cstring> #include <iostream&

BZOJ 1208 HNOI2004 宠物收养所 平衡树/set

题目大意:有一家宠物收养所,有没有被收养的宠物或者是想收养宠物的人,每个宠物有一个个性值,每个想收养宠物的人有一个理想的个性值.每一个时刻,宠物收养所里只能有想收养宠物的人或宠物.当人领走宠物时,就会有一个不满意度.求这个最小的不满意度. 思路:就是个模拟+数据结构维护.用set可以水过,时间卡的不是很紧.练手写了Treap.注意极大值不能开太大,会re CODE: #include <cstdio> #include <cstring> #include <iostream

bzoj 1208

1208: [HNOI2004]宠物收养所 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 9775  Solved: 3918[Submit][Status][Discuss] Description 最近,阿Q开了一间宠物收养所.收养所提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物.每个领养者都希望领养到自己满意的宠物,阿Q根据领养者的要求通过他自己发明的一个特殊的公式,得出该领养者希望领养的宠物的特点值a(a是一个正整数,a<2^