http://lx.lanqiao.cn/problem.page?gpid=T294

题意:中文题意。

思路:1、一开始想的是,乘号就相当于隔板,把隔板插入到序列当中,同一个隔板的就是使用加法运算,然后求最大值。也没有证明这个想法的正确性就蒙头写了。然后第一个数据就错了,还是挺良心的可以看第一个数据,发现k==0的情况我的输出是0,然后特判一下就过了。不过这样的复杂度很爆炸的,枚举了隔板的位置,最坏的复杂度应该是C(7, 15)吧。

2、后来想着如果n=100的话那就炸了。看了下别人的思路,可以用DP。有点类似于区间DP。

dp[i][j]表示枚举到第i个数字,使用了j个乘号的时候最大的答案是多少。

dp[i][j] = max(dp[i][j], dp[k][j-1] * (sum[i] - sum[k])) . (k < i)

就相当于当前枚举的是第j组,然后乘上这一组的贡献,实际感觉和我上边的想法挺像的呀。不过我的复杂度爆炸了。

DFS

 #include <cstdio>
#include <cstring>
using namespace std;
#define N 20
typedef long long LL;
int div[N], n, k;
LL w[N], sum[N], ans; void solve() {
//for(int i = 1; i <= k; i++) printf("div[%d] : %d\n", i, div[i]);
LL now = ;
for(int i = ; i <= k; i++)
now = now * (sum[div[i]] - sum[div[i-]]);
now = now * sum[div[]] * (sum[n] - sum[div[k]]);
if(now > ans) ans = now;
} void dfs(int id) {
if(id == k + ) { solve(); return ; }
for(int i = div[id-] + ; i < n - (k - id); i++) {
div[id] = i; dfs(id + );
}
} int main() {
scanf("%d%d", &n, &k);
for(int i = ; i <= n; i++) scanf("%I64d", &w[i]), sum[i] = sum[i-] + w[i];
ans = ;
dfs();
if(k == ) ans = sum[n];
printf("%I64d\n", ans);
}

DP

 #include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define N 20
typedef long long LL;
LL dp[N][N], sum[N]; int main() {
int n, x, w; scanf("%d%d", &n, &x);
for(int i = ; i <= n; i++) scanf("%d", &w), sum[i] = sum[i-] + w, dp[i][] = sum[i];
for(int i = ; i <= n; i++) {
for(int j = ; j <= x; j++) {
if(i <= j) continue;
for(int k = ; k < i; k++) {
dp[i][j] = max(dp[i][j], dp[k][j-] * (sum[i] - sum[k]));
}
}
}
printf("%I64d\n", dp[n][x]);
}

