蓝桥杯 - C++ calculation

简介: 蓝桥杯 - C++ calculation

题目链接


题目大意:注意表达式、基本式的形式限制了很多,所以并不是很难。


解题思路:初始 a++ 、++a 的情况算一波,然后系数从小到大排序,因为 a 是逐渐递增+1的,然后保证 a 是从 1、2、3... 开始算的。


1

-5*a++-3*++a+a++

~


-3*++a+a+++5*a++


原始:


a0: 2 + 2 + 3


拆分:

a1: 1 + 0 + 0


a2: 1 + 2 + 3



AC 代码

#include<bits/stdc++.h>
#include<cmath>
#define mem(a,b) memset(a,b,sizeof a);
using namespace std;
typedef long long ll;
char s[110000];
int prr[11000];
int main()
{
    int a;
    while(~scanf("%d%s",&a,s))
    {
        int len=strlen(s);
        if(s[0]!='-')
        {
            for(int i=len;i>0;i--)
                s[i]=s[i-1];
            s[0]='+';
            len++;
        }
        int k,p,q=0,sum=0;
        for(int i=0;i<len;i+=3)
        {
            if(s[i++]=='+')
                k=1;
            else
                k=-1;
            p=0;
            while(i<len&&'0'<=s[i]&&s[i]<='9')
                (p*=10)+=s[i++]-'0';
            if(s[i]=='*')
                i++;
            else
                p=1;
            prr[q++]=k*p;
            sum+=(a-(s[i]=='a'))*k*p;
        }
        sort(prr,prr+q);
        for(int i=1;i<=q;i++)
        {
            sum+=i*prr[i-1];
        }
        printf("%d\n",sum);
    }
    return 0;
}
目录
相关文章
|
1月前
|
算法 测试技术 C++
【动态规划算法】蓝桥杯填充问题(C/C++)
【动态规划算法】蓝桥杯填充问题(C/C++)
|
1月前
|
人工智能 算法 BI
第十四届蓝桥杯省赛大学C组(C/C++)三国游戏
第十四届蓝桥杯省赛大学C组(C/C++)三国游戏
|
1月前
|
人工智能 C++
第十四届蓝桥杯省赛大学B组(C/C++)整数删除
第十四届蓝桥杯省赛大学B组(C/C++)整数删除
|
1月前
|
机器学习/深度学习 算法 关系型数据库
第十五届蓝桥杯C++B组省赛
第十五届蓝桥杯C++B组省赛
71 14
|
1月前
|
算法 C++
2022年第十三届蓝桥杯大赛C/C++语言B组省赛题解
2022年第十三届蓝桥杯大赛C/C++语言B组省赛题解
34 5
|
6月前
|
算法 测试技术 C++
小唐开始刷蓝桥(八)2013年第四届C/C++ B组蓝桥杯省赛真题
小唐开始刷蓝桥(八)2013年第四届C/C++ B组蓝桥杯省赛真题
|
6月前
|
算法 C++ 数据格式
小唐开始刷蓝桥(七)2014年第五届C/C++ B组蓝桥杯省赛真题
小唐开始刷蓝桥(七)2014年第五届C/C++ B组蓝桥杯省赛真题
|
6月前
|
算法 C++
小唐开始刷蓝桥(五)2016年第七届C/C++ B组蓝桥杯省赛真题
小唐开始刷蓝桥(五)2016年第七届C/C++ B组蓝桥杯省赛真题
|
6月前
|
算法 C++
小唐开始刷蓝桥(六)2015年第六届C/C++ B组蓝桥杯省赛真题
小唐开始刷蓝桥(六)2015年第六届C/C++ B组蓝桥杯省赛真题
|
6月前
|
数据安全/隐私保护 C++
小唐开始刷蓝桥(九)2012年第三届C/C++ B组蓝桥杯省赛真题
小唐开始刷蓝桥(九)2012年第三届C/C++ B组蓝桥杯省赛真题