#include<bits/stdc++.h>
#include "peru.h"
#define debug(x) cerr << #x << " " << x << "\n"
#define debugs(x) cerr << #x << " " << x << " "
#pragma GCC optimize("Ofast")
#define int long long
using namespace std;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
int range_rng(int l, int r)
{
return uniform_int_distribution<int>(l,r)(rng);
}
int dp[1005];
int v[1005];
const int mod=1e9+7;
int lgpow(int x, int p)
{
int ans,pw,i;
ans=1;
pw=x;
for (i=0;i<30;i++)
{
if (p&(1<<i))
ans=(ans*pw)%mod;
pw=(pw*pw)%mod;
}
return ans;
}
int cost (int l, int r)
{
int i,mx;
mx=0;
for (i=l;i<=r;i++)
{
mx=max(mx,v[i]);
}
return mx;
}
signed solve(signed N, signed K, signed* S)
{
int n,k,i,j,ans;
n=N;
k=K;
ans=0;
for (i=1;i<=n;i++)
{
dp[i]=1e18;
for (j=i;j>=max(i-k+1,1LL);j--)
{
dp[i]=min(dp[i],dp[j-1]+cost(j,i));
}
ans+=(dp[i]*lgpow(23,n-i))%mod;
ans%=mod;
}
return ans;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |