
Sloution
一道水?题
可以用数论去推。
此处理解一下分治(很多时候,分治可以当做dp去推(或者贪心(少些,一般是不想关的子问题)))
区分分治与dp

分治,子问题结构类似,简单合并就可以(以二分,三分…等等情况出现)
dp,一般,逐个扩大数据规模
这里用dp
int a[35];
ll f[35];
int main()
{
//freopen("in.txt", "r", stdin);
int k = 1;
while(cin>>a[k])
k++;
f[1] = a[1];
ll cnt = 1;
_for(i,2,k){
f[i] += 2*f[i - 1];
f[i] += (cnt + 1) * a[i];
cnt += cnt + 1;
}
cout << f[k-1];
}
本文探讨了一道涉及数论和动态规划的编程问题。通过递推公式,作者展示了如何计算特定序列的和,同时解释了分治与动态规划的区别。代码示例中,利用动态规划技巧求解问题,最终输出了序列的前k项之和。
601

被折叠的 条评论
为什么被折叠?



