• [CSP-S模拟测试]:表达式密码(模拟)


    题目传送门(内部题87)


    输入格式

    从文件$expression.in$中读入数据。
    输入一行,一个字符串$S$,表示原表达式,保证为合法表达式


    输出格式

    输出到文件$expression.out$中。
    一个字符串,表示使表达式结果最大的符号添加方案。


    题解

    样例输入1:

    10+20-30

    样例输出1:

    10+20-3+0

    样例输入2:

    -3-4-1

    样例输出2:

    -3-4-1

    样例输入3:

    -200+351-1600

    样例输出3:

    -2+0+0+351-1+600


    数据范围与提示

    设字符串长度为$|S|$
    对于$30\%$的数据,满足$|S|leqslant 20$
    对于$50\%$的数据,满足表达式中的整数在$32$位整数$int$范围内
    对于$100\%$的数据,满足$|S|leqslant 100,000$


    题解

    模拟不多说,但是想谴责出题人……

    明明$+0$和$-0$是一样的,为什么不写$SPJ$?

    下发的大样例最后一个字符是$'+'$,逗我$KX$呢?

    时间复杂度:$Theta(|S|)$。

    期望得分:$100$分。

    实际得分:$100$分。


    代码时刻

    #include<bits/stdc++.h>
    using namespace std;
    int n;
    char ch[100001];
    int main()
    {
    	scanf("%s",ch+1);
    	n=strlen(ch+1);
    	for(int i=1;i<=n;i++)
    	{
    		putchar(ch[i]);
    		if(ch[i]=='-')
    		{
    			putchar(ch[i+1]);
    			if(i+1==n)return 0;
    			for(int j=i+2;j<=n;j++)
    			{
    				if(ch[j]=='+'||ch[j]=='-')
    				{
    					i=j-1;
    					break;
    				}
    				putchar('+');
    				if(ch[j]!='0')
    				{
    					i=j-1;
    					break;
    				}
    				putchar(ch[j]);
    				if(j==n)return 0;
    			}
    		}
    	}
    	return 0;
    }
    

    rp++

  • 相关阅读:
    Perl 杂记
    Block abstraction view(Create & Reference)
    sed & awk
    multi-voltage design apr
    APR Recipe
    IN2REG group 的时序分析
    关于 clock tree
    ICC Stage Flow
    ocv & derate & crpr
    clock gating check
  • 原文地址:https://www.cnblogs.com/wzc521/p/11737337.html
Copyright © 2020-2023  润新知