求调
  • 板块学术版
  • 楼主Hisy
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/8/18 10:39
  • 上次更新2024/8/18 13:33:43
查看原帖
求调
922691
Hisy楼主2024/8/18 10:39

我是链接。

代码:

#include<bits/stdc++.h>
#define MAXN 400004
#define HASH 31
#define map unordered_map
#pragma GCC optimize(3)
#pragma GCC target("avx")
#pragma GCC optimize("Ofast")
#pragma GCC optimize("inline")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-fipa-sra")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-ffast-math")
#pragma GCC optimize("-fsched-spec")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-falign-jumps")
#pragma GCC optimize("-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fdevirtualize")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-fwhole-program")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("inline-functions")
#pragma GCC optimize("-ftree-tail-merge")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-fstrict-overflow")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-fcse-skip-blocks")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("-fpartial-inlining")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-fhoist-adjacent-loads")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("inline-small-functions")
#pragma GCC optimize("-finline-small-functions")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-fexpensive-optimizations")
#pragma GCC optimize("-funsafe-loop-optimizations")
#pragma GCC optimize("inline-functions-called-once")
#pragma GCC optimize("-fdelete-null-pointer-checks")
#pragma GCC optimize(2)
//#undef map
using namespace std;
typedef unsigned long long ull;
int m,len;
char s[MAXN];
ull base[MAXN],pre[MAXN];
inline ull get_hash(int l,int r){
	return pre[r]-pre[l-1]*base[r-l+1];
}
inline int check(int mid){
	map<ull,int> mp;
	int ans=-1;
	for(int i=1;i<=len-mid+1;++i){
		int hsh=get_hash(i,i+mid-1);
		++mp[hsh];
		if(mp[hsh]>=m){
			ans=i;
		}
	}
	return ans;
}
int main(){
    while(scanf("%d",&m)&&m){
        scanf("%s",s+1);
        len=strlen(s+1);
        base[0]=1;
        for(int i=1;i<=len;++i){
        	base[i]=base[i-1]*HASH;
        	pre[i]=pre[i-1]*HASH+s[i]-'a';
		}
        int l=1,r=len;
        pair<int,int> ans;
        if(check(1)==-1){
        	puts("none");
        	continue;
		}
        while(l<=r){
            int mid=(l+r+1)>>1;
            int x=check(mid);
            if(x!=-1){
            	l=mid+1;
				ans=make_pair(mid,x-1);
			}else{
				r=mid-1;
			}
        }
		printf("%d %d\n",ans.first,ans.second);
    }
    return 0;
}

死因:Time limit exceeded on test 2

死者作者的控诉:n log n 时间复杂度在 n<=40000 的情况下似乎不会 T

2024/8/18 10:39
加载中...