這次的離線賽不是內部的題,可以放出來了。
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暴力,又調了半天,這時考試只剩下兩個小時 第三題思考了大約十分鐘,然後想到了正解,實現比較快,乙個小時就...