蓝桥杯:最大的算式(爆搜 || DP)的更多相关文章

  1. 蓝桥杯历届试题 地宫取宝 dp or 记忆化搜索

    问题描述 X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签. 地宫的入口在左上角,出口在右下角. 小明被带到地宫的入口,国王要求他只能向右或向下行走. 走 ...

  2. 51nod 1989 竞赛表格 (爆搜+DP算方案)

    题意 自己看 分析 其实统计出现次数与出现在矩阵的那个位置无关.所以我们定义f(i)f(i)f(i)表示iii的出现次数.那么就有转移方程式f(i)=1+∑j+rev(j)=if(j)f(i)=1+\ ...

  3. 蓝桥杯-马虎的算式-java

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...

  4. ALGO-22_蓝桥杯_算法训练_装箱问题(DP)

    问题描述 有一个箱子容量为V(正整数,<=V<=),同时有n个物品(<n<=),每个物品有一个体积(正整数). 要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小. 输 ...

  5. 蓝桥杯 算法提高 金属采集 [ 树形dp 经典 ]

    传送门 算法提高 金属采集 时间限制:1.0s   内存限制:256.0MB     锦囊1   锦囊2   锦囊3   问题描述 人类在火星上发现了一种新的金属!这些金属分布在一些奇怪的地方,不妨叫 ...

  6. 蓝桥杯:合并石子(区间DP+平行四边形优化)

    http://lx.lanqiao.cn/problem.page?gpid=T414 题意:…… 思路:很普通的区间DP,但是因为n<=1000,所以O(n^3)只能拿90分.上网查了下了解了 ...

  7. 蓝桥杯:矩阵乘法(区间DP)

    http://lx.lanqiao.cn/problem.page?gpid=T417 题意:…… 思路:n=1000,一开始觉得区间DP会超时,后来想不到其他做法就这样做了,居然没超时. 状态转移: ...

  8. 蓝桥杯 试题 算法提高 宰羊 DP解决

    问题描述 炫炫回了内蒙,肯定要吃羊肉啦,所有他家要宰羊吃. 炫炫家有N只羊,羊圈排成一排,标号1~N.炫炫每天吃掉一只羊(这食量!其实是放生啦),吃掉的羊的邻居会以为它被放生了,然后又会告诉他们的邻居 ...

  9. 蓝桥杯 试题 历届试题 对局匹配 DP解决

    问题描述 小明喜欢在一个围棋网站上找别人在线对弈.这个网站上所有注册用户都有一个积分,代表他的围棋水平. 小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是K的两名用户匹配在一起.如果两人分差 ...

随机推荐

  1. Android 百度地图 SDK v3.0.0 (四) 离线地图功能介绍

    转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/37758097 一直认为地图应用支持离线地图非常重要啊.我等移动2G屌丝,流量不易 ...

  2. C# NetCore使用AngleSharp爬取周公解梦数据

    这一章详细讲解编码过程 那么接下来就是码代码了,GO 新建NetCore WebApi项目 空的就可以 NuGet安装 Install-Package AngleSharp 或者界面安装 using. ...

  3. QRCode二维码生成方案及其在带LOGO型二维码中的应用(1)

    原文:QRCode二维码生成方案及其在带LOGO型二维码中的应用(1) 提要:很多公司为商业宣传之需,常将企业LOGO加入二维码中,但如果LOGO遮挡区域足够地大,二维码就变得无法识别.那么,有没有一 ...

  4. Win8Metro(C#)数字图像处理--2.28图像乘法运算

    原文:Win8Metro(C#)数字图像处理--2.28图像乘法运算  [函数名称] 图像乘法函数MultiplicationProcess(WriteableBitmap src, Writea ...

  5. 微信小程序把玩(二十)slider组件

    原文:微信小程序把玩(二十)slider组件 slider滑动组件用的不太多,在其他平台反正我是用的不多 主要属性: wxml <slider max="100" step= ...

  6. 零元学Expression Blend 4 - Chapter 2 入门界面简介

    原文:零元学Expression Blend 4 - Chapter 2 入门界面简介 在这篇教学我将会介绍Expression Blend 4的基本界面,虽然有些网站已经有做了介绍,为了整个教学的完 ...

  7. C#高性能大容量SOCKET并发(九):断点续传

    原文:C#高性能大容量SOCKET并发(九):断点续传 上传断点续传 断点续传主要是用在上传或下载文件,一般做法是开始上传的时候,服务器返回上次已经上传的大小,如果上传完成,则返回-1:下载开始的时候 ...

  8. 程序跳过UAC研究及实现思路(两种方法,现在可能都不行了)

    网上很对跳过UAC资料都是说如果让UAC弹出窗体,并没有真正跳过弹窗,这里结合动态提权+计划任务实现真正意义上的跳过UAC弹窗,运行程序的时候可以不出现UAC窗体,并且程序还是以高权限运行. vist ...

  9. 【canvas】基础练习二 文字

    demo1 fillText strokeText绘制文字 <!DOCTYPE html> <html lang="en"> <head> &l ...

  10. Codility---Dominator

    Task description A zero-indexed array A consisting of N integers is given. The dominator of array A ...