Characters with Hash[签到题]
题目地址
Characters with Hash(ACM-ICPC 2018 徐州赛区网络预赛)
题干
代码和解释
本题很好理解,通过一个seed,将输入的定长字符串的每个字符依次转化为一个两位数字(一位则在前添加0),将这些数字依次排列,去掉左侧开头的0,输出这串数字的位数。坑人的地方是,要注意如果答案是0,应该输出1。
我的方法是将每位字符产生的数字存入一个vector里,如果是一位数字则先存一个0再存入此数字。全部存储完毕后,将左侧的0全部删除。
一开始错误是因为删除左侧0时的循环条件为j<ans.size()
,而如果数字串是许多位0,j必定不能到达最后一位。所以我将循环条件改为!ans.empty()
,即只要数字串不为空,就继续检查开头是否为0,开头不是0则跳出循环。
下面是本题的c++代码
#include<iostream>
#include<vector>
#include<string.h>
#include<math.h>
using namespace std;
int main()
{
int T;
int N;//字符串长度
char z;//种子
int i,j;
int tmp;
int count;//记录答案
vector<int> ans;
char s[100100];
scanf("%d",&T);
for(i=0;i<T;i++){
memset(s,'0',sizeof(s));
ans.clear();
scanf("%d %c",&N,&z);
//cout<<"N="<<N<<endl;
//cout<<"z="<<z<<endl;
getchar();//读走回车
scanf("%s",s);
for(j=0;j<N;j++){
//cout<<"s[]="<<s[j];
tmp=abs((int)z-(int)s[j]);
if(tmp<=9){
ans.push_back(0);
}
ans.push_back(tmp);
}
for(j=0;!ans.empty();j++){//删掉领头的0
if(ans[0]==0){
ans.erase(ans.begin());
}
else break;
}
count=ans.size();
for(j=0;j<ans.size();j++){
if(ans[j]>9) count++;//如果是两位数,一个顶俩
}
//for(j=0;j<ans.size();j++){
// cout<<ans[j]<<endl;
//}
if(count!=0) printf("%d\n",count);
else printf("%d\n",1);
}
return 0;
}
参考
ACM-ICPC 2018 徐州赛区网络预赛 Characters with Hash
Characters with Hash[签到题]的更多相关文章
- XTU OJ 1207 Welcome to XTCPC (字符串签到题)
Problem Description Welcome to XTCPC! XTCPC start today, you are going to choose a slogan to celebra ...
- A 洛谷 P3601 签到题 [欧拉函数 质因子分解]
题目背景 这是一道签到题! 建议做题之前仔细阅读数据范围! 题目描述 我们定义一个函数:qiandao(x)为小于等于x的数中与x不互质的数的个数. 这题作为签到题,给出l和r,要求求. 输入输出格式 ...
- fjwc2019 D3T1 签到题 (贪心)
#184. 「2019冬令营提高组」签到题 每次询问接近O(1).......考虑贪心 怎么贪心呢? 对于相邻的两个数,我们要保证异或x后单调不降 我们找到两个数二进制上最高的相异位 当左边的数相异位 ...
- CTF-练习平台-WEB之 签到题
一.签到题 根据提示直接加群在群公告里就能找到~
- 洛谷P3601签到题(欧拉函数)
题目背景 这是一道签到题! 建议做题之前仔细阅读数据范围! 题目描述 我们定义一个函数:qiandao(x)为小于等于x的数中与x不互质的数的个数. 这题作为签到题,给出l和r,要求求. 输入输出格式 ...
- 【洛谷九月月赛T1】签到题(bsgs)(快速乘)
说好的签到题呢qwq....怎么我签到题都不会啊qwq 之后看了bsgs才发现貌似不是那么那么难fake!!什么东西... 先贴上部分分做法(也就是枚举1的个数,然后每一步都进行取模(这和最后取模结果 ...
- WEB新手之签到题
写一写web新手赛的题. 这是签到题,开始时需要耐心等待页面中字母全部出现. 字母全部出现后,会跳转到另一个界面,如上图所示.F12没什么特别的地方,这题应该有点难度. 按往常一样,先抓包. 按英文提 ...
- EOJ Monthly 2019.1 唐纳德先生与这真的是签到题吗 【数学+暴力+multiset】
传送门:https://acm.ecnu.edu.cn/contest/126/ C. 唐纳德先生与这真的是签到题吗 单测试点时限: 6.0 秒 内存限制: 1024 MB 唐纳德先生在出月赛的过程中 ...
- HLJU 1221: 高考签到题 (三分求极值)
1221: 高考签到题 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 9 Solved: 4 [Submit][id=1221">St ...
随机推荐
- Java自学-日期 Calendar
Java的Calendar类 Calendar类即日历类,常用于进行"翻日历",比如下个月的今天是哪天 示例 1 : Calendar与Date进行转换 采用单例模式获取日历对象C ...
- 浏览网页隐藏服务器IP
host文件修改 notepad %windir%\system32\drivers\etc\hosts 目标IP localhost.autumn.com 可能会导致HTTP Status Code ...
- C++ GDI图形设备接口
一.概念 1. GDI:(Graphics Device Interfase)图形设备接口,是一个应用程序与输出设备之间的中介. 一方面,GDI向应用程序提供一个与设备无关的编程环境,另一方面,它又以 ...
- 学习笔记之Coding / Design / Tool
CODING 学习笔记之代码大全2 - 浩然119 - 博客园 https://www.cnblogs.com/pegasus923/p/5301123.html 学习笔记之编程珠玑 Programm ...
- JavaScript 之 offset 、client、scroll
下面这三组是关于元素大小.位置相关的属性 一.offset 偏移量 1.offsetParent 该属性获取距离当前元素最近的定位父元素,如果没有定位父元素此时是 body 元素 2.offsetLe ...
- postgresql怎么导入数据库
1.切换到postgres用户 : sudo su - postgres 2.在shell命令行下,创建数据库exampledb,并指定所有者为dbuser : sudo -u postgres - ...
- Go基本运行编译命令解释
go run命令: 直接执行命令源码文件:一定要声明自己是在main包下,要是只有一个工作区,相应的文件就会存在bin文件下 go build: 把文件夹下的命令源码文件编译成直接运行文件,但是不能有 ...
- Linux无法免密登录的原因
一.免密登录的方法 下面操作是把/root/.ssh/id_dsa.pub文件内容追加到192.168.7.100系统中的/root/.ssh/authorized_keys文件中 # 创建并发送密钥 ...
- Linux必知必会--awk
弱者,是没有资格要求公平的. --<秦时明月>卫庄 参考文献: http://www.ruanyifeng.com/blog/2018/11/awk.html 阮一峰 https://ww ...
- 接口自动化--日志类封装(logging)
上篇随笔已经写到了读取Excel类的封装了,下面就写下日志类, 日志类在我们自动化的过程中是十分重要的,在我们的自动化程序出现异常的时候就可以打印日志 下面是我自己封装的日志类 import logg ...