題目 數石子 rqnoj 36

2022-05-31 12:03:12 字數 990 閱讀 7886

佳佳是個貪玩的孩子。一天,他正在跟凡凡玩「數石子」的遊戲。佳佳在地上擺了n堆石子,其中第i堆石子有ai個石頭。佳佳每次都會問凡凡:「凡凡,請問從第i堆到第j堆,總共有多少個石子?」聰明的凡凡每次都能快速而準確地回答對。凡凡老是被問問題,心裡有些不服,就對佳佳說:「佳佳,你還記得你問了什麼問題,我回答了什麼答案嗎?」佳佳說當然記得。於是凡凡說:「好,我把石子拿走,再問你一些相似的問題,你能答得出來嗎?」佳佳張圓了嘴巴,望著凡凡,一臉疑問和驚訝的表情。你現在知道了遊戲規則和過程,但沒看見原來的石子。請你寫乙個程式來幫助佳佳。

資料範圍

10%的資料滿足1<=n<=10,0<=m,k<=10

30%的資料滿足1<=n<=500,0<=m,k<=500

100%的資料滿足1<=n<=5000,0<=m,k<=10000

輸入檔案的第一行有3個數n(1<=n<=5000),m,k(0<=m,k<=10000),表示n堆石子,佳佳問了m個問題,凡凡要問k個問題。接下來m行每行3個整數l,r(1<=l<=r<=n),x(-108<=x<=108),表示佳佳問從l堆到r堆的石子共有多少個,而凡凡回答x個。接下來k行每行2個整數a,b(1<=a<=b<=n),每行表示凡凡問從a到b這些堆裡的石子有多少個。

輸出檔案需要對於凡凡提出每乙個提問,你若可以回答,則輸出答案,若無法回答,輸出unknown。

並查集。

將 n 堆石子想象成 n 條連續的線段。

i-1~i 表示一條線段,所以 i-1~i 表示一堆石子,所以 l-1~r 表示 l 到 r 堆石子。

1 #include2

using

namespace

std;34

int n,m,k,f[5005],d[5005]=; 56

int find(int

node)

1314

intmain()15

29for(i=1;i<=k;++i)30

36return0;

37 }

經典題目 合併石子

原題鏈結 很經典的一道題目。洛谷上算是乙個提高了一點難度的變式?環形 求最大值 求最小值 大體思路是列舉區間長度,長度為1的區間的耗費可知,那麼可以推得長度為2的區間的最小 最大耗費,接下來一直列舉到長度為n即可。錯誤 include include include include include ...

題目23 取石子(一)

描述 一天,tt在寢室閒著無聊,和同寢的人玩起了取石子遊戲,而由於條件有限,他 她們是用旺仔小饅頭當作石子。遊戲的規則是這樣的。設有一堆石子,數量為n 1 n 1000000 兩個人輪番取出其中的若干個,每次最多取m個 1 m 1000000 最先把石子取完者勝利。我們知道,tt和他 她的室友都十分...

題目23 取石子(一)

描述 一天,tt在寢室閒著無聊,和同寢的人玩起了取石子遊戲,而由於條件有限,他 她們是用旺仔小饅頭當作石子。遊戲的規則是這樣的。設有一堆石子,數量為n 1 n 1000000 兩個人輪番取出其中的若干個,每次最多取m個 1 m 1000000 最先把石子取完者勝利。我們知道,tt和他 她的室友都十分...