标签:sample log math break ati mis 依次 using c++
Time Limit:2s Memory Limit:256MByte
Submissions:376Solved:111
有n
个灯,初始时都是不亮的状态,每次你可以选择一个某一个灯,不妨记为x,所有满足和x距离不超过k的灯的状态都将被翻转,选择第i个灯的代价记为ci
,问最终所有灯都是亮的状态的最小花费.
第二行包含n个整数,分别表示ci(0≤ci≤109)
1 #include<bits/stdc++.h> 2 using namespace std; 3 int main() 4 { 5 int n,k,i,j; 6 long long ans=1e18,c[10005]; 7 cin>>n>>k; 8 for(i=1;i<=n;++i) cin>>c[i]; 9 if(!k) {ans=0;for(i=1;i<=n;++i)ans+=c[i];n=-999; } 10 for(i=1;i<=n;++i) 11 { 12 int s=i,e=n-k,x=s; 13 long long p=0; 14 if(s-k>1) break; 15 for(j=s;j<=n;j+=(2*k)+1) { 16 p+=c[j]; 17 x=j; 18 } 19 if(x+k>=n) {ans=min(ans,p);} 20 } 21 cout<<ans<<endl; 22 return 0; 23 }
标签:sample log math break ati mis 依次 using c++
原文地址:http://www.cnblogs.com/zzqc/p/7295022.html