2017 10 21離線賽總結

2021-08-09 15:56:30 字數 2420 閱讀 9525

失分小結:

估分:240

實際分數:250

本來覺得240應該是乙個挺正常的分數,但是很多人都考得不好

感覺第三題的思維還是太侷限了,就算打暴力也只能想著模擬。。

考試流程:

前兩題打得很順,大概就乙個小時多一點,最後一題玄學debug到考試結束

最後十分鐘靈感爆發,想到80分解法。。

題解:

第一題:

應該是乙個裸的字首和題目

反正這種題打完之後對拍一般就不會出什麼問題了

第二題:

個人感覺這道題是需要一些想法的。。

n<=100000

純粹的lis肯定過不掉,要加上些資料結構維護(像什麼bit,線段樹。。)

然後就是如何知道它是1、2、3

我的方法複雜度可能有點高 純粹是因為線段樹常數大的緣故

就是正著掃一遍,反著掃一遍

像普通lis一樣求出他的dp值

大約是dp1

[i]+

dp2[

i]+1

==ans

時說明這個點在lis上

然後看多少個dp[i]相同,若這個dp[i]是唯一的

那麼這個點必須出現在lis上

**實現:

int a[m],b[m];

int sum1[m],sum2[m];

bool mark[m];

int cnt[m];

struct treetree[m<<2];

void build(int l,int r,int p)

void update(int x,int a,int p)

intmid=(tree[p].l+tree[p].r)>>1;

if(mid>=x)update(x,a,p<<1);

else update(x,a,p<<1|1);

tree[p].sum=max(tree[p<<1].sum,tree[p<<1|1].sum);

}int query(int l,int r,int p)

intmid=(tree[p].l+tree[p].r)>>1;

if(mid>=r)return query(l,r,p<<1);

else

if(mid

1|1);

else return max(query(l,mid,p<<1),query(mid+1,r,p<<1|1));

}int main()

update(id,mx+1,1);

}int tmp=query(1,len,1);

build(1,len,1);

dor(i,n,1)

update(id,mx+1,1);

}for(i,1,n)

for(i,1,n)

}return 0;

}

第三題:

考試時yy這題肯定是二分加dp判定

這題的狀態也比較明顯,也就是第一行填到第幾個,第二行填到第幾個

更新也就是單純填第一行,單純填第二行,或者兩行一起填

然後複雜度會有些**。。

我考試時的複雜度是o(

logs

∗n3∗

m)只能過二十分的資料

然後優化最後一層,o(

logs

∗log

n∗n2

∗m) 能卡到50分 測評機告訴我的。。

是地球人都看得出這題的複雜度應該是o(

logs

∗n∗m

) 雖然後來komachi dalao寫出了o(

logs

∗m2)

的解法

然後就加了組hack資料害人

相較於之前最愚蠢的dp轉移,我們可以發現,其實沒有什麼必要分別列舉上下兩行的狀態

只用預處理最多填到哪列 然後一列一列列舉 複雜度為o(

logs

∗n∗m

) 講一下komachi的玄學寫法

預處理從某點鋪畫最多到哪個點

然後一步一步鋪過去,最多鋪m幅

當然之前要列舉從第一幅後開始鋪

dp[i]表示鋪到第幾幅最多鋪到第幾列

**實現:

#include

#include

#define for(i,x,y) for(int i=(x);i<=(y);i++)

#define ll long long

inline

void chk_mx(int &x,int y)

}bool dp(int mx)

}return w[m]==n;

}int main()

printf("%d\n",res);

return

0;}

2017 7 29 離線賽 總結

本著貪心的思想,我先斜著走到頂,然後直走到終點,顯然這是最優的,但是我忽視了斜著走的最後一步可以和直著走的第一步合併,我錯誤地把兩個過程分開了。假如我當時多找幾組資料來模擬說不定能找到這個錯誤,我也沒敲個暴力來對拍 因為暴力太長了 我得到的教訓是 不能肯定自己演算法的正確性是,不如敲個暴力對拍一下,...

離線賽20171006總結

這次考得還不錯,頗有些遺憾的是因為第一題我離正解已經很近了,可惜考試畢竟是考試,一開始的題目看錯沒看到相鄰的條件浪費了很多時間,到後來就沒有時間去寫正解了。這畢竟也是一種實力,不能說題目看錯失誤問題就不大。上次的考試兩個輸出只能模乙個沒看到導致少了70分。這種失誤還是太低階了,也太致命了。這種題目看...

2017 10 7離線賽總結

失分小結 估分 玄學 實際分數 300 收穫 寫題前仔細分析題目,好好思考 考試過程 第一題真的想不到,只好打個表,結果由於資料半天沒輸出來,心態 有前前後後折騰了半個小時 第二題先是打了個n n暴力,又調了半天,這時考試只剩下兩個小時 第三題思考了大約十分鐘,然後想到了正解,實現比較快,乙個小時就...