Acwing第 42 场周赛【完结】
生活随笔
收集整理的這篇文章主要介紹了
Acwing第 42 场周赛【完结】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
老了,廢了。該remake了。
目錄
- 4311. 最小值【簽到】
- 4312. 出現次數【前綴和 / KMP】
- 4313. 滿二叉樹等長路徑【遞歸 / 貪心】
4311. 最小值【簽到】
#include<bits/stdc++.h> using namespace std; int n,m; double ans=1e9,a,b; int main(void) {cin>>n>>m;for(int i=0;i<n;i++) cin>>a>>b,ans=min(ans,a/b);printf("%.6lf\n",m*ans);return 0; }4312. 出現次數【前綴和 / KMP】
用的KMP獲得位置,然后保存排序。
每次詢問暴力查找,但過了r的時候break
比賽的時候想的前綴和,但是那個邊界處理沒想明白。
前綴和做法:我們將子串的開頭作為標識。
故求 [l,r] 內的子串個數等于s[r-b.size()+1]-s[l-1]
4313. 滿二叉樹等長路徑【遞歸 / 貪心】
//遞歸加貪心,因為是路徑和,只要父節點增加, //對應的子節點都會增加,所以只要把每個子節點搞成相同的即可。 #include<bits/stdc++.h> using namespace std; const int N=1e4+10; int w[N],n,ans; int dfs(int u)//子樹到u的距離 {if(u>=pow(2,n+1)) return 0;int l=dfs(u*2)+w[u*2];int r=dfs(u*2+1)+w[u*2+1];ans+=abs(l-r);//倆子樹弄成相同的值的花費return max(l,r); } int main(void) {cin>>n;for(int i=2;i<pow(2,n+1);i++) cin>>w[i];dfs(1);cout<<ans;return 0; }總結
以上是生活随笔為你收集整理的Acwing第 42 场周赛【完结】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第四届“传智杯”全国大学生IT技能大赛(
- 下一篇: 102. 最佳牛围栏【二分 / 思维 不