| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:一样的算法, 2406(141ms), 1961(tle), 就多个输出, 这么费时么, 我的算法应该是O(n)呀!求大神给看看!In Reply To:一样的算法, 2406(141ms), 1961(tle), 就多个输出, 这么费时么, 我的算法应该是O(n)呀!求大神给看看! Posted by:sicojuy at 2011-04-24 12:37:40 > #include <cstdio>
> #include <cstring>
> #define N 1000001
>
> char str[N], substr[N];
>
> int main()
> {
> char *p, *strend;
> int len, ppos;
> int period, count;
> int test = 0;
> while(scanf("%d", &len), len != 0)
> {
> scanf("%s", str);
> printf("Test case #%d\n", ++test);
> ppos = 0;
> p = str;
> strend = str + len;
> while(p < strend)
> {
> period = p - str + 1;
> while(ppos < period)
> {
> substr[ppos] = str[ppos];
> ++ppos;
> p = str + period;
> }
> substr[ppos] = '\0';
> count = 1;
> while(strncmp(p, substr, period) == 0)
> {
> ++count;
> p += period;
> printf("%d %d\n", int(p - str), count);
> }
> }
> printf("\n");
> }
> return 0;
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator