zoukankan      html  css  js  c++  java
  • TYVJ P1607

    背景 Background

    AndyBear 生日模拟赛 第一题

    描述 Description

    BIBO是个贪吃的小熊,她有很多喜欢的食物,但是为了控制体重,她每天不能吃的太多,因此小熊BIBO给每一种食物都赋了一个喜欢程度K,BIBO每天 从她所有喜欢的食物中挑出一件喜欢程度最大的来吃,可能是蜂蜜,也可能是面包,同时小熊BIBO还会更改某一种食物的喜欢程度,或者说自己不喜欢某件食物 了。你,作为小熊BIBO的首席大管家,要告诉她今天该吃的是什么。

    输入格式 InputFormat

    输入文件的第一行,给出两个数字N和M,分别表示小熊bibo拥有的食物种类以及操作数量。
    操作有三种:
    Yummy 对于每一个Yummy操作,输出一个数字,表示所有食物中喜欢程度的最大值。
    Like 对于每一个Like操作,后面会跟着一个数对x y,表示小熊bibo把第x种食物的喜欢程度改为了y。
    Unlike 对于每一个Unlike操作,后面会跟着一个数x,表示小熊bibo不再喜欢第x种食物了,你可以认为这种食物的喜欢程度变成了负无穷。但是请注意,bibo是个善变的小熊,她有可能在之后的某次操作中又喜欢上了这种食物。

    输入数据保证,不会出现所有食物都不喜欢的情况。

    输出格式 OutputFormat

    若干行数字,每一行对应一个Yummy操作的输出。

    样例输入 SampleInput [复制数据]

    10 6
    Yummy
    Like 5 100
    Yummy
    Like 6 99
    Unlike 5
    Yummy

    样例输出 SampleOutput [复制数据]

    0
    100
    99

    数据范围和注释 Hint

    在一开始,所有的食物的喜欢程度都为0。
    在数据中,0<=喜欢程度K<=1000000.
    对于80%的数据 0<n,m<=1000
    对于100%的数据 0<n,m<=100000

    思路:两年前做的比赛题了,当时只会暴力,不会线段树

    #include <cmath>
    #include <cstdio>
    #include <algorithm>
    #include <cstring>
    #include <string>
    #include <cstdlib>
    #define lson l,mid,rt<<1
    #define rson mid+1,r,rt<<1|1
    using namespace std;
    
    const int maxn=111210;
    const int INF=100000000;
    int a[maxn<<2],n,m,x,y;
    char s[20];
    
    void close()
    {
    exit(0);
    }
    
    void pushup(int rt)
    {
    	a[rt]=max(a[rt<<1],a[rt<<1|1]);
    }
    
    void upd(int l,int r,int rt,int x,int y)
    {
    	if (l==x && r==x)
    	{
    		a[rt]=y;
    		return;
    	}
    	int mid=(l+r)>>1;
    	if (l<=x && x<=mid)
    		upd(lson,x,y);
    	else
    		upd(rson,x,y);
    	pushup(rt);
    }
    
    
    void init()
    {
    
    	scanf("%d %d",&n,&m);
    	memset(a,0,sizeof(a));
    	for (int i=1;i<=m;i++)
    	{
    		scanf("%s",s);
    		if (s[0]=='Y')
    			printf("%d
    ",a[1]);
    		if (s[0]=='L')
    		{
    			scanf("%d %d",&x,&y);
    			upd(1,n,1,x,y);
    		}
    		if (s[0]=='U')
    		{
    			scanf("%d",&x);
    			upd(1,n,1,x,-INF);
    		}
    	}
    }
    
    int main ()
    {
    	init();
    	close();
    	return 0;
    }
    
  • 相关阅读:
    2019 SDN上机第7次作业
    第01组 Beta冲刺(4/5)
    第01组 Beta冲刺(3/5)
    第01组 Beta冲刺(2/5)
    第01组 Beta冲刺(1/5)
    2019 SDN上机第6次作业
    2019 SDN上机第5次作业
    SDN课程阅读作业(2)
    第01组 Alpha事后诸葛亮
    第01组 Alpha冲刺(6/6)
  • 原文地址:https://www.cnblogs.com/cssystem/p/3170640.html
Copyright © 2011-2022 走看看