NYOJ---题目1112求次数

求次数

时间限制:1000 ms  |  内存限制:65535 KB

难度:2

描述

题意很简单,给一个数n 以及一个字符串str,区间【i,i+n-1】 为一个新的字符串,i 属于【0,strlen(str)】如果新的字符串出现过ans++,例如:acmacm n=3,那么 子串为acm cma mac acm ,只有acm出现过

求ans;

输入
LINE 1: T组数据(T<10)

LINE 2: n ,n <= 10,且小于strlen(str);

LINE 3:str

str 仅包含英文小写字母 ,切长度小于10w

输出
求 ans
样例输入
2
2
aaaaaaa
3
acmacm
样例输出
5
1
上传者

ACM_王亚龙

#include<iostream>
#include<stdio.h>
#include<map>
#include<string.h>
#include<algorithm>
using namespace std;
string a[110000];
int main()
{
    int test;
    int n;
    string s;
    scanf("%d",&test);
    while(test--)
    {
        scanf("%d",&n);
        cin>>s;
        int len=s.size();
        int count=0;
        for(int i=0;i<len-n+1;i++)
        {
            a[count++]=s.substr(i,n);
        }
        sort(a,a+count);
        string t;
        int sum=0;
        for(int i=0;i<count;i++)
        {
            t=a[i];
            for(int j=i+1;j<count;j++)
            {
                if(t==a[j])
                {
                    sum++;
                    i=j;
                }
                else
                  break;
            }
        }
        printf("%d\n",sum);
    }
    return 0;
}
时间: 2024-10-10 17:17:35

NYOJ---题目1112求次数的相关文章

nyoj 1112 求次数(map, set)

求次数 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 题意很简单,给一个数n 以及一个字符串str,区间[i,i+n-1] 为一个新的字符串,i 属于[0,strlen(str)]如果新的字符串出现过ans++,例如:acmacm n=3,那么 子串为acm cma mac acm ,只有acm出现过 求ans; 输入 LINE 1: T组数据(T<10)LINE 2: n ,n <= 10,且小于strlen(str);LINE 3:strstr 仅包含英文小

NYoj 1112 求次数 【水】

求次数 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 题意很简单,给一个数n 以及一个字符串str,区间[i,i+n-1] 为一个新的字符串,i 属于[0,strlen(str)]如果新的字符串出现过ans++,例如:acmacm n=3,那么 子串为acm cma mac acm ,只有acm出现过 求ans; 输入 LINE 1: T组数据(T<10) LINE 2: n ,n <= 10,且小于strlen(str); LINE 3:str str 仅包含

nyoj 1112 求次数 (map)

求次数 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 题意很简单,给一个数n 以及一个字符串str,区间[i,i+n-1] 为一个新的字符串,i 属于[0,strlen(str)]如果新的字符串出现过ans++,例如:acmacm n=3,那么 子串为acm cma mac acm ,只有acm出现过 求ans; 输入 LINE 1: T组数据(T<10) LINE 2: n ,n <= 10,且小于strlen(str); LINE 3:str str 仅包含

NYOJ题目889求距离

------------------------------------------ 题目可以抽象一下为计算坐标系上两点间的距离,即 AC代码: 1 import java.awt.Point; 2 import java.io.BufferedReader; 3 import java.io.IOException; 4 import java.io.InputStreamReader; 5 6 public class Main { 7 8 public static void main(S

南阳oj 求次数 题目1112

 /* 求次数 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 题意很简单,给一个数n 以及一个字符串str,区间[i,i+n-1] 为一个新的字符串,i 属于[0,strlen(str)]如果新的字符串出现过ans++,例如:acmacm n=3,那么 子串为acm cma mac acm ,只有acm出现过 求ans; 输入LINE 1: T组数据(T<10) LINE 2: n ,n <= 10,且小于strlen(str); LINE 3:str st

nyoj1112 求次数 (对结构体字符串排序)

题目1112 题目信息 运行结果 本题排行 讨论区 求次数 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 题意很简单,给一个数n 以及一个字符串str,区间[i,i+n-1] 为一个新的字符串,i 属于[0,strlen(str)]如果新的字符串出现过ans++,例如:acmacm n=3,那么 子串为acm cma mac acm ,只有acm出现过 求ans; 输入 LINE 1: T组数据(T<10) LINE 2: n ,n <= 10,且小于strle

题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。

一.第一种写法 package com.pb.demo1; import java.util.Scanner; /** * 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字.例如2+22+222+2222+22222(此时共有5个数相加), * a以及累加数的位数是从键盘接收. 程序分析: * 1. 接收从键盘输入的一个数(数字只能是1-9之间的数) * 2. 接收一个数表示累加数的位数 * 3.例如,输入一个4(累加数的位数),键盘输入a的值是5:s=5+55+555

NYOJ 46 最小乘法次数

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=46 用类似于快速幂的方法做,注意1的时候是0: #include <iostream> using namespace std; int main() { int ase; int num; int res; cin>>num; while(num--) { res = 0; cin>>ase; if(ase==1) { cout<<0<<

NYOJ 102 次方求模

次方求模 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 求a的b次方对c取余的值 输入 第一行输入一个整数n表示测试数据的组数(n<100) 每组测试只有一行,其中有三个正整数a,b,c(1=<a,b,c<=1000000000) 输出 输出a的b次方对c取余之后的结果 样例输入 3 2 3 5 3 100 10 11 12345 12345 样例输出 3 1 10481 算法分析: 大数问题,需要利用快速幂取模算法. 所谓的快速幂,实际上是快速幂取模的缩