BZOJ 1012: [JSOI2008]最大數maxnumber(線段樹)

裸的線段樹...因為數組開小了而一直RE..浪費了好多時間..

--------------------------------------------------------------------------

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cctype>
#include<iostream>
#define rep(i,n) for(int i=0;i<n;i++)
#define clr(x,c) memset(x,c,sizeof(x))
using namespace std;
const int maxnode=800005;
const int inf=0x7fffffff;
int mod;
struct segmentTree {
int ql,qr,v,p,n;
int maxv[maxnode];
void init(int n) { this->n=n; }
int QUERY(int o,int l,int r) {
if(ql<=l && qr>=r) return maxv[o];
int mid=l+(r-l)/2,ans=-inf;
if(ql<=mid) ans=max(ans,QUERY(o*2,l,mid));
if(qr>mid) ans=max(ans,QUERY(o*2+1,mid+1,r));
return ans;
}
void UPDATE(int o,int l,int r) {
int mid=l+(r-l)/2;
if(l==r) maxv[o]=v;
else {
if(p<=mid) UPDATE(o*2,l,mid);
else UPDATE(o*2+1,mid+1,r);
maxv[o]=max(maxv[o*2],maxv[o*2+1]);
}
}
int query(int l,int r) {
ql=l; qr=r;
return QUERY(1,1,n);
}
void update(int i,int val) {
v=val; p=i;
UPDATE(1,1,n);
}
} st;
int main()
{
//freopen("test.in","r",stdin);
//freopen("test.out","w",stdout);
int n,ans=0,cnt=0,num;
scanf("%d%d",&n,&mod);
char c;
st.init(n);
while(n--) {
while(scanf("%c",&c) && !isupper(c));
scanf("%d",&num);
if(c=='Q') printf("%d\n",ans=st.query(cnt-num+1,cnt));
else st.update(++cnt,(num+ans)%mod);
}
return 0;
}

?

--------------------------------------------------------------------------?

1012: [JSOI2008]最大數maxnumber

Time Limit:?3 Sec??Memory Limit:?162 MB
Submit:?4787??Solved:?2162
[Submit][Status][Discuss]

Description

現在請求你維護一個數列,要求提供以下兩種操作: 1、 查詢操作。語法:Q L 功能:查詢當前數列中末尾L個數中的最大的數,并輸出這個數的值。限制:L不超過當前數列的長度。 2、 插入操作。語法:A n 功能:將n加上t,其中t是最近一次查詢操作的答案(如果還未執行過查詢操作,則t=0),并將所得結果對一個固定的常數D取模,將所得答案插入到數列的末尾。限制:n是非負整數并且在長整范圍內。注意:初始時數列是空的,沒有一個數。

Input

