又到了gdut一年一度的程式設計競賽校賽的時間啦。同學們只要參加校賽,並且每解出一道題目就可以免費獲得由acm協會和集訓隊送出的氣球乙個。聽到這個訊息,jmc也想參加免費拿氣球。可是,由於jmc太菜了而被禁止參賽,於是他找到你想讓你幫忙參加比賽,可以通過執行下面的c++程式解決問題後獲得氣球並送給他。jmc保證了下面的程式一定能獲得正確的結果。
void solve(int q, int type, long long first, long long second)
} else if (type[i] == 2)
printf("%lld\n", res);
} }
} 為防止你被jmc的**搞到頭暈目眩,jmc特意給出了問題的文字描述。已知一開始有乙個空序列,接下來有q次操作,每次操作給出type、first和second三個值。當type為1時,意味著該操作屬於第一種操作:往序列尾部新增first個second數。當type為2時,意味著該操作屬於第二種操作:查詢序列中第first小至第second小的數值之和(一共有(second - first + 1)個數被累加),並將結果對1000000007取模後輸出。
input
單組資料
第一行乙個q(1 <= q <= 1e5),代表q次操作。
接下來有q行,每行包含三個整數type、first和second;其中1 <= type <= 2。當type等於1時,0 <= first,second < 1e9。當type等於2時,1 <= first <= second,且first和second均不大於目前已新增進序列的數的數量。
output
對於每次操作二,將結果對1000000007取模後輸出。
sample input
6sample output1 5 1
1 6 3
2 2 5
2 4 8
1 2 2
2 4 8
4一眼過去線段樹。。。不過比賽的時候因為沒有發現在type = 2的時候first以及second變數是可能大於1e9的(沒給範圍),所以一直在wa。。。很過分。119
#includeusing namespace std;
const int maxn = 100010;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
long long sot[maxn]; int cnt = 1;
long long mi[maxn][4];
const int mod = 1000000007;
int hash(long long x)
long long sum[maxn * 4], add[maxn * 4];
void pushup(int rt)
void build(int l, int r, int rt)
int m = (l + r) >> 1;
build(lson); build(rson);
}void update(long long p, long long x, int l, int r, int rt)
int m = (l + r) >> 1;
if (p <= m)update(p, x, lson);
else update(p, x, rson);
pushup(rt);
}long long query(int l, int r, int rt, long long k)
int m = (l + r) >> 1;
long long ans = 0;
if (k > sum[rt << 1])
else
ans %= mod;
return ans;
}int main()
build(1, cnt, 1);
sort(sot + 1, sot + cnt);
for (int i = 1; i <= n; i++)
else
else
long long ans = (bsum - asum + mod) % mod;
printf("%lld\n", ans);
} }return 0;
}
HDU 6464 免費送氣球(線段樹二分)
題意 又到了gdut一年一度的程式設計競賽校賽的時間啦。同學們只要參加校賽,並且每解出一道題目就可以免費獲得由acm協會和集訓隊送出的氣球乙個。聽到這個訊息,jmc也想參加免費拿氣球。可是,由於jmc太菜了而被禁止參賽,於是他找到你想讓你幫忙參加比賽,可以通過執行下面的c 程式解決問題後獲得氣球並送...
免費送大家 20 本書
感謝大家關注我,我要送書給你們,而且是一言不合就送書!本次送的書是 學習力 共20本。2019年來自職場的扎心三問 有很多要學的內容,但工作忙得根本沒有時間,怎麼辦?工作了很多年,但知識支離破碎得不成體系,怎麼辦?想轉行,但又缺少工作必需的知識和技能,怎麼辦?其實,這一切只是因為你用的方法不適合你,...
《大話重構》免費送書活動開始啦
我的新書 大話重構 免費送書活動開始啦!參與方式 一.進入該活動並免費試讀本書 url 二.在該活動中完整回答以下四個問題的讀者可獲得 機會 1 你自認為你的程式設計水平是 a初級 b中級 c高階 d不好說,但別人都叫我大師 2 你在平常工作中是否進行重構 a經常 b有時 c幾乎從不 3 這本書從目...