自家学校OJ网站上的题目,很玄学,不知道哪里出的问题。

这个OJ链接的题目没有问题的。

https://www.luogu.org/problemnew/show/P1981

#include <iostream>
#include <string>
#include <math.h>
#include <stack>

using namespace std;

bool compare(char now, char stack) {
    switch (now) {
    case '+':
        if (stack == '#')
            return false;
        return true;
    case '*':
        if (stack == '+' || stack == '-' || stack == '#')
            return false;
        return true;
        break;
    }
}

int calc(int a, char c, int b) {
    switch (c)
    {
    case '+':
         + b % ) % ;
    case '*':
         * b % ) % ;
    default:
        break;
    }
}
int main() {
    ;
    string s;
    stack<int>num;
    stack<char>symbol;
    getline(cin, s);
    //s.append(, '#');
    symbol.push('#');
    while (i < s.length()) {
        ') {
            string Str_temp;
            Int_temp = ;
            ') {
                Int_temp = Int_temp *  + (s[i] - );
                i++;
            }
            num.push(Int_temp);
            Str_temp.clear();
        }
        else {
            if (compare(s[i], symbol.top())) {
                int t1 = num.top(); num.pop();
                int t2 = num.top(); num.pop();
                num.push(calc(t1, symbol.top(), t2));
                symbol.pop();
            }
            //if (s[i] != '#')
                symbol.push(s[i]);
            i++;
        }
    }
    while (symbol.top() != '#') {
        int t1 = num.top(); num.pop();
        int t2 = num.top(); num.pop();
        num.push(calc(t1, symbol.top(), t2));
        symbol.pop();
    }
    cout << num.top() %  << endl;
    ;
}

题目有很简单的做法,我想复杂了,但思路也是没有错的。交了不过,因为从校园网上Dlowand了测试数据对自己特别自信 ,发现测试数据特别 特别长,用控制台一次输入上限是4095个字符,再往后键盘就按不动了,后面的数据理所当然就没输入进去,我也重新用JAVA写了一遍,也证明了我的算法是对的。

然后,我就果断 学校的垃圾OJ网站 坑骗无知儿童 ,上网找了一下:https://blog.csdn.net/u014542643/article/details/78435113 ,交了发现AC了。

我对比了一下,可能让我的交不过的差别就是,我在字符串最后append 一个 '#' ,仔细想了下,确实加了是多余的,我把'#'去掉,交了也还真就过了,我不知道是什么原理,我想可能和缓冲区有关,也许是玄学吧。

