坑之OJ-玄学、不可抗力
自家学校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-玄学、不可抗力的更多相关文章
- [Swust OJ 649]--NBA Finals(dp,后台略(hen)坑)
题目链接:http://acm.swust.edu.cn/problem/649/ Time limit(ms): 1000 Memory limit(kb): 65535 Consider two ...
- 【学习笔记】OI玄学道—代码坑点
[学习笔记]\(OI\) 玄学道-代码坑点 [目录] [逻辑运算符的短路运算] [\(cmath\)里的贝塞尔函数] 一:[逻辑运算符的短路运算] [运算规则] && 和 || 属于逻 ...
- [Swust OJ 234]--IrreducibleNumber(题意太坑)
题目链接:http://acm.swust.edu.cn/problem/0234/ Time limit(ms): 1000 Memory limit(kb): 65535 Descriptio ...
- oj教程--坑
1.OJ判断是只看输出结果的. 2.纯字符串用puts()输出. 3.有很多数学题是有规律的,直接推公式或用递归.循环. 4.擅用三目运算符 5.将乘法转换成加法减少时间 6.空间换时间 7.数组越界
- NOIp 2006 作业调度方案 Label:坑 模拟(tyvj你不给我ac,我就把名字献给附中oj)
福建师大附中链接:http://218.5.5.242:9018/JudgeOnline/problem.php?id=1211 [问题描述] 我们现在要利用m台机器加工n个工件,每个工件都有m道工序 ...
- 做OJ项目时遇到的坑
1.js代码写在Dom加载前,导致highcharts在ie8能够显示,而ie高版本和其他浏览器不能显示 我的理解:由于IE8和其他浏览器的js解析机制不同,ie8是在等dom全部加载完才开始执行js ...
- 【填坑向】bzoj2038小Z的袜子 莫队
学莫队必做题,,,但是懒得写.今天来填个坑 莫队水题 莫队实际上就是按一个玄学顺序来离线计算询问,保证复杂度只会多一个n1/2,感觉是玄学(离线算法都很玄学) 易错点:要开long long(卡我半天 ...
- OJ生成器(一)制作Online Judge前的准备和策划
我这校区新的微机老师斗志昂扬,准备让我们这学校萎靡的信息技术竞赛重振雄风.然后有一次我半开玩笑地说建一个自己的OJ吧,老师也就鼓励我去做了. 开什么玩笑……!我可是马上要参加NOIP的人! 于是老师说 ...
- CryptoJS遇到的小坑
CryptoJs是前端加密用的,具体介绍:http://code.google.com/p/crypto-js/ 对应国内免费CDN 服务:http://www.bootcdn.cn/crypto-j ...
随机推荐
- html制作chm格式开源文档
在主界面点击生成器,找到网页所在的文件夹. 然后用编译,还是找到网页文件夹.根据需要设置.TOC 那一项是目录,请根据需要修改. 特别要注意的是,预设那里,点击那个配置图标,会打开如下图的预设编辑器. ...
- 撩课-每天刷Web面试题(前10天汇总)-Day12
一.算法题部分 1. 如何获取浏览器URL中查询字符串中的参数 function getParamsWithUrl(url) { var args = url.split('?'); ] === ur ...
- Windbg 脚本命令简介 二, Windbg command
Windbg 脚本命令简介 二, Windbg script command $<, $><, $$<, $$><, $$>a< (Run Scri ...
- C++ STL:stack和queue
http://blog.csdn.net/wallwind/article/details/6858634 http://blog.csdn.net/chao_xun/article/details/ ...
- composer gitlab 搭建私包
一.建立私包git 1.执行composer init 根据提示生成composer.json 2.编辑composer.json 目录格式 { "name": "iar ...
- libevent学习笔记 —— 第一个程序:计时器
用libevent写个定时器其实步骤不多: 1.初始化libevent 2.设置事件 3.添加事件 4.进入循环 由于定时事件触发之后,默认自动删除,所以如果要一直计时,则要在回调函数中重新添加定时事 ...
- 《JavaWeb从入门到改行》过滤器学习笔记
>"; display: block; height: 0; clear: both; visibility: hidden; } #sitemap, #sitemap ul{disp ...
- csharp: Microsoft SqlHelper
from: Microsoft Data Access Application Block for .NET https://www.microsoft.com/en-us/download/con ...
- safari
http://www.zhangxinxu.com/wordpress/2014/10/mobilebone-js-mobile-web-app-core/ http://rawgit.com/zha ...
- Centos7 下安装Apache2 + MySQL + PHP7
Apache 1.安装Apache yum install httpd 2.设置服务器开机自动启动Apache systemctl enable httpd.service 若要验证是否自动启动可在重 ...