B. Diverse Substrings (2024.1.22灵茶)

2024-01-23 00:52

本文主要是介绍B. Diverse Substrings (2024.1.22灵茶),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

链接 : 

Problem - 1748B - Codeforces

思路 : 

0-9一共十个字符,由于一个子串是diverse要满足每个字符出现的次数,不超过子串字符种类的数目,所以子串最长的情况也就是0-9每个10个,长度为100,所以可以暴力枚举所有子串 ;

详情请看代码 : 

代码:
 

#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define endl '\n'
#define lowbit(x) (x&(-x))
#define sz(a) (int)a.size()
#define pb push_back
#define all(a) a.begin(), a.end()
typedef long long LL;
const int mod = 1e9+7;
const int N = 2e5+10;using namespace std;inline void solve(){int n ; cin >> n ;string s ; cin >> s ;if(n==1){cout << 1 << endl;return ;}LL ans = 0 ;for(int i=0;i<n;i++){int t[10]{} ;// 每个出现次数 , 初始化为0 int cnt = 0 ; // 种类个数int ma = 0 ;// 最频繁出现字符出现次数for(int j=i;j<n&&(++t[s[j]-'0'])<=10 ;j++){ma = max(ma , t[s[j]-'0']);if(t[s[j]-'0']==1) cnt ++;if(cnt >= ma) ans ++;} }cout << ans << endl ;
}signed main()
{IOSint _ = 1;cin >> _;while(_ --) solve();return 0;
}

这篇关于B. Diverse Substrings (2024.1.22灵茶)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/634766

相关文章

【DL--22】实现神经网络算法NeuralNetwork以及手写数字识别

1.NeuralNetwork.py #coding:utf-8import numpy as np#定义双曲函数和他们的导数def tanh(x):return np.tanh(x)def tanh_deriv(x):return 1.0 - np.tanh(x)**2def logistic(x):return 1/(1 + np.exp(-x))def logistic_derivati

C#从入门到精通(22)—Path类的使用

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家!人工智能学习网站 前言: 大家好,我是上位机马工,硕士毕业4年年入40万,目前在一家自动化公司担任软件经理,从事C#上位机软件开发8年以上!我们在开发上位机软件的过程中,有时候需要对文件的路径、文件名、扩展名进行操作,下面进行详细介绍: 1、合并路径 将盘符、文件夹、文件进行合并成最全的文件路径 st

青岛实训 8月22号 day34

一、回顾 1.主从复制(高可用) 2.传统的主从复制 3.gtids事务型的主从复制 4.注意 1)server_id唯一 2)8.X版本需要get_ssl_pub_key 3)5.X不需要 4)change master to 5)stop | start slave 5.非交互 import pymysql conn=pymysql.connect(host=xxx,user=xxx,pa

Ubuntu上安装libdc1394-22-dev出现无法定位安装包的解决办法

一、libdc1394-22-dev介绍       libdc1394-22-dev 是一个开发库,用于与IEEE 1394 (FireWire)摄像头进行交互。具体来说,它是 libdc1394 的开发版本,提供了开发者头文件和链接库,方便在应用程序中集成对基于 IEEE 1394 标准的数码相机的支持。 主要功能: - IEEE 1394 (FireWire) 协议:这是一个支持高速数据

『功能项目』骑乘坐骑【22】

我们打开上一篇21项目优化的项目, 本章要做的事情是在召唤坐骑后的指定距离内点击骑乘即可乘坐坐骑 首先进入坐骑熊的预制体空间,将主角模型拖拽至坐骑身上并删除所有组件及标签 将子物体Player拖拽至其子级,父类删掉 将其Player隐藏 创建坐骑的动画控制器MountBearAC 创建参数IsIdle 设直线 设置返回线 将新建动画控制器M

leetcode解题思路分析(四)22-28题

括号生成 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 很容易想到采用回溯法解决该题,通过画出树分析递归规律可得如下代码 class Solution {public:void backtrace(int left, int right, int n, string& s, vector<string>& res) {if (left == n

CodeForces 386C Diverse Substrings

题意: 一个字符串的价值等于它包含的不同字母的个数(abcdabcdabcd 的价值为4) 给你一个字符串  求该字符串所有子串的价值 输出最大的价值是多少  再分别输出价值为x的字符串有多少个 思路: MAXstringlen=3*10^5  数据较大  所以我首先尝试可否从左到右扫描一遍每次添加一个字符的想法 但是最简单的加一个字符回头判断一下价值为x的字符串增加了多少个复杂

CodeForces 451D Count Good Substrings

题意: 一个只包含a和b的字符串  问  它有几个长度为偶数和长度为奇数的“压缩回文串”  压缩的概念是  相邻的相同字符压缩成一个字符 思路: 串经过压缩一定满足如下形式 ……ababab……  那么这样只要两端的字符相同则中间一定是回文的  因此对于一个a它作为左端点形成的回文串个数就等于它右边的a的个数  那么长度是奇数还是偶数呢  可以这么判断  如果a在奇数位置上和它匹配的a也在奇

LeetCode 22 Generate Parentheses

题意: 用n组小括号,生成所有满足括号匹配的序列。 思路: 我用了比较粗暴的方式,用set不断迭代答案,每次迭代使得括号组数+1直到n为止。 还有一种方法是dfs构造,因为长度已经确定,所以每个位置要么放(要么放),利用前缀和维护括号匹配即可。 代码: class Solution {public:vector <string> generateParenthesis

7/22训练

位运算位运算符 &(有0为0,全1为1) |(有1为1,全0为0) ^(不同为1,相同为0) n>>k&1(取出n在二进制下的第k位),n^(1<<k)(n的二进制下第k位取反) poj1995 这个题讲的是求a的b次方主要是通过用右移运算符和&1来判断b在该位置化为二进制是否为1是一的话就乘起来 通过右移运算符不断地把高位挪到最后一位然后&1来判断最后一位是否为一。这也经常用于状态压缩 状态太多