Evaluating Simple C Expressions The task in this problem is to evaluate a sequence of simple C expressions, buy you need not know C to solve the problem! Each of the expressions will appear on a line by itself and will contain no more than 110 charac…
 Evaluating Simple C Expressions  The task in this problem is to evaluate a sequence of simple C expressions, buy you need not know C to solve the problem! Each of the expressions will appear on a line by itself and will contain no more than 110 char…
由于没有括号,只有+,-,++,--,优先级简单,所以处理起来很简单. 题目要求计算表达式的值以及涉及到的变量的值. 我这题使用stl的string进行实现,随便进行练手,用string的erase删掉全部空格,然后对++.--进行处理然后删去,最后就只剩简单式子了,简单循环下就出来了. 这里有几个坑点: 1.erase函数删除字符后,后面字符的下标都会发生变化,刚开始使用i++去检查空格,结果删除后会跳掉字符. 2.++.--的后缀处理要注意,我开了两个数组放后缀运算的. 3.输出的变量值是当…
option=com_onlinejudge&Itemid=8&page=show_problem&problem=4342">题目链接:uva 1567 - A simple stone game 题目大意:给定K和N.表示一堆石子有N个.先手第一次能够取1~N-1个石子,取到最后一个石子的人胜利,单词每次操作时,取的石子数不能超过对手上一次取的石子数m的K倍. 问先手能否够必胜.能够输出最小的首次操作. 解题思路:这题想了一天,又是打表找规律.又是推公式的,楞是…
Input Specification Input consists of two parts: a list of matrices and a list of expressions. The first line of the input file contains one integer n (  ), representing the number of matrices in the first part. The next n lines each contain one capi…
题意: 给出一个01串,选一个长度至少为L的连续子串,使得串中数字的平均值最大. 分析: 能把这道题想到用数形结合,用斜率表示平均值,我觉得这个想法太“天马行空”了 首先预处理子串的前缀和sum,如果在坐标系中描出(i, sum[i])这些点的话. 所求的平均值就是两点间的斜率了,具体来说,在连续子串[a, b]中,有sum[b]-sum[a-1]个1,长度为b-a+1,所以平均值为(sum[b]-sum[a-1])/(b-a+1) 所以就把问题转化为:求两点横坐标之差至少为L-1,能得到的最大…
题目链接: https://cn.vjudge.net/problem/UVA-442 /* 问题 输入有括号表示优先级的矩阵链乘式子,计算该式进行的乘法次数之和 解题思路 栈的应用,直接忽视左括号,每次只计算栈顶的两个矩阵会更加方便. */ #include<cstdio> #include<cstring> #include<stack> #include<cctype> using namespace std; struct MAT{ int r,c;…
题目 题目     分析 写了个平淡无奇的栈处理表达式,在WA了5发后发现,我没处理空串,,,,(或者说鲁棒性差?     代码 #include <bits/stdc++.h> using namespace std; bool equal(char a,char b) { if((a=='(' && b==')') || (a=='[' && b==']')) return true; return false; } int main() { int len…
题目: 给出一串表示矩阵相乘的字符串,问这字符串中的矩阵相乘中所有元素相乘的次数. 思路: 遍历字符串遇到字母将其表示的矩阵压入栈中,遇到‘)’就将栈中的两个矩阵弹出来,然后计算这两个矩阵的元素相乘的次数,累加就可以了. PS:注意弹出的矩阵表示的先后顺序. 代码: #include <bits/stdc++.h> #define inf 0x3f3f3f3f #define MAX 1000000000 #define mod 1000000007 #define FRE() freopen…
题意 模拟二进制数字的位运算 思路 手写 位运算函数 要注意几个坑点 一元运算符的优先级 大于 二元 一元运算符 运算的时候 要取消前导0 二元运算符 运算的时候 要将两个数字 数位补齐 输出的时候 也要 注意 要取消前导0 特别要注意 如果输入的算式 只有一个数字 那么要将 这个数字的前导0 取消 再输出 AC代码 #include <cstdio> #include <cstring> #include <ctype.h> #include <cstdlib&…