暴力贪心+预处理自动机——cf990E
Posted zsben991126
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了暴力贪心+预处理自动机——cf990E相关的知识,希望对你有一定的参考价值。
枚举每种灯管,然后找到代价最小的那种灯管
贪心策略:灯管从0开始向右放置,如果末尾是不能放置灯管的结点,那么要往回找到最近一个可以放置灯管的结点,在那里放置灯管
所以先预处理每个不能放置灯管的结点对应的最近的可以放置灯管的结点,即要能够自动往前找下标
using namespace std; int a[maxn]; int b[maxn]; int n,m,k; LL work(int ins) LL ans=0; int id=0; while(id<=n) if(id+ins>=n) ans++; break; id=a[id+ins]; ans++; return ans*b[ins]; int main() while(~scanf("%d%d%d",&n,&m,&k)) lan(a,0); lan(b,0); For(i,1,m) int tem; scanf("%d",&tem); a[tem]=1; For(i,1,k) int tem; scanf("%d",&b[i]); if(a[0]==1) printf("-1\n"); continue; int id=0; int curlen=0; int maxlen=0; For(i,1,n) if(a[i]==0) a[i]=i; id=i; else a[i]=id; maxlen=max(maxlen,i-a[i]); if(maxlen>=k) printf("-1\n"); continue; LL ans=1LL<<60; For(i,maxlen+1,k) ans=min(ans,work(i)); printf("%lld\n",ans); return 0;
以上是关于暴力贪心+预处理自动机——cf990E的主要内容,如果未能解决你的问题,请参考以下文章
Post Lamps CodeForces - 990E(暴力出奇迹?)