当前位置:网站首页>[exercise-3] (UVA 442) matrix chain multiplication
[exercise-3] (UVA 442) matrix chain multiplication
2022-07-06 15:56:00 【Flame car】
Translate directly :
Input n Dimensions of matrices and expressions of matrix chain multiplication , Output the number of multiplications . If multiplication doesn't work , The output error. Jiading A yes mn Matrix ,B yes np Matrix , that AB yes mp Matrix , The number of multiplications is mn*p. If A The number of columns is not equal to B The number of rows , Then multiplication cannot be performed .
for example ,A yes 50 * 10 Of ,B yes 10 * 20 Of ,C yes 20 * 5 Of , be (A(BC)) Is multiplied by 10 * 20 * 5(BC The number of multiplications ) + 50 *10 * 5((A(BC)) The number of multiplications ) = 3500.
AC Code :
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e5+5;
const ll mod = 1e9+7;
struct node{
int x;
int y;
}a[26];
int main()
{
int n;
char ch;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>ch;
cin>>a[ch-'A'].x;
cin>>a[ch-'A'].y;
}
string s;
while(cin>>s)
{
stack<node> st;
int f=1,ans=0;
int len = s.size();
if(len == 0 )
{
cout<<0<<endl;
continue;
}
for(int i=0;i<len;i++)
{
if(s[i]>='A' && s[i]<='Z')
st.push(a[s[i]-'A']);
else if(s[i]==')')
{
node x2 = st.top();st.pop();
node x1 = st.top();st.pop();
if(x1.y != x2.x){
f = 0;
break;
}
ans+=x1.x*x1.y*x2.y;
node tmp;
tmp.x=x1.x,tmp.y=x2.y;
st.push(tmp);
}
}
if(f)
cout<<ans<<endl;
else
cout<<"error"<<endl;
}
}
Ideas :
① Use a structure to store two values of each letter .
② Stack the structure
③ encounter ‘(’ Ignore , encounter ’)' Operate once when .
④ Content of operation : Take out the first two elements of the stack for matrix chain multiplication ( Note that the first one is the back one ,AB Perform matrix chain multiplication , Stack pops up first B Pop up after A), Put the newly obtained element on the stack .
⑤ If matrix chain multiplication cannot be performed, mark and exit .
I didn't understand at first , Want to put characters char Put it in the stack , But in this way Put the newly obtained elements on the stack It's very troublesome , If you put the structure directly into the stack, it can be easily implemented .
Here you can write a Constructors , Directly initialize the definition structure (C++ I learned it in school ), In that case, you can define one less tmp Structure .
边栏推荐
- Learning records: serial communication and solutions to errors encountered
- 1010 things that college students majoring in it must do before graduation
- 通俗地理解什么是编程语言
- 0 - 1 problème de sac à dos (1)
- 基于web的照片数码冲印网站
- Perform general operations on iptables
- Interesting drink
- Information security - threat detection engine - common rule engine base performance comparison
- STM32 learning record: play with keys to control buzzer and led
- Opencv learning log 15 count the number of solder joints and output
猜你喜欢
[analysis of teacher Gao's software needs] collection of exercises and answers for level 20 cloud class
【练习-5】(Uva 839)Not so Mobile(天平)
Web based photo digital printing website
入门C语言基础问答
Learning record: Tim - Basic timer
C语言必背代码大全
Borg Maze (BFS+最小生成树)(解题报告)
STM32学习记录:LED灯闪烁(寄存器版)
D - Function(HDU - 6546)女生赛
7-1 懂的都懂 (20 分)
随机推荐
Gartner:关于零信任网络访问最佳实践的五个建议
Research Report on printed circuit board (PCB) connector industry - market status analysis and development prospect forecast
Information security - security professional name | CVE | rce | POC | Vul | 0day
信息安全-威胁检测-flink广播流BroadcastState双流合并应用在过滤安全日志
【练习-4】(Uva 11988)Broken Keyboard(破损的键盘) ==(链表)
【练习-6】(Uva 725)Division(除法)== 暴力
Cost accounting [13]
渗透测试 ( 7 ) --- 漏洞扫描工具 Nessus
【高老师UML软件建模基础】20级云班课习题答案合集
Determine the Photo Position
E. Breaking the Wall
Web based photo digital printing website
China exterior wall cladding (EWC) market trend report, technical dynamic innovation and market forecast
Learning record: use STM32 external input interrupt
渗透测试 ( 3 ) --- Metasploit Framework ( MSF )
对iptables进行常规操作
MySQL import database error [err] 1273 - unknown collation: 'utf8mb4_ 0900_ ai_ ci’
Learning record: understand systick system timer and write delay function
Research Report on market supply and demand and strategy of China's earth drilling industry
【练习-7】(Uva 10976)Fractions Again?!(分数拆分)