時間限制:
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
樣例輸入
22aaaaaaa
3acmacm
樣例輸出
51
思路:暴力判斷超時了,然後就用結構體把所切割出的字串存起來,然後像普通的陣列去重一樣,排序判斷重複的個數
ac**:
#include#include#include#include#include#define maxn 201000
#define max(a,b) a>b?a:b
#define fab(a) ((a)>0?(a):-(a))
#define mem(x) memset(x,0,sizeof(x))
#define inf 0xfffffff
using namespace std;
char ss[maxn];
char ne[20];
struct s
a[maxn];
int num;
bool cmp(s aa,s bb)
int main()
sort(a,a+num,cmp);
strcpy(ne,a[0].str);
for(i=1;i
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出...
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出...
數字轉字串 字串轉數字
數字轉字串 這裡首先用到乙個陣列逆置函式如下 void reverse char arr 逆置 for p arr p arr p 將arr陣列逆置 因為將乙個數字轉成字串,若果是從右往左依次獲得,操作較容易,所以以此得到的字串是數字的逆序字串,所以要逆置,才可得到順序 如下 void myitoa...