ural1650 Billionaires
Billionaires
Memory limit: 64 MB
Input
Output
Sample
| input | output |
|---|---|
5 |
Anadyr 5 |
分析:线段树单点更新查询最大值坐标;
代码:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <climits>
#include <cstring>
#include <string>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <vector>
#include <list>
#define rep(i,m,n) for(i=m;i<=n;i++)
#define rsp(it,s) for(set<int>::iterator it=s.begin();it!=s.end();it++)
#define mod 1000000007
#define inf 0x3f3f3f3f
#define vi vector<int>
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define ll long long
#define pi acos(-1.0)
#define pii pair<int,int>
#define Lson L, mid, rt<<1
#define Rson mid+1, R, rt<<1|1
const int maxn=1e5+;
using namespace std;
ll gcd(ll p,ll q){return q==?p:gcd(q,p%q);}
ll qpow(ll p,ll q){ll f=;while(q){if(q&)f=f*p;p=p*p;q>>=;}return f;}
int n,m,k,t,d,now[maxn],num,cnt;
map<string,int>ci;
map<string,int>id;
map<int,string>to;
ll mo[maxn];
struct node
{
string x,y;
}a[maxn];
struct node1
{
int t;
string x,y;
}q[maxn];
struct node2
{
int id,t;
bool operator<(const node2&p)const
{
return to[id]<to[p.id];
}
}ans[maxn];
struct Node
{
ll Max, lazy;
} T[maxn<<]; void PushUp(int rt)
{
T[rt].Max = max(T[rt<<].Max, T[rt<<|].Max);
} void PushDown(int L, int R, int rt)
{
int mid = (L + R) >> ;
ll t = T[rt].lazy;
T[rt<<].Max += t;
T[rt<<|].Max += t;
T[rt<<].lazy += t;
T[rt<<|].lazy += t;
T[rt].lazy = ;
} void Update(int l, int r, ll v, int L, int R, int rt)
{
if(l==L && r==R)
{
T[rt].lazy += v;
T[rt].Max += v;
return ;
}
int mid = (L + R) >> ;
if(T[rt].lazy) PushDown(L, R, rt);
if(r <= mid) Update(l, r, v, Lson);
else if(l > mid) Update(l, r, v, Rson);
else
{
Update(l, mid, v, Lson);
Update(mid+, r, v, Rson);
}
PushUp(rt);
} int Query(int L, int R, int rt)
{
if(L==R)return L;
if(T[rt].lazy)PushDown(L,R,rt);
int mid=L+R>>;
if(T[rt<<].Max>T[rt<<|].Max)return Query(Lson);
else if(T[rt<<].Max<T[rt<<|].Max)return Query(Rson);
else return ;
}
int main()
{
int i,j;
scanf("%d",&n);
rep(i,,n)
{
cin>>a[i].x>>a[i].y>>mo[i];
id[a[i].x]=i;
if(!ci[a[i].y])ci[a[i].y]=++num,to[num]=a[i].y;
now[i]=ci[a[i].y];
}
scanf("%d%d",&d,&m);
rep(i,,m)
{
cin>>q[i].t>>q[i].x>>q[i].y;
if(!ci[q[i].y])ci[q[i].y]=++num,to[num]=q[i].y;
}
rep(i,,num)ans[i].id=i;
rep(i,,n)Update(ci[a[i].y],ci[a[i].y],mo[i],,num,);
j=;
rep(i,,d)
{
while(j<=m&&q[j].t==i-)
{
Update(now[id[q[j].x]],now[id[q[j].x]],-mo[id[q[j].x]],,num,);
Update(ci[q[j].y],ci[q[j].y],mo[id[q[j].x]],,num,);
now[id[q[j].x]]=ci[q[j].y];
j++;
}
if((cnt=Query(,num,)))ans[cnt].t++;
}
sort(ans+,ans+num+);
rep(i,,num)if(ans[i].t)printf("%s %d\n",to[ans[i].id].c_str(),ans[i].t);
//system("Pause");
return ;
}
ural1650 Billionaires的更多相关文章
- 1650. Billionaires(线段树)
1650 简单题 线段树的单点更新 就是字符串神马的 有点小繁琐 开两个map 一个存城市 一个存名字 #include <iostream> #include<cstdio> ...
- 1055. The World's Richest (25)
Forbes magazine publishes every year its list of billionaires based on the annual ranking of the wor ...
- Michael Kors - Wikipedia, the free encyclopedia
Michael Kors - Wikipedia, the free encyclopedia Michael Kors From Wikipedia, the free encyclopedia ...
- PAT1055:The World's Richest
1055. The World's Richest (25) 时间限制 400 ms 内存限制 128000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue ...
- S8-codelab02
import news_cnn_model import numpy as np import os import pandas as pd import pickle import shutil i ...
- PAT A1055 The World's Richest (25 分)——排序
Forbes magazine publishes every year its list of billionaires based on the annual ranking of the wor ...
- 100-days: fourteen
Title: Face mask craze(面膜热) creates Korean(韩国) (a) billionaire with Goldman(高盛集团) backing face mask ...
- A1055. The World's Richest
Forbes magazine publishes every year its list of billionaires based on the annual ranking of the wor ...
- 每日英语:What You Like Best: Shopping, Food and Tech
In a year that featured one of history's biggest corporate buyouts, a stock-market surge reminiscent ...
随机推荐
- Mac Git 学习笔记
lapommedeMacBook-Pro:~ lapomme$ cd GitHub lapommedeMacBook-Pro:GitHub lapomme$ cd lapommedeMacBook-P ...
- text-size-adjust的值为100% 代替值 none
iPhone 横屏默认会放大文字,设置text-size-adjust会解决这个问题 一般用text-size-adjust:none 但建议用100%代替none text-size-adjust: ...
- webstrom 快捷键(Idea可用)
在File-->setting可查看和配置功能快捷键,以下列出常用的快捷键 1. ctrl + shift + n: 打开工程中的文件,目的是打开当前工程下任意目录的文件. 2. ctrl + ...
- wamp本地能访问,但局域网不能访问的解决办法
Apache的配置文件.
- maven 国内镜像地址
由于连接国外网站时网速特慢,为解决这个问题,os china 建立了一个maven 的私服.为了记忆,特将此记录. settings.xml 设置镜像方法步骤如下: 1. mirrors 设置 < ...
- OpenGL红宝书例子2.2 uniform变量的使用
1. 简单介绍一下OpenGL可编程渲染管线的流程 顶点着色 --> 细分着色 --> 几何着色 --> 片元着色 --> 计算着色 一般我们主要参与的阶段是顶点着色和片元着色 ...
- apicloud本地测试安卓测试包安装
1.liutingdeMacBook-Pro:~ js-lt$ which adb 2.liutingdeMacBook-Pro:~ js-lt$ ls 3.liutingdeMacBook-Pro: ...
- 根据key存不存在查询json
select * from table where value->'key' != 'null';
- 快学Scala-第三章 数组相关操作
知识点: 1.定长数组 Array val nums = new Array[Int](10) //10个整数的数组,所有元素初始化为0 val a = new Array[String](10) / ...
- VideoView的视频播放
//-------------onCreate方法中----------------------- VideoView video_view = (VideoView) findViewById(R. ...