鱼C论坛

 找回密码
 立即注册
楼主: zhangjinxuan

[已解决]每周一练题目征集活动【出题者有鱼币奖励!】

[复制链接]
发表于 2022-11-26 21:41:46 | 显示全部楼层

证明也超级简单(doge
思路也超级简单(doge
水蓝实锤
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-27 11:59:56 | 显示全部楼层
我觉得你不用发在C\C++版块吧
我们每周一练也收录Python 的题目呀 ?
建议发在吹水阁
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-11-27 13:55:57 | 显示全部楼层
高山 发表于 2022-11-27 11:59
我觉得你不用发在C\C++版块吧
我们每周一练也收录Python 的题目呀 ?
建议发在吹水阁

嗯,有道理

@不二如是 ,打扰一下,可以将这个帖子移动到 吹水阁 板块吗?万分感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-27 13:58:56 | 显示全部楼层
zhangjinxuan 发表于 2022-11-27 13:55
嗯,有道理

@不二如是 ,打扰一下,可以将这个帖子移动到 吹水阁 板块吗?万分感谢{:10_254 ...

那个啥,我刚才看到你的好友申请了,结果系统不让我加你
360截图18720122384041.png

评分

参与人数 1荣誉 +5 收起 理由
zhangjinxuan + 5

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-11-27 15:36:16 | 显示全部楼层
Jason茗 发表于 2022-11-27 13:58
那个啥,我刚才看到你的好友申请了,结果系统不让我加你

初级鱼油好像不能加好友
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-11-27 15:36:33 | 显示全部楼层
Jason茗 发表于 2022-11-27 13:58
那个啥,我刚才看到你的好友申请了,结果系统不让我加你

评分助升级
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-27 18:03:55 | 显示全部楼层

太感谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-12-5 09:11:49 | 显示全部楼层
表达式求值
输入一个表达式:(1+2)/3
输出结果:1
虽然题目很好理解
但还是有难度的
提示:先转化成逆波兰,再使用栈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-12-5 09:23:08 | 显示全部楼层
陈尚涵 发表于 2022-12-5 09:11
表达式求值
输入一个表达式:(1+2)/3
输出结果:1

简单啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-12-5 11:03:57 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-12-5 11:06:42 | 显示全部楼层


不使用eval有点难度
你可以试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 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[N];
int c1[N], c2[N], l1[N], l2[N], cor, cand;
#define p 1000000007
int calc(int l, int r) {
        if (l1[r] >= l) {
                if (s[l1[r]] == '+')
                        return (calc(l, l1[r] - 1) + calc(l1[r] + 1, r)) % p;
                else return (calc(l, l1[r] - 1) - calc(l1[r] + 1, r) + p) % p;
        } else if (l2[r] >= l) {
                if (s[l1[r]] == '*')
                        return (1LL * calc(l, l1[r] - 1) * calc(l1[r] + 1, r)) % p;
                else return (calc(l, l1[r] - 1) / calc(l1[r] + 1, r));
        }
        if (s[l] == '(' && s[r] == ')') return calc(l + 1, r - 1);
        int res = 0;
        for (int i = l; i <= r; ++i)
                res = res * 10 + s[i] - '0';
        return res % p;
}

int main() {
        scanf("%s", s + 1);
        n = strlen(s + 1);
        for (int i = 1; i <= n; ++i) {
                if (s[i] == '(') ++x;
                else if (s[i] == ')') --x;
                
                if (s[i] == '*' || s[i] == '/') c2[x] = i;
                else if (s[i] == '+' || s[i] == '-') c1[x] = i;
                l1[i] = c1[x];
                l2[i] = c2[x];
        }
        int ans = calc(1, n);
        printf("%d\n", ans);
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-12-5 11:20:08 | 显示全部楼层
搞点鱼币
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-12-5 11:23:09 | 显示全部楼层

莫油了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-1-1 11:54:39 | 显示全部楼层
本帖最后由 tommyyu 于 2023-1-2 15:25 编辑

我刚刚又想到一个题目,过来投稿一下 @zhangjinxuan

题目
编写一个程序,将输入的一个分段函数(每段皆为一次函数,且该分段函数连续),表示成多个绝对值和一个一次二项式(可有可无)的和或差。

输入输出格式
输入格式:
第一行有一个整数N,,表示分界点的个数。
第二行到第N+2行输入函数各段的表达式,详见输入输出样例

输出格式:
一行,将以上的分段函数表示为多个绝对值得和或差。

输入输出样例:
输入样例:
x<=0,-1/2x
x>=0,3x
输出样例:
7/4|x|+5/4x
(这道题建议再补几个测试点,楼主自己算吧,我被我造的一个样例折磨了半天,也没算出来

数据范围
n<=100.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-1-1 12:51:38 | 显示全部楼层
tommyyu 发表于 2023-1-1 11:54
我刚刚又想到一个题目,过来投稿一下 @zhangjinxuan

题目

这,我有点看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-1-1 12:52:28 | 显示全部楼层
zhangjinxuan 发表于 2023-1-1 12:51
这,我有点看不懂

应该是我表述的不太清晰
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-1-2 13:37:19 | 显示全部楼层
tommyyu 发表于 2023-1-1 11:54
我刚刚又想到一个题目,过来投稿一下 @zhangjinxuan

题目

行的,我找时间推出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-1-2 15:15:38 From FishC Mobile | 显示全部楼层
tommyyu 发表于 2023-1-1 11:54
我刚刚又想到一个题目,过来投稿一下 @zhangjinxuan

题目

好像有点意思,本质上是解线性方程组?
另外样例太少了,同时有上下界的分段区间怎么表示?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-1-2 15:23:47 | 显示全部楼层
dolly_yos2 发表于 2023-1-2 15:15
好像有点意思,本质上是解线性方程组?
另外样例太少了,同时有上下界的分段区间怎么表示?

有上下界的就用
a<=x<=b
的形式表示
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-7 21:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表