题意
给定一个序列,里面的值只有可能是 \(a\) 或 \(b\)(\(a < b\))。有 \(m\) 个区间,这里面的值必须是 \(a\),求如何是序列总和最大。
思路
因为 \(n\) 和 \(m\) 都只有 100,所以可以先暴力将所有值设为 \(b\),再将区间里的值暴力修改为 \(a\),最后统计答案。
AC CODE
#include<bits/stdc++.h>
using namespace std;
int s[105];
signed main(){
int n,m,a,b;
cin>>n>>m>>a>>b;
for(int i=1;i<=n;i++)s[i]=b;
for(int i=1;i<=m;i++){
int l,r;
cin>>l>>r;
for(int j=l;j<=r;j++){
s[j]=a;
}
}
long long ans=0;
for(int i=1;i<=n;i++){
ans+=s[i];
}
cout<<ans;
return 0;
}
标签:code,festival,题解,int,2018,quala
From: https://www.cnblogs.com/xdh2012/p/17841644.html