题解 CF178A1【Educational Game】

概述

题号 难度 \(AC\)时间及记录
\(\texttt{CF178A1}\) \(\texttt{洛谷难度:暂无评定}\) \(\texttt{On 2021/03/16}\)

解析

这是一道简单题。
题意不难理解。
我们考虑暴力。
\(P.S. \huge\texttt{Don't use long long.}\)
不用开 \(long\ long\) 啦!
最暴力的办法,枚举一下每个数要移到哪里去。
用二进制的方法计算代价。
不难算出最小答案。
因为数据小,所以我们打了一个 \(\mathcal{O(n^3logn)}\)\(AC\) 了。

代码

/*
Author:Xsmyy
Problem:CF178A1
Date:2021/03/16
*/
#include<bits/stdc++.h>
#define BetterIO ios::sync_with_stdio(false)
using namespace std;
int N;
int Dp[1001];
int Array[1001];
inline int Cut(int X)
{
	return X?Cut(X&(X-1))+1:0;
}
int main(void)
{
	BetterIO;
	#ifndef ONLINE_JUDGE
	freopen("SampleIN.in","r",stdin);
	#else
	#endif
	register int i,j,k;
	cin>>N;
	for(i=1;i<=N;i++)cin>>Array[i];
	for(i=1;i<N;i++)
	{
		register int Ans;
		Ans=0;
		for(j=1;j<=N;j++)Dp[j]=2147483647;
		for(j=1;j<=i;j++)for(k=i+1;k<=N;k++)Dp[j]=min(Dp[j],Cut(k-j));
		for(j=1;j<=i;j++)Ans+=Dp[j]*Array[j];
		cout<<Ans<<endl;
	}
	return 0;
}
posted @ 2021-03-16 20:25  Bushuai_Tang  阅读(38)  评论(0编辑  收藏  举报