1e5的数据范围?
by double_wings @ 2023-10-31 06:15:51
@[double_wings](/user/815710) 确实是,能帮忙看看改完的代码嘛?
```cpp
#include<bits/stdc++.h>
using namespace std;
const int N=100100;
long long a[N],b[N];
//b[i]是差分数组
long long a_,b_,c;
int sum;
int main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
int n,m;
cin>>n>>m;
for(int i=1;i<m;++i)
{
cin>>a[i];
}
for(int i=1;i<m;++i)
{
if(a[i]>a[i+1]){
b[a[i+1]]++;
b[a[i]]--;
}
else if(a[i]<a[i+1])
{
b[a[i+1]]--;
b[a[i]]++;
}
}
long long ans=0;
for(int i=1;i<n;++i)
{
sum+=b[i];
cin>>a_>>b_>>c;
if(sum!=0) ans+=min(c+b_*sum,sum*a_);
}
if(m<=1) ans=0;
cout<<ans;
return 0;
}
```
by RingTouSou @ 2023-10-31 09:08:11
@[RingTouSou](/user/1034242)
by M4A4_Howl @ 2023-10-31 11:31:07
```cpp
#include <bits/stdc++.h>
using namespace std;
long long n, m;
long long p[100005];
long long a[100005];
long long b[100005];
long long c[100005];
long long d[100005];
int main()
{
cin >> n >> m;
long long prev;
cin >> prev;
for (long long i = 2; i <= m; i++)
{
long long x;
cin >> x;
if (prev < x)
{
p[prev]++;
p[x]--;
}
else
{
p[prev]--;
p[x]++;
}
prev = x;
}
long long s = 0;
for (long long i = 1; i < n; i++)
{
s += p[i];
d[i] = s;
}
for (long long i = 1; i < n; i++)
{
cin >> a[i] >> b[i] >> c[i];
}
long long ans = 0;
for (long long i = 1; i < n; i++)
{
ans += min(d[i] * b[i] + c[i], d[i] * a[i]);
}
cout << ans;
return 0;
}
```
对比下看看
by M4A4_Howl @ 2023-10-31 11:35:22
@[Bart_Bart11](/user/951266) 关注了,调试完成了,非常感谢
by RingTouSou @ 2023-10-31 12:59:16