A-candle(思维,枚举)
#include<stdio.h> #include<math.h> #include<string.h> #include<ctype.h> #include<iostream> #include<algorithm> #include<queue> #include<bitset> #include<vector> #include<map> typedef long long ll; using namespace std; ll meme[100009]; int main() { int len,k;cin>>len>>k; for(int i=1;i<=len;i++) cin>>meme[i]; ll ans=1e18; int r; for(int i=1;i<=len-k+1;i++) { r=i+k-1; ans=min(ans,meme[r]-meme[i]+min(abs(meme[i]),abs(meme[r]))); } cout<<ans<<endl; }
在这里给队友道歉由于我太笨这题在做的时候便秘了好久没拉出来
思路是枚举每一个区间的位置,点蜡烛途中为保证时间最短必定不能回头走,所以只需要算区间的长度加上从0移动道k点的距离即可