天天考試之後好不容易有一天拿著題解打完了三道題。
嗯,談成績傷感情,只看最後有沒有掌握好了。
我差不多是一條死魚了。。。。。
上題。題目描述
求由 1 到 n 一共 n 個數字組成的所有排列中,逆序對個數為 k 的有多少個。
輸入格式
第一行為乙個整數 t ,為資料組數。
以下 t 行,每行兩個整數 n,k,意義如題目所述。
輸出格式
對每組資料輸出答案對 10000 取模後的結果。
樣例資料
輸入
1 4 1
輸出
3備註
對於 30% 的資料,滿足:n≤12;
對於所有資料,滿足:n≤1000, k≤1000,t≤10。
就是求逆序對,加了dp的思想。
然而狀態轉移方程太虐,一點想錯全盤皆輸。
如下。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define mod 10000
using
namespace
std;
int t,n,k;
int f[1008][1008];
int main()
對就是上面那個方程,分類討論了的那個。
題目描述
乙個長度為 n 的序列,對於每個位置 i 的數 ai 都有乙個優美值,其定義是:找到序列中最長的一段 [l,r] ,滿足 l≤i≤r,且 [l,r] 中位數為ai(我們比較序列中兩個位置的數的大小時,以數值為第一關鍵字,下標為第二關鍵字比較。這樣的話 [l,r] 的長度只有可能是奇數),r-l+1 就是 i 的優美值。
接下來有 q 個詢問,每個詢問 [l,r] 表示查詢區間 [l,r] 內優美值的最大值。
輸入格式
第一行輸入 n 。
接下來 n 個整數,代表 ai。
接下來 q ,代表有 q 個區間。
接下來 q 行,每行兩個整數 l,r (l≤r),表示區間的左右端點。
輸出格式
對於每個區間的詢問,輸出答案。
樣例資料
輸入
8 16 19 7 8 9 11 20 16
8 3 8
1 4
2 3
1 1
5 5
1 2
2 8
7 8輸出
7 3
1 3
5 3 7 3
備註
【資料規模】
對於 30% 的資料,滿足:n,q≤50;
對於 70% 的資料,滿足:n,q≤2000;
對於所有資料,滿足 n≤2000;q≤100000;ai≤200 。
當時做題的時候,首先排序就忽略了第一第二關鍵字,一團糟。
對於題目信誓旦旦的說一定是奇數一臉懵,不知所云。
好不容易寫出來卻發現自定義函式。。。。。嗯咳
上**。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
int n,q;
int a[2005],w[2005],ll[4010],rr[4010];
inline
void zql()
cnt=0;
for(int j=i+1;j<=n;j++)
for(int j=1-i;j<=i-1;j++)
if(ll[n+j]>=0&&rr[n-j]>=0)
w[i]=max(w[i],ll[n+j]+rr[n-j]+1);
}}int main()
所以記錄兩邊數的大小可以用+1或是-1的方式。
題目描述
一開始你有乙個空集,集合可以出現重複元素,然後有 q 個操作:
1. add s
在集合中加入數字 s 。
2. del s
在集合中刪除數字 s 。保證 s 存在。如果有多個 s,只刪除乙個即可。
3. cnt s
查詢滿足 a&s=a 條件的 a 的個數。
輸入格式
第一行乙個整數 q 接下來 q 行,每一行都是 3 個操作中的乙個。
輸出格式
對於每個 cnt 操作輸出答案。
樣例資料
輸入
7 add 11
cnt 15
add 4
add 0
cnt 6
del 4
cnt 15
輸出
1 2
2備註
【資料規模】
對於 30% 的資料滿足:1≤n≤1000;
對於 100% 的資料滿足:1≤n≤200000;0<s<2^16 。
顯然題目清楚地指明了方向,只需要打出三個操作。
然而加粗的哪句話,當時並沒有出現。(這就不能怪我了(攤手))
還有那個 真·神神秘秘·不知道是什麼·讓人一臉懵·a.
手動微笑。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
int n,k,k1,k2;
int a[260][260];
long
long ans=0;
char s[10];
int main()
else
if(s[0]=='d')
else
首先看資料範圍,我們可以將其分成√n個塊,每一次加減操作在每乙個塊中同時進行,而查詢只需要在特定的塊裡查詢,依舊是√n的複雜度。
總複雜度o(√n*√n).
(256=2^8)
來自2017.7.11.的test4 >o<
——我認為return 0,是乙個時代的終結。
ACM暑期集訓4
今天主要學習了線段樹,樹狀陣列,st表,差分,分塊和樹剖 好吧,這個已經沒聽懂了 1.線段樹 線段樹涉及許多應用和思想,以下是今天所學 線段樹主要用於處理一段連續區間的插入,查詢,統計,查詢等操作。複雜度 設區間長度是n,所有操作的複雜度是logn級別。性質 線段樹是平衡的2叉樹,最大深度logn ...
暑期集訓2期4
把已經買過的遊戲給標記一下,然後從第一款遊戲開始買,如果還可以買並且沒有被標記過那麼買 include using namespace std long long n,ans,num,x struct node a 100010 inline intread while isdigit ch res...
暑期集訓心得
7.23 暑期集訓第三天 收穫 1.大概知道了哪些題自己能做,哪些題自己做不出來,這樣就不至於比賽時妄想面面俱到,結果面面不到的尷尬場面 2.平時訓練的題真是太水了,真到比賽時覺得賽題真是天方深不可測!完全比比賽低了不止乙個檔次!所以我決定以 後拿真是的賽題來訓練!3.寫程式怎樣才能一次ac?怎樣才...