第一行兩個整數,M和D,其中M表示操作的個數(M <= 200,000),D如上文中所述,滿足(0

Output

對于每一個查詢操作,你應該按照順序依次輸出結果,每個結果占一行。

Sample Input

5 100
A 96
Q 1
A 97
Q 1
Q 2

Sample Output

96
93
96

?

轉載于:https://www.cnblogs.com/JSZX11556/p/4374990.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/259165.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/259165.shtml
英文地址,請注明出處:http://en.pswp.cn/news/259165.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何利用循環代替遞歸以防止棧溢出(譯)

摘要&#xff1a;我們經常會用到遞歸函數&#xff0c;但是如果遞歸深度太大時&#xff0c;往往導致棧溢出。而遞歸深度往往不太容易把握&#xff0c;所以比較安全一點的做法就是&#xff1a;用循環代替遞歸。文章最后的原文里面講了如何用10步實現這個過程&#xff0c;相當精彩…

python環境搭建_Python開發環境搭建安裝開發軟件

0.學習路徑示意圖各位小伙伴大家好&#xff0c;這次樓主分享的是Ubuntu上安裝開發軟件。包含以下這幾個軟件&#xff1a;PycharmAnaconda3GitVim遠程登錄軟件RangerPS&#xff1a;因為以下安裝包都是以root身份安裝的因此&#xff0c;要使用它們必須以root身份登錄su # 以root…

2023首屆溪口冬筍節開幕 掀起溪口竹筍產業新浪潮

今年冬至&#xff0c;龍游縣溪口鎮迎來陣勢浩大的“新氣象”。 2023年12月22日&#xff0c;由龍游縣溪口鎮人民政府主辦&#xff0c;“美好冬至 竹夢未來”首屆溪口冬筍節于溪口老街正式開幕&#xff0c;展開為期一周的竹筍產業文化、經濟活動宣傳&#xff0c;龍游縣領導、及社…

離散卷積的C語言實現

卷積公式可以去wiki上搜索&#xff0c;這里就不貼出了&#xff0c;具體的算法要參考MATLAB help中查看conv函數。根據conv的定義&#xff0c;我寫出下面的程序&#xff0c;可以直接在MATLAB進行驗證。唉&#xff0c;雖然程序是寫出來&#xff0c;可心里對卷積還是有一種抓不住的…

最常見的讀入數據方法集錦

我在程序編寫過程中&#xff0c;經常會遇到讀入數據的問題&#xff0c;大概這類問題分為兩種&#xff0c;一種是從控制臺讀取&#xff0c;一類是從文件讀取&#xff0c;我這里收集了一些常見的讀取方法&#xff0c;以供參考。 控制臺讀取&#xff1a; 情景一、有一個程序要求…

【翻譯自mos中文文章】重建控制文件的方法

重建控制文件的方法 參考原文&#xff1a; How to Recreate a Controlfile (Doc ID 735106.1) 適用于&#xff1a; Oracle Database - Enterprise Edition - Version 9.0.1.0 and later Information in this document applies to any platform. 解決方式&#xff1a; 警告&…

android 藍牙通訊編程 備忘

1.啟動App后: 判斷->藍牙是否打開&#xff08;所有功能必須在打牙打開的情況下才能用) 已打開: 啟動代碼中的藍牙通訊Service 未打開: 發布 打開藍牙意圖(系統)&#xff0c;根據Activity返回進場操作 打開成功,啟動代碼中的藍牙通訊Service 用戶點back或失敗 退出App 2.藍牙…

java 程序執行后 強制gc_GC 設計與停頓

(給ImportNew加星標&#xff0c;提高Java技能)編譯&#xff1a;唐尤華鏈接&#xff1a;shipilev.net/jvm/anatomy-quarks/3-gc-design-and-pauses/1. 寫在前面“[JVM 解剖公園][1]”是一個持續更新的系列迷你博客&#xff0c;閱讀每篇文章一般需要5到10分鐘。限于篇幅&#xff…

除BUG記

我負責一個模塊&#xff0c;功能比較簡單&#xff0c;就是測量環境溫、濕度&#xff0c;外加控制空調開/關、溫度設定。就是這么幾個功能&#xff0c;就反復試驗、修改&#xff0c;才達到穩定。在調試時&#xff0c;出現各種各樣的BUG&#xff0c;一些是編程時候出現的語法錯誤…

正則表達式語法(轉)

正則表達式是一種文本模式&#xff0c;包括普通字符&#xff08;例如&#xff0c;a 到 z 之間的字母&#xff09;和特殊字符&#xff08;稱為“元字符”&#xff09;。模式描述在搜索文本時要匹配的一個或多個字符串。 正則表達式示例 表達式匹配 /^\s*$/ 匹配空行。 /\d{2}-…

迎戰校招訓練題

一、雙空 編譯器可以根據硬件特性選擇合適的類型長度&#xff0c;但要遵循如下限制&#xff1a;short與int類型至少為___C___位&#xff0c;long至少為__D____位&#xff0c;并且short類型不長于int類型&#xff0c;int類型不得長于long類型。 A. 4 B.8 C.16 D. 32 E. 64…

【ASP.NET Web API2】初識Web API

Web Api 是什么&#xff1f; MSDN&#xff1a;ASP.NET Web API 是一種框架&#xff0c;用于輕松構建可以訪問多種客戶端&#xff08;包括瀏覽器和移動設備&#xff09;的 HTTP 服務 百度百科&#xff1a;Web API是網絡應用程序接口。 個人理解&#xff1a;Web API 是提供給多種…

三星s8怎么分屏操作_三星手機該怎么玩?了解完這幾點用機技巧,可以輕車熟路了!...

其實對于三星這個手機品牌&#xff0c;我還是很佩服的。雖然近些年來&#xff0c;三星在國內的市場份額日漸變少&#xff0c;但是在國內的影響力依然尚存。畢竟三星手機在某些方面還是很有優勢的&#xff0c;特別是旗艦系列機型深受消費者喜愛。接下來&#xff0c;筆者就跟大家…

關于條件編譯的問題

這兩天來忙活ucos-II在PIC18fxxx系列上的移植。在編譯的時候老出現變量被多重定義的錯誤。花費了一天的功夫才成功編譯通過&#xff0c;錯誤何在&#xff1f;&#xff1f;就是因為沒有搞明白條件編譯的原理&#xff0c;二是對mcc18編譯器的特點無知。下面學習條件編譯方面的知識…

二維數組的指針復習

最近一次的考試都是指針&#xff0c;真是給我深深上了一課&#xff0c;所以我特此復習一下指針方面的知識。二維數組的指針 int a[3][4] {{1,3,5,7},{9,11,13,15},{17,19,21,23}}; 下面通過一個表來做詳細的說明&#xff1a; 訪問二維數組&#xff0c;有兩種方法&#xff0c;一…

稱重的問題

給你8顆小石頭和一架托盤天平。有7顆石頭的重量是一樣的&#xff0c;另外一顆比其他石頭略重&#xff1b;除此之外&#xff0c;這些石頭完全沒有分別。你不得假設那顆重頭到底比其他的石頭重了多少。請問&#xff1a;最少要稱量幾次&#xff0c;你才能把那顆較重的石頭找出來&a…

TIF圖像文件的讀取(c++代碼)

一 TIF圖像介紹 TIFF是最復雜的一種位圖文件格式。TIFF是基于標記的文件格式&#xff0c;它廣泛地應用于對圖像質量要求較高的圖像的存儲與轉換。由于它的結構靈活和包容性大&#xff0c;它已成為圖像文件格式的一種標準&#xff0c;絕大多數圖像系統都支持這種格式。 TIFF 是一…

g menu i meun_長沙話讀“這里”,到底是閣(gó)里還是該(gái)里

“帶籠子”、“打抱秋”……這些地道的長沙話&#xff0c;長沙人&#xff0c;你有多久沒聽過了&#xff1f;/ 長沙人&#xff0c;你還記得長沙話嗎 / “去了很多地方&#xff0c;最后還是回到了長沙”“我聽見了一句長沙話&#xff0c;就想回長沙了。”逗霸妹聽過很多人回長沙的…

git使用---工作區和暫存區

轉載于:https://www.cnblogs.com/momo-unique/articles/4380551.html

UC/OS-II的學習

粗略的的看了邵貝貝老師的那本書&#xff0c;感覺有點眉目。UC/OS-II的全局變量繁多&#xff0c;剛接觸的時候容易弄混淆&#xff0c;現在總結下&#xff1a; OSRunning&#xff1a; 用于標識多任務環境是否已經開啟運行&#xff0c;在OSStart()函數里啟動任務后就置為True。 …