Problem 1921 栀子花开

Accept: 345    Submit: 1219
Time Limit: 1000 mSec    Memory Limit : 32768 KB

 Problem Description

这是一个栀子花开的季节,也是一个离别的季节,四年一千多个日日夜夜,那校园的角角落落,留下了我们沉思的身影;那上百次的成绩排名表,印证了我们深深浅浅不断进步的轨迹,但是这些进步都离不开老师的谆谆教诲。

作为计算机系的学生,算法与数据结构是必修的主干课程,因此课程的每个老师都很关心每个学生的学习情况,每天下课老师都会给某个学生进行课外辅导。首先,老师会给每个学生一个能力评定分数,如果有学生要求老师给他辅导,那老师就会专门给该同学进行课外辅导,如果没有学生要求,老师就会给评定分数最低的同学课外辅导。老师给学生辅导后,学生的能力都会有所增长,然而不同的学生增长的情况都不同。老师想知道为学生课外辅导若干天后,全班的最低分学生的编号和分数。

 Input

首先第一行为T,表示有T组数据。接下来为每组数据的结构:

第一行有一个数字n,表示有n个学生,编号从1到n。(1 <= n <= 10000)。

接下来一行有n个数,分别是编号从1到n的学生的初始能力水平xi,(1 <= xi <= 1000)。

接下来有一行有一个数m表示老师给学生课外辅导了m天(1 <= m <= 100000)。

接下来m行,每行两个数(ai bi),表示老师在第i天给编号为ai同学补课,编号为ai的同学能力提高了bi(0 <= ai <= n,1 <= bi <= 1000)。如果ai为0,则表示老师今天给能力最差的学生辅导。如果最低分同时有多个学生,就给编号小的学生补课。

 Output

对于每组数据输出一行先输出组数(从1开始),接着最后输出经过m天后,全班的最低分学生的编号和分数。

 Sample Input

1310 20 3030 1003 100 40

 Sample Output

Case 1: 3 40

 Hint

上面的数据,各个学生的能力增长情况如下:

第一天后:110 20 30

第二天后:110 20 40

第三天后:110 60 40

 Source

FOJ有奖月赛-2010年06月

之前没注意 多输出了个回车 PE。。。

#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
#define dbg(x) cout<<#x<<" = "<< (x)<< endl
const int MAX_N = 100010;
struct node {int d;int pos;
}MIN[MAX_N<<2];
int n;
void up(int p){if(MIN[p*2].d<=MIN[p*2+1].d){MIN[p].d=MIN[p*2].d;MIN[p].pos=MIN[p*2].pos;}else {MIN[p].d = MIN[p*2+1].d;MIN[p].pos =MIN[p*2+1].pos;}
}
void build(int p,int l,int r){if(l==r) {scanf("%d",&MIN[p].d);MIN[p].pos=l;return;}int mid = (l+r)>>1;build(p*2,l,mid);build(p*2+1,mid+1,r);up(p);
}
void change(int p,int l,int r,int x,int c){if(l==r&&l==x){MIN[p].d+=c;return;}int mid = (l+r)>>1;if(x<=mid) change(p*2,l,mid,x,c);else change(p*2+1,mid+1,r,x,c);up(p);
}int main(){int t,n,m;scanf("%d",&t);for(int Case = 1;Case<=t;Case++){memset(MIN,0,sizeof(MIN));printf("Case %d: ",Case);scanf("%d",&n);build(1,1,n);scanf("%d",&m);while(m--){int a,b;scanf("%d%d",&a,&b);if(a==0){change(1,1,n,MIN[1].pos,b);}else {change(1,1,n,a,b);}}printf("%d %d\n",MIN[1].pos,MIN[1].d);}return 0;
}

