LA 6892 The Safe Secret(矩阵连乘)
https://vjudge.net/problem/UVALive-6892
题意:

给出n个数字和n个符号(+,-,*和?),?可以为+,-,*中任意一个,现在要计算出这个式子的最小值和最大值,并且运算顺序随意,也就是可以随便加括号。之后进行旋转之后继续计算。比如一开始给的是1 ? 5 + 0 ? -2 - -3 *,那么旋转之后就是上面的第二行了,这样一共需要旋转n次,也就是说要计算n次。
思路:
运算顺序随意,有没有感觉很像矩阵连乘?
这道题目就是升级版的矩阵连乘吧。
因为是可以旋转的,那么就在后面再加一行变成线性。
之后就和矩阵连乘的做法差不多了,用两个数组来保存,一个保存最大值,另一个最小值即可。
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<sstream>
#include<vector>
#include<stack>
#include<queue>
#include<cmath>
#include<map>
using namespace std;
typedef long long ll;
typedef pair<int,long long> pll;
const ll INF = 1LL<<;
const int maxn=+; int n;
ll f[maxn][maxn];
ll g[maxn][maxn];
char op[maxn]; int main()
{
//freopen("input.txt","r",stdin);
while(~scanf("%d",&n))
{
for(int i=;i<=*n;i++)
for(int j=;j<=*n;j++)
{
f[i][j]=-INF;
g[i][j]=INF;
} for(int i=;i<=n;i++)
{
scanf("%lld %c",&f[i][i],&op[i]);
f[n+i][n+i]=f[i][i];
g[i][i]=g[n+i][n+i]=f[i][i];
op[n+i]=op[i];
} for(int r=;r<=n;r++)
{
for(int i=;i<=*n-r+;i++)
{
int j=i+r-;
for(int k=i;k<j;k++)
{
if(op[k]=='+'||op[k]=='?')
{
f[i][j]=max(f[i][j],f[i][k]+f[k+][j]);
g[i][j]=min(g[i][j],g[i][k]+g[k+][j]);
} if(op[k]=='-'||op[k]=='?')
{
f[i][j]=max(f[i][j],f[i][k]-g[k+][j]);
g[i][j]=min(g[i][j],g[i][k]-f[k+][j]);
} if(op[k]=='*'||op[k]=='?')
{
f[i][j]=max(f[i][j],f[i][k]*f[k+][j]);
f[i][j]=max(f[i][j],g[i][k]*g[k+][j]);
f[i][j]=max(f[i][j],f[i][k]*g[k+][j]);
f[i][j]=max(f[i][j],g[i][k]*f[k+][j]); g[i][j]=min(g[i][j],f[i][k]*f[k+][j]);
g[i][j]=min(g[i][j],g[i][k]*g[k+][j]);
g[i][j]=min(g[i][j],f[i][k]*g[k+][j]);
g[i][j]=min(g[i][j],g[i][k]*f[k+][j]);
}
}
}
}
for(int i=;i<=n;i++)
{
printf("%lld%lld",abs(g[i][i+n-]),abs(f[i][i+n-]));
}
printf("\n");
}
return ;
}
LA 6892 The Safe Secret(矩阵连乘)的更多相关文章
- Unity 捏脸整理及基于骨骼的捏脸功能实现
目前实现捏脸功能的方式主要有两种.一个是Blendshape(融合变形),一个是基于骨骼驱动的方式,通过修改骨骼矩阵(bindpose)来影响SkinMesh.这两种方式的最终原理都是在shader ...
- 用Python调用阿里云的短信接口
#!/usr/bin/env python# -*- coding:utf-8 -*-# Author:Frank import uuidimport datetimeimport hmacimpor ...
- 骨骼动画的原理及在Unity中的使用
制作骨骼动画 我们看看这几步操作后,我们得到了那些数据: 1.每个皮肤顶点的初始世界坐标. 2.每个骨骼关节顶点的初始世界坐标. 3.每个顶点被骨骼顶点的影响信息. 4.骨骼如何移动. 骨骼动画原理 ...
- python3调用阿里云短信服务
#!/usr/bin/env python#-*- coding:utf-8 -*-#Author:lzd import uuidimport datetimeimport hmacimport ba ...
- LA 3704 (矩阵快速幂 循环矩阵) Cellular Automaton
将这n个格子看做一个向量,每次操作都是一次线性组合,即vn+1 = Avn,所求答案为Akv0 A是一个n*n的矩阵,比如当n=5,d=1的时候: 不难发现,A是个循环矩阵,也就是将某一行所有元素统一 ...
- LA 6893 矩阵HASH (模板)
#include<stdio.h> #include<string.h> typedef unsigned long long ULL; ; ; int test,n,m,x, ...
- LA 6893 The Big Painting(矩阵Hash)
https://vjudge.net/problem/UVALive-6893 题意: 给出一个小矩阵和大矩阵,在大矩阵中能找到相同的小矩阵. 思路: 矩阵Hash,先对小矩阵计算出它的Hash值,然 ...
- UVA - 12183 :Top Secret(N^2的循环矩阵乘法)
pro:N个数排成一圈.一次操作为,每个位置的数+=L*左+R*右,保留x为整数. 问S轮操作后每个位置的值. N<=1000,S<=2^30,x<=9 . sol:不难想到矩阵乘法 ...
- LA 3704细胞自动机——循环矩阵&&矩阵快速幂
题目 一个细胞自动机包含 $n$ 个格子,每个格子的取值为 $0 \sim m-1$.给定距离 $d$,则每次操作是将每个格子的值变为到它的距离不超过 $d$ 的所有格子的在操作之前的值的和除以 $m ...
随机推荐
- Visual Studio 2015 Enterprise - 企业版 - 简体中文
文件名称 文件大小 百度网盘下载 微软官方下载 Visual Studio 2015 Enterprise - 企业版 - 简体中文 3.89GB http://pan.baidu.com/s/1bn ...
- Linux常用命令大全(转载)
最近都在和Linux打交道,这方面基础比较薄弱的我只好买了本鸟哥的书看看,感觉还不错.我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因, ...
- nginx中文乱码问题
搭建nginx成功后,在页面中写入了中文字幕,结果发现乱码 于是修改了nginx配置文件nginx.conf:如下 server { listen ; server_name example.com; ...
- Django之views.py详解
http请求中产生的两个核心对象: http请求:HttpRequesthttp响应:HttpResponse 所在位置:from django.http import HttpRequest,Htt ...
- Python开发【面试】:刷题
面试题 1.到底什么是Python? Python是一种解释型语言.这就是说,与C语言和C的衍生语言不同,Python代码在运行之前不需要编译(一边编写一边执行,先把代码转化成字节码,然后python ...
- 解决Eclipse中新建jsp文件总是以ISO8859-1编码问题
eclipse --> window -->Preferences-->web-->jsp-->utf-8
- mysql备份的4种方式
mysql备份的4种方式 转载自:https://www.cnblogs.com/SQL888/p/5751631.html 总结: 备份方法 备份速度 恢复速度 便捷性 功能 一般用于 cp 快 快 ...
- eval(PHP 4, PHP 5)
eval — 把字符串作为PHP代码执行 说明 mixed eval ( string $code_str ) 把字符串 code_str 作为PHP代码执行. 除了其他,该函数能够执行储存于数据库文 ...
- 在python中使用c语言编写的库
本文使用的 cffi 官网网址:https://cffi.readthedocs.io/en/latest/overview.html cffi 自己本身使用了pycparser 这个库,是用pyth ...
- PAT 1137 Final Grading[一般][排序]
1137 Final Grading(25 分) For a student taking the online course "Data Structures" on China ...