CF: Long Number

题目链接


#include<iostream>
#include<string>
using namespace std;
int main()
{
    int n;
    cin >> n;
    string a;
    cin >> a;
    int f[10];
    for(int i = 1; i <= 9; i++)
        cin >> f[i];
    for(int i = 0; i < n; i++)
    {
        if(f[a[i] - '0'] > (a[i] - '0'))
        {
            int j = i;
            while(j < n && f[a[j] - '0'] >= (a[j] - '0'))  /*这里要注意j的边界问题,至于为什么 >= 见分析1*/
            {
                a[j] = f[a[j] - '0'] + '0';
                j++;
            }
            break;

        }
    }
    cout << a << endl;
}

分析1:题目原文中有这么一句“You can perform the following operation no more than once: choose a non-empty contiguous subsegment of digits in aa, and replace each digit xx from this segment with f(x)f(x).”, 谷歌翻译后结果为 “您可以执行以下操作不超过一次:在a中选择一个非空的连续子数字段,并用f(x)替换该段中的每个数字x。” 那么为啥写成上面的形式就不难理解了,替换时只能是比它本身大或者和它本身相等,若比它小就不可以了,另外注意判断的顺序是从前往后。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【Pet HDU - 4707 】【利用并查集找深度】

    _DIY
  • Integer Inquiry UVA-424(大整数)

    _DIY
  • Dungeon Master POJ - 2251(bfs)

    _DIY
  • 2017-统计字符个数

    输入:输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串。

    用户2038589
  • Java实现图片的滤镜效果滤镜实现总结

    在移动端或者在web开发时处理图片都是一件麻烦的事儿。我调研过很多library,特别是在移动端处理图片时动不动都需要使用 C++ 或者 OpenCV。这对于 ...

    fengzhizi715
  • 1072 开学寄语 (20 分)

    可爱见见
  • CodeForces 1143A The Doors

    ShenduCC
  • 指针(一)

    什么是野指针?野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的)

    DeROy
  • 05:Cave Cows 1 洞穴里的牛之一

    总时间限制: 10000ms单个测试点时间限制: 1000ms内存限制: 262144kB描述 很少人知道其实奶牛非常喜欢到洞穴里面去探险。     洞窟里有N...

    attack
  • 1061 判断题 (15 分)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    韩旭051

扫码关注云+社区

领取腾讯云代金券