FOJ 1921 栀子花开 线段树裸题相关推荐

  1. FZU 1921 栀子花开 (线段树单点更新)

     Problem 1921 栀子花开 Accept: 300    Submit: 1070 Time Limit: 1000 mSec    Memory Limit : 32768 KB  Pro ...

  2. UVA 12086 Potentiometers(线段树裸题)

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  3. FZU-1921 栀子花开(线段树)

    Problem 1921 栀子花开 Accept: 323    Submit: 1156 Time Limit: 1000 mSec    Memory Limit : 32768 KB Probl ...

  4. POJ2777(线段树裸题)

    题目:http://poj.org/problem?id=2777 别忘了各地的return: 有可能输入的L<R,手动swap: 似乎是多组输入? pushup和pushdown的位置. (原 ...

  5. FZU - 1921——栀子花开(线段树)

    voj题目链接:https://cn.vjudge.net/contest/292206#problem/H FZU题目链接:https://cn.vjudge.net/contest/292206# ...

  6. 线段树模板题3:区间染色问题

    1.3线段树模板题3:区间染色问题 在DotA游戏中,帕吉的肉钩实际上是大多数英雄中最恐怖的东西.挂钩由长度相同的几个连续的金属棍组成. 现在,帕吉(Pudge)希望对挂接进行一些操作. 让我们将钩子 ...

  7. J.哭泣的阿木木(线段树模板题)

    哭泣的阿木木 Description 没啥用的背景故事: 在远古的恕瑞玛,有一个孤独而又忧郁的灵魂,阿木木.他在世间游荡,只为找到一个朋友.他遭受了一种远古的巫术诅咒,注定忍受永世的孤单,因为被他触碰 ...

  8. FZU - 1921 栀子花开(线段树)

    题目链接: FZU - 1921 题意: 开始给出n个数据,代表的是n个学生的初始能力,现在输入一些数据,每一组数据包括两个数字,如果第一个数字是0的话,就代表老师给当前能力最低的学生辅导,如果说第一 ...

  9. FZU 1921 栀子花开

    栀子花开 Time Limit: 1000ms Memory Limit: 32768KB This problem will be judged on  FZU. Original ID: 1921 ...

  10. 小清的线段树25题日志01 线段树下你和我 欢乐多又多

    前言 难度大致会按排序来 就不写总结啦 嘻嘻 适合刚学线段树的人(和我一样 练手 /*if you can't see the repayWhy not just work step by stepr ...

最新文章

  1. plsql与java_Oracle之PLSQL与Java应用
  2. 计算机操作系统:虚拟存储器
  3. 数学建模学习笔记——图论最短路径
  4. jQuery源码 Ajax模块分析
  5. 一本书——《锋利的jQuery》
  6. wxWidgets:wxHashMap类用法
  7. 全套Python数据分析常用命令速查表!PDF文档限时分享
  8. GitHub Alibaba Group 下 Star 最多的开源项目是?
  9. 德州扑克里的专业术语你知道几个?
  10. 清除java_如何在Java地毯下有效地清除问题
  11. 收藏 | 深度学习之Numpy基础入门教程!
  12. koa2+koa-views示例
  13. 表达式int('2222',4)的值是多少?(每日一题)
  14. 2016-08-12
  15. pxe无盘服务器教程,Windows下架设PXE服务器的方法
  16. 计算机专业术语(个人学习总结,不定期更新)
  17. 弘辽科技:6个核心关键词,抓住创业的“命运转折点”!
  18. linux上删除rime方案_安装linux中文输入法rime并配置
  19. stream_kws_cnn
  20. 洛谷——AT1350 深さ優先探索

热门文章

  1. 悼念蓝色理想FLASH区版主:手工感情==生命如此之脆弱
  2. c/c++游戏编程之Easyx图形库基础
  3. CVE-2014-3566 SSLv3 POODLE原理分析
  4. java中if条件函数怎么用_if函数,多个条件怎么使用
  5. 语料库mysql_基于PHP+MySQL的小型语料库程序设计解决方案
  6. linux关机电源不断电,[转发]黑苹果修改DSDT彻底解决关机不断电和睡眠问题
  7. PTA - 数据库合集4
  8. Git 工具之储藏与清理-7.3
  9. 2018年阿里安全工程师面试
  10. linux Fedora安装桌面,在Fedora Linux上安装Elementary OS桌面的方法