题目地址

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[签到题]的更多相关文章

  1. XTU OJ 1207 Welcome to XTCPC (字符串签到题)

    Problem Description Welcome to XTCPC! XTCPC start today, you are going to choose a slogan to celebra ...

  2. A 洛谷 P3601 签到题 [欧拉函数 质因子分解]

    题目背景 这是一道签到题! 建议做题之前仔细阅读数据范围! 题目描述 我们定义一个函数:qiandao(x)为小于等于x的数中与x不互质的数的个数. 这题作为签到题,给出l和r,要求求. 输入输出格式 ...

  3. fjwc2019 D3T1 签到题 (贪心)

    #184. 「2019冬令营提高组」签到题 每次询问接近O(1).......考虑贪心 怎么贪心呢? 对于相邻的两个数,我们要保证异或x后单调不降 我们找到两个数二进制上最高的相异位 当左边的数相异位 ...

  4. CTF-练习平台-WEB之 签到题

    一.签到题 根据提示直接加群在群公告里就能找到~

  5. 洛谷P3601签到题(欧拉函数)

    题目背景 这是一道签到题! 建议做题之前仔细阅读数据范围! 题目描述 我们定义一个函数:qiandao(x)为小于等于x的数中与x不互质的数的个数. 这题作为签到题,给出l和r,要求求. 输入输出格式 ...

  6. 【洛谷九月月赛T1】签到题(bsgs)(快速乘)

    说好的签到题呢qwq....怎么我签到题都不会啊qwq 之后看了bsgs才发现貌似不是那么那么难fake!!什么东西... 先贴上部分分做法(也就是枚举1的个数,然后每一步都进行取模(这和最后取模结果 ...

  7. WEB新手之签到题

    写一写web新手赛的题. 这是签到题,开始时需要耐心等待页面中字母全部出现. 字母全部出现后,会跳转到另一个界面,如上图所示.F12没什么特别的地方,这题应该有点难度. 按往常一样,先抓包. 按英文提 ...

  8. EOJ Monthly 2019.1 唐纳德先生与这真的是签到题吗 【数学+暴力+multiset】

    传送门:https://acm.ecnu.edu.cn/contest/126/ C. 唐纳德先生与这真的是签到题吗 单测试点时限: 6.0 秒 内存限制: 1024 MB 唐纳德先生在出月赛的过程中 ...

  9. HLJU 1221: 高考签到题 (三分求极值)

    1221: 高考签到题 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 9  Solved: 4 [Submit][id=1221">St ...

随机推荐

  1. maven下载,上传设置

    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3. ...

  2. 2019-08-01 Ajax实现从数据库读取表

    php代码 <?php //用pdo连接数据库 $dsn = 'mysql:host=127.0.0.1;port=3306;charset=utf8;dbname=news'; //实例化PD ...

  3. Dijkstra算法求最短路径 Java实现

    基本原理: 迪杰斯特拉算法是一种贪心算法. 首先建立一个集合,初始化只有一个顶点.每次将当前集合的所有顶点(初始只有一个顶点)看成一个整体,找到集合外与集合距离最近的顶点,将其加入集合并检查是否修改路 ...

  4. 消息队列的作用以及kafka和activemq的对比

    背景分析 消息队列这个类型的组件一直是非常重要的组件,当经过两家企业后我就很坚信这个结论了.队列这种东西,最广泛的作用还是在于解耦,宽泛一点的说,它可以将不同部门的工作内容进行有效的整合,基于一个约定 ...

  5. 《linux就该这么学》课堂笔记06 编写shell脚本、if、for

    1.1.脚本的两种方式 交互式(Interactive):用户每输入一条命令就立即执行. 批处理(Batch):由用户事先编写好一个完整的Shell脚本,Shell会一次性执行脚本中诸多的命令. 1. ...

  6. Httpd服务入门知识-Httpd服务常见配置案例之ServerSignature指令选项

    Httpd服务入门知识-Httpd服务常见配置案例之ServerSignature指令选项 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.ServerSignature指令概述 ...

  7. mysql毫秒数引发的问题

    起因:最近同事在做定时打卡的东西,遇到一个诡异的问题,端只是传了一个开始时间跟打卡周期,剩下的打卡时间都是由服务端自己生成的,显示的截止时间有的变成==23:59:59==. 有时候又变成了 ==00 ...

  8. spring boot flyway 配置说明(摘抄)

    flyway.baseline-description对执行迁移时基准版本的描述. flyway.baseline-on-migrate当迁移时发现目标schema非空,而且带有没有元数据的表时,是否 ...

  9. oracle-shell备份

    获取PAH写入脚本 cat /home/oracle/.bash_profile 编写脚本oadbbak.sh PATH backuptime=`date +%Y%m%d%H%M%S` exp use ...

  10. maven中jar冲突解决

    Maven中jar包冲突是开发过程中比较常见而又令人头疼的问题,我们需要知道 jar包冲突的原理,才能更好的去解决jar包冲突的问题.本文将从jar包冲突的原理和解决两个方面阐述Maven中jar包冲 ...