当前位置: 首页 > news >正文

[NYOJ 536] 开心的mdd

开心的mdd

时间限制: 1000 ms  |  内存限制:65535 KB
难度: 3

描述
himdd有一天闲着无聊,随手拿了一本书,随手翻到一页,上面描述了一个神奇的问题,貌似是一个和矩阵有关的东西。

给出三个矩阵和其行列A1(10*100),A2(100*5),A3(5*50)。现在himdd要算出计算矩阵所要的乘法次数,他发现不同的计算次序,所要的乘法次数也不一样,

如:

(A1*A2)*A3 : 10*100*5+5*10*50=7500;

A1*(A2*A3) : 5*100*50+10*100*50 =75000;

他想知道计算矩阵所要的最少乘法次数是多少,很快一个解法就诞生了,有点小happy~~现在他想问问你是否也能找出一个解法呢?

注意:矩阵不可改变顺序。

 

输入
有多组测试数据(<=100),每组表述如下:
第一行,有一个整数n矩阵的个数(1<=n<=100)
接下来有n行
第i行有两整数,r,c表示第i个矩阵的行列;(1<=r,c<=100)


输出
输出计算矩阵所要的最少乘法次数。


样例输入
3
10 100
100 5
5 50

 

样例输出

7500

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
#define min _cpp_min
#define INF 0x7ffffff
#define N 110

int n;
int a[N];
int dp[N][N];                               //dp[i][j]表示pi*..*pj的最少次数

int main()
{
    int i,j,k,len;
    while(scanf("%d",&n)!=EOF)
    {
        for(i=1;i<=n;i++)
        {
            scanf("%d%d",&a[i-1],&a[i]);
            dp[i][i]=0;
        }
        for(len=2;len<=n;len++)
        {
            for(i=1;i<=n-len+1;i++)
            {
                j=i+len-1;
                dp[i][j]=INF;
                for(k=i;k<j;k++)
                {
                    dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+a[i-1]*a[k]*a[j]);
                }
            }
        }
        cout<<dp[1][n]<<endl;
    }
    return 0;
}
 

 

转载于:https://www.cnblogs.com/hate13/p/4109583.html

相关文章:

  • SQL死锁-阻塞
  • c++ mysql connector 学习汇总
  • 2014/11/21
  • Day2----subMeau
  • reaver使用相关
  • Linux Kernel Synchronization Mutual Exclusion、Linux Kernel Lock Mechanism Summarize
  • ASP.NET静态页生成
  • 清除浮动的方法有哪些?
  • C语言 要求用户录入5个数字,用函数来完成升序排序输出!
  • js词法分析2
  • [LeetCode] Merge Two Sorted Lists
  • telnet测试端口号
  • 已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭。
  • DateTime.ToString格式化日期,使用DateDiff方法获取日期时间的间隔数
  • EasyMock的使用
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • Angular2开发踩坑系列-生产环境编译
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • Debian下无root权限使用Python访问Oracle
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • Java 内存分配及垃圾回收机制初探
  • JavaScript类型识别
  • Linux下的乱码问题
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • Swoft 源码剖析 - 代码自动更新机制
  • 使用API自动生成工具优化前端工作流
  • 小程序开发之路(一)
  • 阿里云ACE认证学习知识点梳理
  • (1)SpringCloud 整合Python
  • (笔试题)合法字符串
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .net通用权限框架B/S (三)--MODEL层(2)
  • .NET正则基础之——正则委托
  • @property括号内属性讲解
  • @RequestBody与@ModelAttribute
  • @RestController注解的使用
  • []使用 Tortoise SVN 创建 Externals 外部引用目录
  • [2018][note]用于超快偏振开关和动态光束分裂的all-optical有源THz超表——
  • [BZOJ1089][SCOI2003]严格n元树(递推+高精度)
  • [BZOJ5250][九省联考2018]秘密袭击(DP)
  • [C# 网络编程系列]专题六:UDP编程
  • [emuch.net]MatrixComputations(7-12)
  • [LeetCode 687]最长同值路径
  • [PY3]——logging
  • [SDOI 2009]HH去散步
  • [SQL]mysql密码读取
  • [计算机通信网络]网桥与其作用机理举例详解
  • [书目20130316]jQuery UI开发指南
  • [网络安全提高篇] 一一六.恶意代码同源分析及BinDiff软件基础用法
  • [译]Kinect for Windows SDK开发入门(三):基础知识 下
  • [原]浅谈几种服务器端模型——反应堆的设计
  • [转] C#代码检查工具:stylecop