洛谷 P5238 整数校验器
题目描述
有些时候需要解决这样一类问题:判断一个数 x 是否合法。
x 合法当且仅当其满足如下条件:
- x 格式合法,一个格式合法的整数要么是 0,要么由一个可加可不加的负号,一个 1 到 9 之间的数字,和若干个 0 到 9 之间的数字依次连接而成。
- x 在区间 [l,r] 范围内(即 l≤x≤r)。
你需要实现这样一个校验器,对于给定的 l,r,多次判断 x 是否合法。
输入输出格式
输入格式:
第一行三个整数 l,r,T,表示校验器的校验区间为 [l,r],以及需要校验的 x 的个数。
接下来 T 行,每行一个 x,表示要校验的数,保证 x 长度至少为 1 且仅由 '0'~'9' 及 '-' 构成,且 '-' 只会出现在第一个字符。
输出格式:
输出共 T 行,每行一个整数,表示每个 x 的校验结果。
校验结果规定如下:0 表示 x 合法;1 表示 x 格式不合法;2 表示 x 格式合法且不在 [l,r] 区间内。
输入输出样例
输入样例:
- -
输出样例:
说明
对于 100% 的数据,0≤T≤512,l,r 在 64 位有符号整型范围内(即 −263≤l≤r≤263−1)。
保证输入文件大小不超过 128KB。数据在 linux 下生成,没有 '\r' 字符。
以下为部分特殊限制(互不包含):
- 有 5% 的数据,T=0。
- 有 25% 的数据,保证 x 格式一定合法。
- 有 30% 的数据,保证如果 x 格式合法,那么 x 一定在 64 位有符号整形范围内。
其中有一个不计分的hack测试点,用于考察long long边界数字的判断,如果是100分UnAC的话,那么可能是你没有考虑这一种情况。
解题思路
此题无非就是对每一个输入的数字进行判断,若是有效数字则进行范围判断,全程使用string操作即可
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<sstream>
using namespace std;
int t;
string l,r;
int cmp(string a,string b)
{
#define small 0
#define dengyu 1
#define big 2
]==]!='-')
return small;
]!=]=='-')
return big;
]=='-')
{
if(a.size()>b.size())
return small;
if(a.size()<b.size())
return big;
;i<a.size();i++)
{
if(a[i]>b[i])
return small;
else if(a[i]<b[i])
return big;
}
return dengyu;
}
if(a.size()>b.size())
return big;
if(a.size()<b.size())
return small;
;i<a.size();i++)
{
if(a[i]<b[i])
return small;
else if(a[i]>b[i])
return big;
}
return dengyu;
}
void check(string tmp)
{
]=='-')
{
)
{
]==')
{
printf("1\n");
return;
}
}
else
{
printf("1\n");
return;
}
}
]==)
{
printf("1\n");
return;
}
// printf("yes\n");
// return;
//经过筛选,为有效数字
&& cmp(tmp,r)!=)
printf("0\n");
else
printf("2\n");
return;
}
int main()
{
cin>>l>>r;
scanf("%d",&t);//其实应该都用cin
;i<=t;i++)
{
string tmp;
cin>>tmp;
check(tmp);
}
;
}
洛谷 P5238 整数校验器的更多相关文章
- 洛谷P5238 整数校验器
看到没有边读入边处理的,我来水一发 我们要看一下有那些情况是格式不合法的 单独的负号 -0(后面可以有其他数字) 0 +(后面一些数字) 我们用快速读入的方法 读取字符进行处理 还有可能超出范围的 考 ...
- P5238 整数校验器
题目地址:P5238 整数校验器 显然这道题不算难,细心即可AC 细节见代码中的注释 #include <bits/stdc++.h> #define ll long long using ...
- 洛谷4451 整数的lqp拆分(生成函数)
比较水的一题.居然是一道没看题解就会做的黑题…… 题目链接:洛谷 题目大意:定义一个长度为 $m$ 的正整数序列 $a$ 的价值为 $\prod f_{a_i}$.($f$ 是斐波那契数)对于每一个 ...
- LuoguP5238 整数校验器 题解
Content 给定两个整数 \(l,r\),再给定 \(T\) 个整数,请判断对于每个整数 \(x\),是否满足以下要求: \(x\in[l,r]\). \(x\) 格式合法. 数据范围:\(-2^ ...
- 洛谷 [P2146] 软件包管理器
树剖 将一个软件是否安装,看作是sum数组的0或1,对于每个操作前后sum[1]的变化,就是所求 #include <iostream> #include <cstdio> # ...
- 洛谷P4035 球形空间产生器 [JSOI2008] 高斯消元
正解:高斯消元 解题报告: 链接! 昂开始看到以为是,高斯消元板子题? 开始很容易想到的是,虽然是多维但是可以类比二维三维列出式子嘛 但是高斯消元是只能处理一元问题的啊,,,辣怎么处理呢 对的这就是这 ...
- 洛谷 - P2146 - 软件包管理器 - 重链剖分
https://www.luogu.org/problem/P2146 继续重链剖分. 这里好像很好懂,每次安装软件就区间改值赋值整个路径是1,然后比较前后的sum值变化就可以了.事实上后一次的sum ...
- 【算法学习】【洛谷】树链剖分 & P3384 【模板】树链剖分 P2146 软件包管理器
刚学的好玩算法,AC2题,非常开心. 其实很早就有教过,以前以为很难就没有学,现在发现其实很简单也很有用. 更重要的是我很好调试,两题都是几乎一遍过的. 介绍树链剖分前,先确保已经学会以下基本技巧: ...
- struts_23_xwork校验器列表使用例子
required 必填校验器 <field-validator type="required"> <message>性别不能为空!</message& ...
随机推荐
- srping boot thymeleaf 学习总结 (2) - thymeleaf properties 国际化 mesaage
thymeleaf获取配置properties中的数据与thymeleaf国际化(摘录) 使用thymeleaf提供的国际化 有时候会有直接在模板中获取配置文件properties中的配置信息,比如: ...
- Redis数据结构(四)
存储list: list存储方式采用头和尾插入的方式,这样效率快,如果没有这个插入的数据,redis自己会创建这个数据,如果是中间插入的话,采用list方式效率就会很慢. ArrayList使用数组方 ...
- swift pop实现动感按钮动画
// // MyButton.swift // PopInstall // // Created by su on 15/12/11. // Copyright © 2015年 tian. A ...
- HRBUST1212 乘积最大 2017-03-06 15:47 59人阅读 评论(0) 收藏
乘积最大 今年是国际数学联盟确定的"2000--世界数学年",又恰逢我国著名数学家华罗庚先生诞辰90周年.在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一 ...
- OpenGl中的Nurbs B样条曲面绘制
NURBS 贝塞尔曲线的缺点是当我们增加很多控制点的时候,曲线变得不可控,其连续性会变差差.如果控制点很多(高阶曲线),当我们调整一个控制点的位置,对 整个曲线的影响是很大的.要获得更高级的控制,可以 ...
- StringFormate使用
1常规类型的格式化 1.1显示不同转换符实现不同数据类型到字符串的转换 转换符 说明 示例 %s 字符串类型 “mingrisof” %c 字符类型 'm' %b 布尔类型 tru ...
- github注册与使用
个人信息: 姓名:赵建 学号:1413042015 班级:网络工程141班 兴趣爱好:码代码,看电影,折腾linux github注册: 首先在地址栏输入https://www.github.com, ...
- [Postgres]postgresql.conf : Permission denied处理一法
使用yum安装完postgresql,没有使用默认的DATA地址,自己配置了DATA地址以后,使用root权限启动service service postgresql start ,报出了" ...
- char、varchar、nchar、nvarchar、text的区别
char.varchar.nchar.nvarchar.text的区别 1.有var前缀的,表示是实际存储空间是变长的,varchar,nvarchar 所谓定长就是长度固定的,当输入的数据长度没有达 ...
- nova 宿主机重启自动恢复虚拟机运行状态
1. 宿主机重启自动恢复虚拟机运行状态 1.1 参数描述与默认值 # Whether to start guests that were running before the host reboote ...