xiaosi4081
发表于 2022-11-26 21:41:46
zhangjinxuan 发表于 2022-11-26 14:00
证明也超级简单(doge
思路也超级简单(doge
水蓝实锤
高山
发表于 2022-11-27 11:59:56
我觉得你不用发在C\C++版块吧
我们每周一练也收录Python 的题目呀 ?
建议发在吹水阁
zhangjinxuan
发表于 2022-11-27 13:55:57
高山 发表于 2022-11-27 11:59
我觉得你不用发在C\C++版块吧
我们每周一练也收录Python 的题目呀 ?
建议发在吹水阁
嗯,有道理{:10_256:}
@不二如是 ,打扰一下,可以将这个帖子移动到 吹水阁 板块吗?万分感谢{:10_254:}
Jason茗
发表于 2022-11-27 13:58:56
zhangjinxuan 发表于 2022-11-27 13:55
嗯,有道理
@不二如是 ,打扰一下,可以将这个帖子移动到 吹水阁 板块吗?万分感谢{:10_254 ...
那个啥,我刚才看到你的好友申请了,结果系统不让我加你{:10_266:}
zhangjinxuan
发表于 2022-11-27 15:36:16
Jason茗 发表于 2022-11-27 13:58
那个啥,我刚才看到你的好友申请了,结果系统不让我加你
初级鱼油好像不能加好友{:10_266:}
zhangjinxuan
发表于 2022-11-27 15:36:33
Jason茗 发表于 2022-11-27 13:58
那个啥,我刚才看到你的好友申请了,结果系统不让我加你
评分助升级{:10_282:}
Jason茗
发表于 2022-11-27 18:03:55
zhangjinxuan 发表于 2022-11-27 15:36
评分助升级
太感谢了{:10_254:}
陈尚涵
发表于 2022-12-5 09:11:49
表达式求值
输入一个表达式:(1+2)/3
输出结果:1
虽然题目很好理解
但还是有难度的
提示:先转化成逆波兰,再使用栈
zhangjinxuan
发表于 2022-12-5 09:23:08
陈尚涵 发表于 2022-12-5 09:11
表达式求值
输入一个表达式:(1+2)/3
输出结果:1
简单啊
陈尚涵
发表于 2022-12-5 11:03:57
zhangjinxuan 发表于 2022-12-5 09:23
简单啊
嗯
陈尚涵
发表于 2022-12-5 11:06:42
zhangjinxuan 发表于 2022-12-5 09:23
简单啊
不使用eval有点难度
你可以试试
zhangjinxuan
发表于 2022-12-5 11:10:33
陈尚涵 发表于 2022-12-5 11:06
不使用eval有点难度
你可以试试
老师讲了就很简单,不需要用什么栈:
#include <bits/stdc++.h>
using namespace std;
const int N = 1000100;
int x, n;
char s;
int c1, c2, l1, l2, cor, cand;
#define p 1000000007
int calc(int l, int r) {
if (l1 >= l) {
if (s] == '+')
return (calc(l, l1 - 1) + calc(l1 + 1, r)) % p;
else return (calc(l, l1 - 1) - calc(l1 + 1, r) + p) % p;
} else if (l2 >= l) {
if (s] == '*')
return (1LL * calc(l, l1 - 1) * calc(l1 + 1, r)) % p;
else return (calc(l, l1 - 1) / calc(l1 + 1, r));
}
if (s == '(' && s == ')') return calc(l + 1, r - 1);
int res = 0;
for (int i = l; i <= r; ++i)
res = res * 10 + s - '0';
return res % p;
}
int main() {
scanf("%s", s + 1);
n = strlen(s + 1);
for (int i = 1; i <= n; ++i) {
if (s == '(') ++x;
else if (s == ')') --x;
if (s == '*' || s == '/') c2 = i;
else if (s == '+' || s == '-') c1 = i;
l1 = c1;
l2 = c2;
}
int ans = calc(1, n);
printf("%d\n", ans);
return 0;
}
wangyanren
发表于 2022-12-5 11:20:08
搞点鱼币
zhangjinxuan
发表于 2022-12-5 11:23:09
wangyanren 发表于 2022-12-5 11:20
搞点鱼币
莫油了!
tommyyu
发表于 2023-1-1 11:54:39
本帖最后由 tommyyu 于 2023-1-2 15:25 编辑
我刚刚又想到一个题目,过来投稿一下{:10_256:} @zhangjinxuan
题目
编写一个程序,将输入的一个分段函数(每段皆为一次函数,且该分段函数连续),表示成多个绝对值和一个一次二项式(可有可无)的和或差。
输入输出格式
输入格式:
第一行有一个整数N,,表示分界点的个数。
第二行到第N+2行输入函数各段的表达式,详见输入输出样例。
输出格式:
一行,将以上的分段函数表示为多个绝对值得和或差。
输入输出样例:
输入样例:x<=0,-1/2x
x>=0,3x
输出样例:7/4|x|+5/4x(这道题建议再补几个测试点,楼主自己算吧,我被我造的一个样例折磨了半天,也没算出来{:10_282:} )
数据范围
n<=100.
zhangjinxuan
发表于 2023-1-1 12:51:38
tommyyu 发表于 2023-1-1 11:54
我刚刚又想到一个题目,过来投稿一下 @zhangjinxuan
题目
这,我有点看不懂{:10_257:}
tommyyu
发表于 2023-1-1 12:52:28
zhangjinxuan 发表于 2023-1-1 12:51
这,我有点看不懂
{:10_282:}{:10_282:}{:10_282:}应该是我表述的不太清晰
高山
发表于 2023-1-2 13:37:19
tommyyu 发表于 2023-1-1 11:54
我刚刚又想到一个题目,过来投稿一下 @zhangjinxuan
题目
行的,我找时间推出
dolly_yos2
发表于 2023-1-2 15:15:38
tommyyu 发表于 2023-1-1 11:54
我刚刚又想到一个题目,过来投稿一下 @zhangjinxuan
题目
好像有点意思,本质上是解线性方程组?
另外样例太少了,同时有上下界的分段区间怎么表示?
tommyyu
发表于 2023-1-2 15:23:47
dolly_yos2 发表于 2023-1-2 15:15
好像有点意思,本质上是解线性方程组?
另外样例太少了,同时有上下界的分段区间怎么表示?
{:10_282:}有上下界的就用a<=x<=b的形式表示