ä½ è¿äºé¢æ°æ®èå´å
¶å®é½å¯ä»¥æ¹å¤§ç= =ï¼ç°å¨è¿ä¸ªèå´å°±æ¯è¾æ°´äº...
å
¶å®æ第ä¸é¢æ²¡æçæ¸
æ¥= =ï¼å¤ªæ¨¡ç³äº...
第ä¸é¢å¯ä»¥å符串Hashï¼æè
ç¨ä¸ªmapä»ä¹çï¼ç¶åæ±åºæ¯ä¸ªè¿ç»çé¿åº¦ä¸ºmçå串ï¼ä¸¢å°hashéé¢å»çåºæ²¡åºç°è¿å°±å¥½äºãæ»å
±æå¤n个å串å...
第äºé¢ï¼n<=1000ï¼é£ä¹n^2å°±å¯ä»¥è¿äºï¼æä»¥ä½ å¯ä»¥å
æ±ä¸ä¸ªåç¼å¼æåï¼ç¶åæ举左å³ç«¯ç¹L,Rï¼ç¶å[L,R]çå¼æå=s[R]^s[L-1]ï¼ç¶åæ举çå¤æ度æ¯n^2ï¼æ以就å¯ä»¥äº...
第ä¸é¢çä¸å¤ªæ¸
æ¥ï¼æ好æ个ææ¬å¥ç...é£æå°±å
åªçåé¢ä¸¤é¢äº...
å¦æè¿æ¯æ²¡å¬æï¼å¯ä»¥è¿½é®ã
第ä¸é¢ä»£ç ï¼å符串hashç代ç ï¼å
¶å®è¯´å®è¯æ¯å¯ä»¥éä½æ¯è¾çã
æ以è¿ä»½ä»£ç æè§æç¹ä¸ï¼ä½ åºè¯¥å¯ä»¥æåºæ´å¥½çï¼
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
struct Node{
char s[110];
}a[110];
int n,m,ans=0;
int rec[110];
char ch[110];
bool used[110];
const int mod=1423333;
bool cmp(const Node &A,const Node &B){
return strcmp(A.s,B.s)<0;
}
int main(){
int kase;
scanf("%d",&kase);
while(kase--){
scanf("%d",&m);
scanf("%s",ch);
n=strlen(ch);
memset(used,0,sizeof(used));
for(int i=0;i<n-m;i++){
ll cnt=0;//å符串hashï¼å°å串转åæä¸ä¸ª27è¿å¶çæ°åæ¥å¤æ
for(int j=0;j<m;j++)
cnt=(cnt*27+ch[i+j]-'a')%mod;
rec[i]=cnt;
for(int j=0;j<i;j++)//å¦æä¹ååºç°è¿ï¼å°±æä¹åçå±è½æ
if(rec[j]==rec[i]) used[j]=true;
}
int t=0;
for(int i=0;i<=n-m;i++)
if(!used[i]){
t++;
memset(a[t].s,0,sizeof(a[t].s));
for(int j=0;j<m;j++)//æéè¦è¾åºçåèµ·æ¥
a[t].s[j]=ch[i+j];
}
sort(a+1,a+t+1,cmp);//æåå
¸åºæåº
for(int i=1;i<=t;i++)
puts(a[i].s);
putchar('\n');
}
return 0;
}
第äºé¢ä»£ç ï¼è¿ä¸ªå°±æ¯è¾ç®åææäºï¼ä¹æè§ä¼ç¾ä¸äºã
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,ans;
int a[1010],s[1010];
int main(){
int kase;
scanf("%d",&kase);
while(kase--){
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=1;i<=n;i++) s[i]=s[i-1]^a[i];
int ans=0;
for(int L=1;L<=n;L++)
for(int R=L;R<=n;R++)
ans=max(ans,s[R]^s[L-1]);
printf("%d\n",ans);
}
return 0;
}