牛客数组和字符串2.5


基础很不扎实,一边学新的,一边刷题好了

求距离:

1006-求距离_牛客竞赛语法入门班数组字符串习题 (nowcoder.com)

链接:https://ac.nowcoder.com/acm/contest/19306/1006
来源:牛客网

给你一个1 -> n的排列,现在有一次机会可以交换两个数的位置,求交换后最小值和最大值之间的最大距离是多少?

输入描述:

第一行一个数n
之后一行n个数表示这个排列

输出描述:

输出一行一个数表示答案
示例1

输入

1007-数列下标_牛客竞赛语法入门班数组字符串习题 (nowcoder.com)

链接:https://ac.nowcoder.com/acm/contest/19306/1007
来源:牛客网

题目描述

给出一个数列 A,求出一个数列B. 其中Bi   表示 数列A中 Ai 右边第一个比 Ai 大的数的下标(从1开始计数),没有找到这一个下标  Bi 就为0 输出数列B

输入描述:

第一行1个数字 n (n ≤ 10000) 第二行n个数字第 i 个数字为 Ai (0 ≤ A≤ 1000000000)

输出描述:

一共一行,第 i 个数和第 i+1 个数中间用空格隔开.
示例1

输入

https://ac.nowcoder.com/acm/contest/19306/1010
来源:牛客网

题目描述

给定两个十进制整数 : AAA,BBB

你需要把它们的二进制形式十进制的运算法则相加输出结果。

例如:

A=3,B=2A = 3 , B = 2A=3,B=2 的时候,AAA 的二进制表示是 : 111111 , BBB 的二进制表示是 101010 ,你需要输出答案为 : 212121

输入描述:

一行两个十进制整数: AAA,BBB

输出描述:

一行一个整数,表示相加的结果。
示例1

输入

F-osu!_2021年广东工业大学第11届腾讯杯新生程序设计竞赛(同步赛) (nowcoder.com)

链接:https://ac.nowcoder.com/acm/contest/24803/F
来源:牛客网

题目描述

    Let's play osu!     ht姐姐很喜欢玩osu,她拥有着超凡的指法和无人披靡的手速,当然,还有超高的pp(performance point)。     某一天大英课上,她偶然发现了一句话中居然出现了"osu"这个子序列,这马上引起了她的注意,于是她决定,在这节课剩下的时间中,找到这段文章中所有子序列"osu"。可是文章实在太长了,请你帮帮她。
*字符串的子序列是从字符串中将若干元素提取出来并不改变相对位置形成的序列。

输入描述:

一行一个整数 nnn (1≤n≤1001 \leq n \leq 1001n100)------表示这段文章由nnn个小写英文字母和下划线组成。

接下来111行为该段文章.

输出描述:

一行一个整数,表示答案。
  示例1

输入

复制
6
oossuu

输出

复制
8

说明

在样例一中,如果将字符分别从1开始编号
8个答案分别是
(1,3,5)(1,3,6)(1,4,5)(1,4,6)(2,3,5)(2,3,6)(2,4,5)(2,4,6)
示例2

输入

复制
100
secrets_of_straight_a_students_a_professor_of_education_who_has_conducted_major_studies_of_super_ach

输出

复制
81
示例3

输入

复制
14
cookiezspeedup

输出

复制
2
记忆化搜索
#include
using namespace std;
int main(){
    string ch;
    int n;
    cin>>n;
    cin>>ch;
    int o=0,s=0,u=0;
    for(int i=0;i)
    {
        if(ch[i]=='o')
            o++;
        else if(ch[i]=='s')
            s+=o;
        else if(ch[i]=='u')
            u+=s;
    }
    cout<endl;
    return 0;
}

当然啦,这题100,数据范围不是很大,三层循环暴力也能做

诶我突然发现,这个方法其实就是三层循环的优化,不断循环,在碰到uso的时候然后++,嗯嗯