坑之OJ-玄学、不可抗力的更多相关文章

  1. [Swust OJ 649]--NBA Finals(dp,后台略(hen)坑)

    题目链接:http://acm.swust.edu.cn/problem/649/ Time limit(ms): 1000 Memory limit(kb): 65535 Consider two ...

  2. 【学习笔记】OI玄学道—代码坑点

    [学习笔记]\(OI\) 玄学道-代码坑点 [目录] [逻辑运算符的短路运算] [\(cmath\)里的贝塞尔函数] 一:[逻辑运算符的短路运算] [运算规则] && 和 || 属于逻 ...

  3. [Swust OJ 234]--IrreducibleNumber(题意太坑)

    题目链接:http://acm.swust.edu.cn/problem/0234/ Time limit(ms): 1000 Memory limit(kb): 65535   Descriptio ...

  4. oj教程--坑

    1.OJ判断是只看输出结果的. 2.纯字符串用puts()输出. 3.有很多数学题是有规律的,直接推公式或用递归.循环. 4.擅用三目运算符 5.将乘法转换成加法减少时间 6.空间换时间 7.数组越界

  5. NOIp 2006 作业调度方案 Label:坑 模拟(tyvj你不给我ac,我就把名字献给附中oj)

    福建师大附中链接:http://218.5.5.242:9018/JudgeOnline/problem.php?id=1211 [问题描述] 我们现在要利用m台机器加工n个工件,每个工件都有m道工序 ...

  6. 做OJ项目时遇到的坑

    1.js代码写在Dom加载前,导致highcharts在ie8能够显示,而ie高版本和其他浏览器不能显示 我的理解:由于IE8和其他浏览器的js解析机制不同,ie8是在等dom全部加载完才开始执行js ...

  7. 【填坑向】bzoj2038小Z的袜子 莫队

    学莫队必做题,,,但是懒得写.今天来填个坑 莫队水题 莫队实际上就是按一个玄学顺序来离线计算询问,保证复杂度只会多一个n1/2,感觉是玄学(离线算法都很玄学) 易错点:要开long long(卡我半天 ...

  8. OJ生成器(一)制作Online Judge前的准备和策划

    我这校区新的微机老师斗志昂扬,准备让我们这学校萎靡的信息技术竞赛重振雄风.然后有一次我半开玩笑地说建一个自己的OJ吧,老师也就鼓励我去做了. 开什么玩笑……!我可是马上要参加NOIP的人! 于是老师说 ...

  9. CryptoJS遇到的小坑

    CryptoJs是前端加密用的,具体介绍:http://code.google.com/p/crypto-js/ 对应国内免费CDN 服务:http://www.bootcdn.cn/crypto-j ...

随机推荐

  1. [javaSE] 集合工具类(Collections-sort)

    java为我们提供了一个集合的工具类,方便我们对集合进行操作,里面的方法都是静态方法. Collections.sort()方法,参数:List<T>集合对象,这个对象带着泛型,是为了保证 ...

  2. CentOS-Linux系统下安装Tomcat

    步骤1:解压Tomcat 命令: unzip apache-tomcat-8.5.20.zip 步骤2:将tomcat 移动到“/usr/local/src/java/tomcat8.5”下并重命名 ...

  3. spring boot包扫描不到controller层

    启动类代码 package com.maven.demo; import org.mybatis.spring.annotation.MapperScan; import org.springfram ...

  4. [COCI2006-2007#1] Bond

    状压DP \(dp[i]\)表示当前选人状态为\(i\)且选择了前\(i.count()\)个物品时最大的概率 #include"cstdio" #include"cst ...

  5. word-wrap,word-break,white-space

    这3个属性都与换行有关,看看有啥区别. 语法介绍 [word-wrap] 定义:属性允许长单词或 URL 地址换行到下一行: 语法: word-wrap: normal|break-word; bre ...

  6. [转]web使用Quartz.NET实现作业调度

    转自 https://www.cnblogs.com/best/p/7658573.html 一.Quartz.NET介绍 Quartz.NET是一个强大.开源.轻量的作业调度框架,是 OpenSym ...

  7. react打包开发文件的步骤(上传给线上环境)

    cd进入ReleaseProject目录,然后运行npm start,系统会自动在public目录下面完成打包工作,然后我再把  public文件下压缩位public.rar上传即可:(public文 ...

  8. 域模型中的实体类分为四种类型:VO、DTO、DO、PO

    经常会接触到VO,DO,DTO的概念,本文从领域建模中的实体划分和项目中的实际应用情况两个角度,对这几个概念进行简析. 得出的主要结论是:在项目应用中,VO对应于页面上需要显示的数据(表单),DO对应 ...

  9. Java学习笔记(2)----散列集/线性表/队列/集合/图(Set,List,Queue,Collection,Map)

    1. Java集合框架中的所有实例类都实现了Cloneable和Seriablizable接口.所以,它们的实例都是可复制和可序列化的. 2. 规则集存储的是不重复的元素.若要在集合中存储重复的元素, ...

  10. NuGet 2.0 (.NET软件包管理器) 发布了-现在升级吧

    原文:https://blogs.msdn.microsoft.com/scott_hanselman/2012/07/10/nuget-2-0-net/ [原文发表地址]  NuGet 2.0 (. ...