10 26離線賽題解

2021-07-24 02:29:27 字數 2409 閱讀 8338

這次的離線賽不是內部的題,可以放出來了。

a題:

這題作為聯賽第一題是偏難的,這題其實是有聯賽第二題難度

反倒是b題水的一b。。

我們可以清晰的知道,

本題需要求解的是:σs

um[i

]σnu

m[i]

的最大值

由於資料範圍的緣故,

直接暴力肯定不行(這不是廢話)

我首先看到這題想到的是貪心

對於每行i都選取該值最大的

最後發現這是個錯誤的貪心

再仔細想想這題貌似不能貪心

於是想到了dp

然而這題dp是n^2*m

會炸(不過倒是有40分)

於是乎。。

我們知道其實這種題型其實解法無非兩種

1.列舉分子(母),貪心分母(子)

2.就是這題的解法了

我們假設可以挖金礦時平均值可以達到k

於是可以得出: σs

um[i

]σnu

m[i]

≥k 於是乎

σsum[i]≥k*σnum[i]

and then:

σsum[i]-k*σnum[i]≥0

end!!!!!!

σ(sum[i]-k*num[i])≥0

於是在二分答案之後,只需在每行找出sum-k*num的最大值就行了

一波**來襲:

#include

int main()res+=mx;

}if(res>=0)l=mid;

else r=mid;

}printf("%.4lf\n",l);

return

0;}

b題:道路規劃

話說其實剛看到這題的時候

我是被它所謂的交叉給嚇到了

但其實只要把南部城市當成val,

對映一下,lis就能秒掉這題了

水題不解釋。。。

**:

#include

using

namespace

std;

#define m 100005

int a[m],b[m],id[m],dp[m],val[m];

int n;

int main()

val[0]=n+1;

for(int i=1;i<=n;i++)val[n-i+1]=id[a[i]];

int ans=0,len=0;dp[++len]=val[1];

for(int i=2;i<=n;i++)

}printf("%d\n",len);

return

0;}

c題:排隊

話說這題其實也不是很難

考試的時候其實是想到倍增了的

但是因為 我是弱雞的緣故 我逗比的認為o(n)的1號操作會超時,於是就沒敲

其實這題的解法是很好想的

完全不需要線段樹,數狀陣列什麼的

其實只用後續遍歷成乙個陣列以後

2操作倍增跳不解釋

1操作其實根本不用管那麼多,直接乙個個塞就行了

(一次1操作最多可以塞入n個數,2操作卻只能拿掉1個數。。。)

於是乎。。

剩下的就只有模擬了

**:

#include

using

namespace

std;

#define m 100005

#define s 22

vector

edge[m];

int k,a[m],mp[m],mark[m],fa[m][s];

priority_queueq;

void dfs(int x,int pre)a[++k]=x;//線對映樹

mp[x]=k;//樹對映線

for(int i=0;iint y=edge[x][i];

if(y==pre)continue;

fa[mp[y]][0]=mp[x];//跳一步到達father

}}int main()for(int i=1;i<=n;i++)sort(edge[i].begin(),edge[i].end());//先去小序號的結點

dfs(1,0);

for(int i=1;(1

if(fa[j][i-1]&&fa[fa[j][i-1]][i-1])fa[j][i]=fa[fa[j][i-1]][i-1];

for(int i=1;i<=n;i++)q.push(-i);//大頂堆->小頂堆

while(m--)printf("%d\n",a[id]);

}else

}return

0;}

2017 7 29 離線賽 總結

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

離線賽20171006總結

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

2017 10 7離線賽總結

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