[蓝桥杯]ALGO-116.算法训练_最大的算式
问题描述
题目很简单,给出N个数字,不改变它们的相对位置,在中间加入K个乘号和N-K-1个加号,(括号随便加)使最终结果尽量大。因为乘号和加号一共就是N-1个了,所以恰好每两个相邻数字之间都有一个符号。例如:
N=,K=,5个数字分别为1、、、、,可以加成:
**(++)=
*(+)*(+)=
(*+)*(+)=
……
输入格式
输入文件共有二行,第一行为两个有空格隔开的整数,表示N和K,其中(<=N<=, <=K<=N-)。第二行为 N个用空格隔开的数字(每个数字在0到9之间)。
输出格式
输出文件仅一行包含一个整数,表示要求的最大的结果
样例输入 样例输出 样例说明
(++)**=
题目描述
代码如下:
#include <stdio.h>
#include <string.h>
#define LEN 15
#define MAX(X,Y) (X)>(Y)?(X):(Y) int main(void)
{
int i,j,h;
int n,k;
long long dp[LEN+][LEN+]; //列代表乘号个数
memset(dp,,sizeof(dp)); scanf("%d%d",&n,&k);
for (i= ; i<=n ; i++)
{
scanf("%d",&dp[i][]);
dp[i][] += dp[i-][]; //乘号个数为0时
} for (i= ; i<=n ; i++) //遍历i个数
{
for (j= ; j<=k&&j<=i- ; j++)//乘号的个数
{
for (h= ; h<=i ; h ++) //乘号的位置(第i个数的前面)
dp[i][j] = MAX(dp[i][j],dp[h-][j-]*(dp[i][]-dp[h-][]));
}
} printf("%lld",dp[n][k]); return ;
}
C解法
参考:https://www.cnblogs.com/cao-lei/p/6690827.html
解题思路:
建立一个二维数组,其中列表示乘号的个数
将输入的数字存储第一列中(从1开始存储),每次存储时增加前一个数字(即前n个数的和)
然后计算最大式,即:当前值 = max(当前值 ,前n个数最大值*(当前和 - 前n个数和) )
将前n个数的最大值情况保存下来,供下次使用
最后输出dp[n][k]即为答案
[蓝桥杯]ALGO-116.算法训练_最大的算式的更多相关文章
- 蓝桥杯练习系统— 算法训练 Beaver's Calculator
问题描述 从万能词典来的聪明的海狸已经使我们惊讶了一次.他开发了一种新的计算器,他将此命名为"Beaver's Calculator 1.0".它非常特别,并且被计划使用在各种各样 ...
- 蓝桥杯练习系统算法训练习题加答案java版本
附上百度文库的链接:http://wenku.baidu.com/view/afb78d36b42acfc789eb172ded630b1c59ee9bf7
- 蓝桥杯 算法训练 ALGO-116 最大的算式
算法训练 最大的算式 时间限制:1.0s 内存限制:256.0MB 问题描述 题目很简单,给出N个数字,不改变它们的相对位置,在中间加入K个乘号和N-K-1个加号,(括号随便加)使最终结果尽量 ...
- ALGO-143_蓝桥杯_算法训练_字符串变换
问题描述 相信经过这个学期的编程训练,大家对于字符串的操作已经掌握的相当熟练了.今天,徐老师想测试一下大家对于字符串操作的掌握情况.徐老师自己定义了1,,,,5这5个参数分别指代不同的5种字符串操作, ...
- ALGO-6_蓝桥杯_算法训练_安慰奶牛
记: 本题目考的是最小生成数,可使用Kruskal算法 第一次,20分 原因:使用动态数组,有概率报运行错误(大雾= =) 第二次,100分 原因:改用静态数组,一次过 示例代码: #include ...
- ALGO-5_蓝桥杯_算法训练_最短路
记: 一开始没接触过关于最短距离的算法,便开始翻阅关于图的知识, 得知关于最短距离的算法有Dijkstra算法(堆优化暂未看懂),Bellman-Ford算法,Floyd算法,SPFA算法. 由于数据 ...
- [蓝桥杯]ALGO-20.算法训练_求先序排列
问题描述 给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树结点用不同的大写字母表示,长度<=). 输入格式 两行,每行一个字符串,分别表示中序和后序排列 输出格式 一个字符串,表示所求 ...
- 蓝桥杯_算法训练_区间k大数查询
问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. 第二行包含n个正整数,表示给定的序列. 第三个包含一个正整数m,表示询问个数 ...
- [蓝桥杯]ALGO-16.算法训练_进制转换
问题描述 我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的(值减1)为指数,以10为底数的幂之和的形式.例如:123可表示为 1*102+2*101+3*100这样 ...
随机推荐
- 九度OJ1036-空缺数字计算-暴力破解
题目1036:Old Bill 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3748 解决:2053 题目描述: Among grandfather's papers a bill wa ...
- Mariadb使用xtrabackup工具备份数据脚本
#!/bin/bash#这个脚本用来备份SQL文件: sql_home="/home/mysql"sql_bak_log="$sql_home/xtrabackup.lo ...
- Gym - 101002K:YATP (树分治+二分+斜率优化)
题意:给定带点权边权的树,定义路径的花费=路径边权和e+起点点权w[s]*终点点权w[t].N<2e5,e,w<1e6: 思路:首先,需要树分治. 然后得到方程dp[i]=min{ dis ...
- spawn函数的实现(前文自动执行器的翻版)
function spawn(genF) { return new Promise(function(resolve, reject) { const gen = genF(); function s ...
- Linux定时任务计划
Linux定时任务计划 在使用Linux系统时,我们有时会需要让系统在某个时间去执行特定的任务,这时就需要去了解Linux提供的定时任务功能 种类 Linux的定时任务分为两种:单一型和循环型 单一型 ...
- (7)MySQL的事务
什么是事物: 作用:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节.事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像 ...
- 【java编程】ServiceLoader使用看这一篇就够了
转载:https://www.jianshu.com/p/7601ba434ff4 想必大家多多少少听过spi,具体的解释我就不多说了.但是它具体是怎么实现的呢?它的原理是什么呢?下面我就围绕这两个问 ...
- XML基础入门
一.概念 XML: Extensible markup Language,可拓展标记语言 功能:存储数据 1.配置文件 2.在网络中传输数据 html和xml的区别: 1.xml标记全是自定义的 2 ...
- MySQL--查看内存信息
常见查看内存信息命令 ## 使用free -m命令查看 free -m ## 使用cat /proc/meminfo 查看 cat /proc/meminfo ## 使用dmidecode命令查看 d ...
- MySQL--Checkpoint基础
===================================================== Checkpint 分两种:Sharp Checkpoint : 在服务器正常关闭时,将所有 ...