原创 CodeForces - 809C

思路:從起始點開始,每隔(2^n)*(2^n)(n爲任意正整數)矩陣之間,不同矩陣中數的和之差爲n*n*n,而連續個x個(2^n)*m矩陣之和爲(1+x*2^n)*x*2^n/2,因此我們可以快速統計連續2^n區間和,對k進行切割即可。

原创 CodeForces - 1117G

思路:如果我們只考慮一個點在一個區間內所提供的貢獻,那麼只要需要知道左第一個比他大的數離他的距離和右邊第一個數比他的距離即可。而兩邊處理步驟是一樣的,因此,可以先算完左邊,在算右邊。首先先對詢問離散化處理,然後使用單調隊列預處理出每個點最

原创 CodeForces - 1101G

題意:洛谷有中文題意,鏈接:https://www.luogu.org/problemnew/show/CF1101G 思路:其實考慮到子集之間異或最多能夠產生的數的數目其實是2^32,而且就是只需要32個數就可以了,所以答案小於32。而

原创 CodeForces - 1101F

題意:洛谷有中文題意,鏈接:https://www.luogu.org/problemnew/show/CF1101F 思路:只考慮一輛車,我們可以很簡單的使用二分操作對V進行二分找到答案,運行的時間是可以接受的。因爲目前車的數目太多了,

原创 CodeForces - 1065F

題目:就是問一次牌子最多能遍歷多少個不同的葉子節點。 思路:假如牌子會落在當前位置的某顆子樹上的一個葉子,那麼就需要先統計好其他子樹上可以到達並且返回的葉子節點數,然後枚舉完所有葉子的可能即可。 (如果牌子在兩個葉子能上升到達同一個節點,

原创 codeforces 641D. Little Artem and Random Variable

pi  表示兩個骰子只有  (1 2 3......i) 出現概率  pi= max1+max2+max3+.....maxi suma_i 表示第一個骰子只有  (1 2 3......i)  出現概率和 sumb_i 表示第兩個骰

原创 codeforces 811C Vladik and Memorable Trip

題意:選擇n個區間內所有的元素不能在外部出現,求所有各區間內的集合元素異或和? 思路:先預處理可行的區間,然後掃一波即可。 #include <iostream> #include <cstring> #include <cstdi

原创 codeforces 710e

題意:一個空文本 可以刪除一個字符a  也可以增加一個字符a 或者複製整個字符串 問如何到達長度爲n 思路:因爲一開始沒看到有刪除功能直接撲了,以爲是簡單dp,所以直接錯了兩發T^T。那麼只要多判斷有刪除的就好了。 如果要後面j個點如果

原创 codeforces 803G Periodic RMQ Problem

題意:放大版的區間更新的線段樹 題解:由於實際上操作並不會生成太多節點,而且只有更新纔會生成新節點,如果查詢的時候發現下面並沒有節點,就知道下面沒有更新而且原來數組是循環的,所以直接得到答案,如果更新過就會有節點生成,就如同原來一樣計算

原创 codeforces 645e

題意:在原字符串加上n個字符(1e6)  使得他的不同子串數量最多 字符範圍爲k 思路:先考慮放一個字符 會有生成多少個新字串 ,那麼我們來統計現在如果包含這個字符的子串,由於這個字符是放在最後的,所以,字串增加數量就是*2,但是有重複

原创 codeforces 786c Till I Collapse

題目:將這個數列分割成m段,每一段裏面數的種類不超過k,現在詢問當 k在[1,n]之間時,對應的m去最小,分別是多少? 思路:首先計算所有的集合數量到底有多少 ?n+n/2+n/3+n/4+n/5.....最後發現實際上集合並不多,而且

原创 codeforces 556D Case of Fugitive

題意:一條線上有個n個大陸,範圍給定且不相交,現在要鄰近的大陸搭n-1座橋(橋的兩段要在大陸上),給你m座橋的長度,問你怎麼分配? 思路:其實就是n-1個區間和m個數,從m個數裏面挑n-1個數一一對應區間,這個要求不小於左區間,不大於右

原创 CodeForces - 675E

題意:一開始 你在第一個站 現在告訴每個站可以買一張票去其他地方(只能去比他座標大的) 最後一個站沒有賣 n表示 有n張車站 於是有n-1張車票 車票ai 表示這張車票可以從 i 車站出發 去 i+1 車站到 ai車站的任意一個車站

原创 codeforces 650d Zip-line

題意:求改變原數列的一個數以後 最長上升子序列的長度,詢問之間沒有聯繫。 思路:設原序列的lis爲k,那麼答案只有k-1,k,k+1三種。這裏有一個結論,如果一個數在lis之中,那麼他在lis的位置是一定的。所以只要判斷在這個位置上有多

原创 codeforces 713C

題意:就是把一個數列變成嚴格遞增的數列 求最小花費 思路:直接考慮結果的整個數列   必然存在那麼幾個數  他是從始至終 都沒有變過  那麼假設有一些數會受到這個數影響 比如一個數ai不變 如果aj 是受ai影響 那麼就會消耗   ab