失分小結:
估分: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暴力,又調了半天,這時考試只剩下兩個小時 第三題思考了大約十分鐘,然後想到了正解,實現比較快,乙個小時就...