Content

根据一个长度为 \(l\),只含大写字母的字符串算出它的“缘分值”。

步骤如下:

  1. 给定一个数 \(st\)。
  2. 将字符串里面的所有字母改成数字(如 A 改成 \(st\),B 改成 \(st+1\),……,Z 改成 \(st+25\)),并拼接成一个数字。
  3. 将这个数字中相邻数位的两个数相加并依次写下它的个位数,重新拼接出新的数字。
  4. 对这个新的数字重复操作 \(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 缘分计算 题解的更多相关文章

  1. 洛谷 P1898 缘分计算

    P1898 缘分计算 题目描述 缘分是一个外国人难以理解的中文名词.大致说来,缘分是一种冥冥中将两人(通常是情人)结合的力量.仅管这是种迷信,很多人——特别是女生——喜欢去计算它. 不幸的是,644 ...

  2. BZOJ5334:[TJOI2018]数学计算——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=5334 小豆现在有一个数x,初始值为1. 小豆有Q次操作,操作有两种类型:  1 m: x = x ...

  3. TJOI2018 数学计算 题解

    题目 小豆现在有一个数 \(x\) ,初始值为 \(1\) . 小豆有 \(Q\) 次操作,操作有两种类型: \(m\): \(x=x×m\),输出 \(x\mod M\) : \(pos\): \( ...

  4. 洛谷【P1898】缘分计算

    我对模拟的理解:http://www.cnblogs.com/AKMer/p/9064018.html 题目传送门:https://www.luogu.org/problemnew/show/P189 ...

  5. 洛谷P1028 数的计算 题解 动态规划入门题

    题目链接:https://www.luogu.com.cn/problem/P1028 题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数 \(n\) ): 先输入一个自然数 \(n(n \ ...

  6. 洛谷新手题 P1028 数的计算题解

    题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数nn): 先输入一个自然数nn(n \le 1000n≤1000),然后对此自然数按照如下方法进行处理: 不作任何处理; 在它的左边加上一个 ...

  7. CCF-CSP认证 C++题解目录

    持续更新中,记录刷题过程并分享一下小小的心得总结. 试题编号 试题名称 标签 202006-1 线性分类器 | 题解 线性规划 202006-2 稀疏向量| 题解 归并排序思想 202006-3 化学 ...

  8. BZOJ百题版切计划(不咕)

    传送门 BZOJ 前言 听说最近要省选,那么我就写一下吧.QwQ! 1000 过于简单,不写了. 1001 不会对偶图,直接优化最小割 题解 1002 高精度套公式计算 题解 (Code by hey ...

  9. hdu-6621 K-th Closest Distance

    题目链接 K-th Closest Distance Problem Description You have an array: a1, a2, , an and you must answer ...

随机推荐

  1. FastAPI(六十二)实战开发《在线课程学习系统》需求分析

    前言 基础的分享我们已经分享了六十篇,那么我们这次分享开始将用一系列的文章分享实战课程.我们分享的系统是在线学习系统.我们会分成不同的模块进行分享.我们的目的是带着大家去用fastapi去实战一次,开 ...

  2. 动画录屏软件-LICEcap

    越来越觉得脑子不够用了,不记博客根本找不到自己以前都干了些啥,自己学的东西用不到就特别难受,学完不用,重新捡起来跟嚼蜡一样难受. 接下来推荐一款动画截屏软件,短小精悍: https://www.coc ...

  3. 【JAVA】编程(6)--- 应用IO流拷贝文件夹(内含多个文件)到指定位置

    此程序应用了: File 类,及其常用方法: FileInputStream,FileOutputStream类及其常用方法: 递归思维: package com.bjpowernode.javase ...

  4. Linux图片查看软件ImageMagick安装

    在Linux中查看图片,这个需求是非常常见的.总不至于在集群中生成个图片,随便看下效果,也要用filezilla.winscp之类的远程文件传输工具导过来导过去吧,这样效率太低. Linux图片查看常 ...

  5. MYSQL5.8-----4

    cc

  6. 小程序https启用tls1.2

    公司的web服务器是iis7,在开发微信小程序的时候,需要启用TLS1.2. 将下面的代码复制到文本,存为reg文档,双击搞定. Windows Registry Editor Version 5.0 ...

  7. 学习java 7.27

    学习内容: 创建树 Swing 使用JTree对象来代表一棵树,JTree树中结点可以使用TreePath来标识,该对象封装了当前结点及其所有的父结点. 当一个结点具有子结点时,该结点有两种状态: 展 ...

  8. Celery进阶

    Celery进阶 在你的应用中使用Celery 我们的项目 proj/__init__.py   /celery.py   /tasks.py 1 # celery.py 2 from celery ...

  9. ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in..的错误 [转]

    问题: ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in..的错误 解决方法: 把没被singed的变量临时变更signed去处 ...

  10. eclipse上安装 windowBuilder方法

    最近因为需要用java Swing做一些组件设计,但想想以前在大学时候为了布局组件和位置设计花了很多时间.所以再网上查了一些带有可视化的设计插件用来提高工作效率. 其中一个是 windowBuilde ...