LuoguP1898 缘分计算 题解
Content
根据一个长度为 \(l\),只含大写字母的字符串算出它的“缘分值”。
步骤如下:
- 给定一个数 \(st\)。
- 将字符串里面的所有字母改成数字(如 A 改成 \(st\),B 改成 \(st+1\),……,Z 改成 \(st+25\)),并拼接成一个数字。
- 将这个数字中相邻数位的两个数相加并依次写下它的个位数,重新拼接出新的数字。
- 对这个新的数字重复操作 \(3\),直到这个数字 \(\leqslant 100\) 为止,此时这个数字即为需要操作的字符串的“缘分值”。
数据范围:\(4\leqslant l\leqslant 10,1\leqslant ST\leqslant 10000\)。
Solution
这道题目是一道很简单的模拟,如果对题意不懂的建议先去题面中的解释看看,再来看题解。
就只需要将所有的字符根据 \(st\) 转化为数字,然后一个一个拼接,最后再模拟一下整合的过程就好了。完全就是按照题目中所说的模拟一遍就好了。
Code
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <iostream>
using namespace std;
string s;
int t, sum[17], digits[1000007], cnt;
int main() {
cin >> s >> t;
int n = s.size(), sumtot = 0;
for(int i = 0; i < n; ++i) {
sum[i] = t + (s[i] - 'A');
int tmp[17] = {0};
while(sum[i]) {
tmp[++tmp[0]] = sum[i] % 10;
sum[i] /= 10;
}
for(int i = tmp[0]; i >= 1; --i)
digits[++cnt] = tmp[i];
}
while(cnt >= 3) {
if(cnt == 3) {
for(int i = 1; i <= 3; ++i)
sumtot = sumtot * 10 + digits[i];
if(sumtot == 100) break;
}
for(int i = 1; i < cnt; ++i) {
digits[i] = (digits[i] + digits[i + 1]) % 10;
// printf("%d", digits[i]);
}
// puts("");
cnt--;
}
if(sumtot == 100) printf("%d", sumtot);
else {
sumtot = 0;
for(int i = 1; i <= cnt; ++i)
sumtot = sumtot * 10 + digits[i];
printf("%d", sumtot);
}
return 0;
}
LuoguP1898 缘分计算 题解的更多相关文章
- 洛谷 P1898 缘分计算
P1898 缘分计算 题目描述 缘分是一个外国人难以理解的中文名词.大致说来,缘分是一种冥冥中将两人(通常是情人)结合的力量.仅管这是种迷信,很多人——特别是女生——喜欢去计算它. 不幸的是,644 ...
- BZOJ5334:[TJOI2018]数学计算——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=5334 小豆现在有一个数x,初始值为1. 小豆有Q次操作,操作有两种类型: 1 m: x = x ...
- TJOI2018 数学计算 题解
题目 小豆现在有一个数 \(x\) ,初始值为 \(1\) . 小豆有 \(Q\) 次操作,操作有两种类型: \(m\): \(x=x×m\),输出 \(x\mod M\) : \(pos\): \( ...
- 洛谷【P1898】缘分计算
我对模拟的理解:http://www.cnblogs.com/AKMer/p/9064018.html 题目传送门:https://www.luogu.org/problemnew/show/P189 ...
- 洛谷P1028 数的计算 题解 动态规划入门题
题目链接:https://www.luogu.com.cn/problem/P1028 题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数 \(n\) ): 先输入一个自然数 \(n(n \ ...
- 洛谷新手题 P1028 数的计算题解
题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数nn): 先输入一个自然数nn(n \le 1000n≤1000),然后对此自然数按照如下方法进行处理: 不作任何处理; 在它的左边加上一个 ...
- CCF-CSP认证 C++题解目录
持续更新中,记录刷题过程并分享一下小小的心得总结. 试题编号 试题名称 标签 202006-1 线性分类器 | 题解 线性规划 202006-2 稀疏向量| 题解 归并排序思想 202006-3 化学 ...
- BZOJ百题版切计划(不咕)
传送门 BZOJ 前言 听说最近要省选,那么我就写一下吧.QwQ! 1000 过于简单,不写了. 1001 不会对偶图,直接优化最小割 题解 1002 高精度套公式计算 题解 (Code by hey ...
- hdu-6621 K-th Closest Distance
题目链接 K-th Closest Distance Problem Description You have an array: a1, a2, , an and you must answer ...
随机推荐
- 一文详解MySQL的锁机制
一.表级锁.行级锁.页级锁 数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则. MySQL数据库由于其自身架构的特点,存在多种数据存储引擎, ...
- 链式调用Builder
使用Lombok实现链式调用 1.静态调用 User对象: 对象中必须有一个值不为空staticname作为指定的参数并调用对象 @Accessors(chain = true) @Getter @S ...
- 32、最长有效括号 | 算法(leetode,附思维导图 + 全部解法)300题
零 标题:算法(leetode,附思维导图 + 全部解法)300题之(32)最长有效括号 一 题目描述 二 解法总览(思维导图) 三 全部解法 1 方案1 1)代码: // 方案1 "滑动窗 ...
- 测试平台系列(85) 把redis运用到实战中
大家好~我是米洛! 我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的完整教程,希望大家多多支持. 欢迎关注我的公众号测试开发坑货,获取最新文章教程! 回顾 上一节我们让支持了前置条件 ...
- Hive处理Json数据
Json 格式的数据处理 Json 数据格式是我们比较常用的的一种数据格式,例如埋点数据.业务端的数据.前后端调用都采用的是这种数据格式,所以我们很有必要学习一下这种数据格式的处理方法 准备数据 ca ...
- Java二次开发海康SDK-对接门禁机
写在最前 SDK版本:CH-HCNetSDKV6.1.6.45_build20210302_win64 参考文档:海康SDK使用手册_V6.1 对接测试设备型号:DS-K1T671M 设备序列号:E5 ...
- vue2项目中引用外部js文件
vue2项目目录如下(utils文件夹是自己手工建的,然后在utils里新建js文件): 使用import导入文件时,注意路径,路径不对会报错: 导入之后使用外部js函数时,直接写导入时的名字加小括号 ...
- curl实现SFTP上传下载文件
摘自:https://blog.csdn.net/swj9099/article/details/85292444 #include <stdio.h> #include <stdl ...
- SQL-增、删、改操作
#查看表 select * from `竟企区域数据分析` #在表第一列新增名为"年月"的列alter table `竟企区域数据分析` add column 年月 varchar ...
- adblock plus-看下图你就懂