考場上寫的是乙個常數較大的 o(n
lnn)
o(n \ln n)
o(nlnn)
,但是犯了一些讓自己驚訝的致命錯誤,掛了一堆分。以下是考場**,並注釋錯誤。
#include
using
namespace std;
#define int long long
//1. 這個地方 4 倍常數,你不知道要卡時間嗎
const
int n =
1e6+
5, base =
27, p =
1e9+7;
// 2. 你這個陣列大小 2^20 絕對 re 了 啊
int n;
unsigned
long
long hs[n]
, w[n]
, lty[n]
;int sum[n][27
];//a - z
//int geths(int l, int r)
string s;
int orz[n]
, num[n]
, cnt[27]
, ac[n][27
];intksm
(int a,
int b)
return ans % p;
}unsigned
long
long
geths
(int l,
int r)
signed
main()
hs[0]
= s[0]
-'a'
;for
(int i =
1; i < len; i++
) hs[i]
=(hs[i -1]
+ w[i]
*(s[i]
-'a'
)% p)
% p;
for(
int i =
0; i < len; i++
)int lyf =0;
for(
int i =
0; i < len; i++
)for
(int j =
0; j <=
26; j++
)int ans =0;
for(
int i =
1; i < len; i++
)else
break;}
}printf
("%lld\n"
, ans);}
return0;
}/*3nnrnnr
zzzaab
mmlmmlo
5kkkkkkkkkkkkkkkkkkkk
lllllllllllllrrlllrr
cccccccccccccxc***cc
ccccccccccccccaababa
ggggggggggggggbaabab
*//*#include using namespace std;
#define int long long
const int n = 1e6 + 5, base = 23, p = 1e9 + 7;
int n, hs[n], w[n], lty[n];
int sum[n][26]; //a - z
int ksm(int a, int b)
return ans % p;
}int geths(int l, int r)
string s;
int orz[n];
signed main()
return 0;}/*
3nnrnnr
zzzaab
mmlmmlo
5kkkkkkkkkkkkkkkkkkkk
lllllllllllllrrlllrr
cccccccccccccxc***cc
ccccccccccccccaababa
ggggggggggggggbaabab
*/
改了之後只有 84 的**
#include
using
namespace std;
#define int short
const
int n =
1048577
, p =
1e9+7;
int n;
long
long hs[n]
, w[n]
, lty[n]
;int sum[n][27
];char s[n]
;int orz[n]
, num[n]
, cnt[27]
, ac[n][27
];long
long
ksm(
long
long a,
long
long b)
return ans % p;
}long
long
geths
(int l,
int r)
signed
main()
hs[0]
= s[0]
-'a'
;for
(int i =
1; i < len; i++
) hs[i]
=(hs[i -1]
+ w[i]
*(s[i]
-'a'
)% p)
% p;
for(
int i =
0; i < len; i++
)int lyf =0;
for(
int i =
0; i < len; i++
)for
(int j =
0; j <=
26; j++
)long
long ans =0;
for(
int i =
1; i < len; i++
)else
break;}
}printf
("%lld\n"
, ans);}
return0;
}
201409 3 字串匹配
試題編號 201409 3 試題名稱 字串匹配 時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 給出乙個字串和多行文字,在這些文字中找到字串出現的那些行。你的程式還需支援大小寫敏感選項 當選項開啟時,表示同乙個字母的大寫和小寫看作不同的字元 當選項關閉時,表示同乙個字母的大寫和小...
20140903 字串匹配
問題描述 試題編號 201409 3 試題名稱 字串匹配 時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 給出乙個字串和多行文字,在這些文字中找到字串出現的那些行。你的程式還需支援大小寫敏感選項 當選項開啟時,表示同乙個字母的大寫和小寫看作不同的字元 當選項關閉時,表示同乙個字母...
201409 3 字串匹配
問題描述 給出乙個字串和多行文字,在這些文字中找到字串出現的那些行。你的程式還需支援大小寫敏感選項 當選項開啟時,表示同乙個字母的大寫和小寫看作不同的字元 當選項關閉時,表示同乙個字母的大寫和小寫看作相同的字元。輸入格式 輸入的第一行包含乙個字串s,由大小寫英文本母組成。第二行包含乙個數字,表示大小...