HDU 1754 I Hate It

来源:http://www.cnblogs.com/Silenceneo-xw/archive/2016/10/13/5958563.html
-Advertisement-
Play Games

I Hate It Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 66742 Accepted Submission(s): 25969 Pro ...


I Hate It

Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 66742    Accepted Submission(s): 25969


Problem Description

很多學校流行一種比較的習慣。老師們很喜歡詢問,從某某到某某當中,分數最高的是多少。
這讓很多學生很反感。

不管你喜不喜歡,現在需要你做的是,就是按照老師的要求,寫一個程式,模擬老師的詢問。當然,老師有時候需要更新某位同學的成績。  

 

Input

本題目包含多組測試,請處理到文件結束。
在每個測試的第一行,有兩個正整數 N 和 M ( 0<N<=200000,0<M<5000 ),分別代表學生的數目和操作的數目。
學生ID編號分別從1編到N。
第二行包含N個整數,代表這N個學生的初始成績,其中第i個數代表ID為i的學生的成績。
接下來有M行。每一行有一個字元 C (只取'Q'或'U') ,和兩個正整數A,B。
當C為'Q'的時候,表示這是一條詢問操作,它詢問ID從A到B(包括A,B)的學生當中,成績最高的是多少。
當C為'U'的時候,表示這是一條更新操作,要求把ID為A的學生的成績更改為B。

 

Output

對於每一次詢問操作,在一行裡面輸出最高成績。  

 

Sample Input

5 6 1 2 3 4 5 Q 1 5 U 3 6 Q 3 4 Q 4 5 U 2 9 Q 1 5

 

Sample Output

5 6 5 9 Hint Huge input,the C function scanf() will work better than cin  

 

Author

linle

 

Source

2007省賽集訓隊練習賽(6)_linle專場  

 

Recommend

lcy     題目大意:中文題面,不再贅述。   解題思路:線段樹的單點更新,區間最值問題。也是一道模板題,只要會模板即可。詳見代碼。   附上AC代碼:
 1 #include <bits/stdc++.h>
 2 #define lrt rt<<1
 3 #define rrt rt<<1|1
 4 #define lson l, m, lrt
 5 #define rson m+1, r, rrt
 6 using namespace std;
 7 const int maxn = 200005;
 8 int maxv[maxn<<2];
 9 int n, q;
10 char op[5];
11 
12 void push_up(int rt){
13     maxv[rt] = max(maxv[lrt], maxv[rrt]);
14 }
15 
16 void build(int l, int r, int rt){
17     if (l == r){
18         int num;
19         scanf("%d", &num);
20         maxv[rt] = num;
21         return ;
22     }
23     int m = (l+r)>>1;
24     build(lson);
25     build(rson);
26     push_up(rt);
27 }
28 
29 void modify(int p, int val, int l, int r, int rt){
30     if (l == r){
31         maxv[rt] = val;
32         return ;
33     }
34     int m = (l+r)>>1;
35     if (p <= m)
36         modify(p, val, lson);
37     else
38         modify(p, val, rson);
39     push_up(rt);
40 }
41 
42 int query(int ql, int qr, int l, int r, int rt){
43     if (ql<=l && r<=qr)
44         return maxv[rt];
45     int m = (l+r)>>1;
46     int maxr = 0;
47     if (ql <= m)
48         maxr = max(maxr, query(ql, qr, lson));
49     if (qr > m)
50         maxr = max(maxr, query(ql, qr, rson));
51     return maxr;
52 }
53 
54 int main(){
55     while (~scanf("%d%d", &n, &q)){
56         build(1, n, 1);
57         int a, b;
58         while (q--){
59             scanf("%s%d%d", op, &a, &b);
60             if (op[0] == 'Q')
61                 printf("%d\n", query(a, b, 1, n, 1));
62             else
63                 modify(a, b, 1, n, 1);
64         }
65     }
66     return 0;
67 }
View Code

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • os模塊提供了對目錄或者文件的新建/刪除/查看文件屬性,還提供了對文件以及目錄的路徑操作。比如說:絕對路徑,父目錄…… os.sep可以取代操作系統特定的路徑分隔符。windows下為 “\\”,Linux下為"/" os.linesep字元串給出當前平臺使用的行終止符。例如,Windows使用'\ ...
  • 今天來總結下python3.4版本字典的一些操作方法。 字典是Python裡面一種無序存儲結構,存儲的是鍵值對 key - value。關鍵字應該為不可變類型,如字元串、整數、包含不可變對象的元組。字典的創建很簡單,用 d = {key1 : value2, key2 : value2}的形式就可以 ...
  • 該隨筆是記錄我的第一個python程式,一個爬去指定圖片站點的所有圖集,現在還是一個非常簡陋的單線程程式。下一步是改寫成多線程,雖然python多線程被詆毀得一塌糊塗。同時加上異常處理。 近來練習python程式,仿照別人的爬蟲寫一個自己的爬蟲來練練手。在編寫的過程中遇到各種問題,中文編碼、請求不到 ...
  • 感謝 非常感謝Bill Wing和Christoph Deil的審閱和更正。 作者:Nicolas Rougier, Mike Müller, Gaël Varoquaux 本章內容: 介紹 簡單繪圖 圖形,子圖,軸線和刻度 其他類型的圖形:示例和練習 教程之外的內容 快速參考 4.1 介紹 Mat ...
  • 今天來總結下python3.4版本列表的一些操作方法。 列表(list): 1、列表就像一個線性容器,但是比C++的 lis t擴展多得多,列表裡的元素可以是相同類型,也可以包含各種類型,比如列表裡嵌套另一個列表 2、list的索引是也是從0開始,但也可以從後訪問,L1[-1] 表示L1中的最後一個 ...
  • 本來嘛,說好了要寫Selenium自動化搜電影的筆記的,然後正好今天上課無聊玩陰陽師開了個SSR,發現還有600體!準備怒刷之,但是又肝不動了。打算嘗試用Python寫個腳本來代替我自動點擊(PC端,安卓模擬器) 大家放心我沒寫出來 寫好在測試的時候,發現一到安卓模擬器就丟失焦點(也可能是點不了), ...
  • 密碼密文 passwd.py import getpass _username='sunny' password='000000' username=input("username:") password=getpass.getpass("password:") if _username == us ...
  • 閑來無事,寫了個swing界面,運行後看到當點擊按鈕時,中間文字會出現一個剛好把文字圍住的小方框,這是按鈕獲得焦點的標誌,我是覺得一個字:醜!怎麼去掉呢?萬能的度娘告訴我,設置下button的setFocusPainted為false,我試了一下,果然ok,下麵將代碼分享給大家,可以將設置屬性的那句 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...