本文主要是介绍蓝桥辅导之壁画,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
蓝桥辅导之壁画
-
核心思想:前缀和
- 因为每次墙壁只会从两边断 且最终剩余的墙壁数量在n总长一定时确定
- 所以从头找长度为剩余长度的区间 求其美观程度总和 取最大值
-
#include<iostream>#include<algorithm>using namespace std;const int N = 5000010;int s[N];int n,m;char str[N];int main(){cin>>n;for(int i=1;i<=n;i++){cin>>m;cin>>str+1;for(int j=1;j<=m;j++){s[j] = s[j-1] + str[j]-'0';}int res=0,mid = (m+1) /2; //求最终长度 n/2上取整for(int j=mid;j<=m;j++) //求每个长度为mid的区间的评分和{res = max(res,s[j] - s[j-mid]);}cout<<"Case #"<<i<<": "<<res<<endl;}}
这篇关于蓝桥辅导之壁画的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!