# codeforces 1335E1+E2（思维）

### 思路+代码

#### AC代码

#include<bits/stdc++.h>
#define x first
#define y second
#define PB push_back
#define mst(x,a) memset(x,a,sizeof(x))
#define all(a) begin(a),end(a)
#define rep(x,l,u) for(ll x=l;x<u;x++)
#define rrep(x,l,u) for(ll x=l;x>=u;x--)
#define sz(x) x.size()
#define IOS ios::sync_with_stdio(false);cin.tie(0);
using namespace std;
typedef unsigned long long ull;
typedef pair<int,int> PII;
typedef pair<long,long> PLL;
typedef pair<char,char> PCC;
typedef long long ll;
const int N=2020;
const int M=1e6+10;
const int INF=0x3f3f3f3f;
const int MOD=1e9+7;
int cnt[N][30];
void solve(){
mst(cnt,0);
int n;cin>>n;
rep(i,1,n+1){
int x;cin>>x;
rep(j,1,27) cnt[i][j]=cnt[i-1][j];
cnt[i][x]++;
}
int ans=0;
rep(i,1,27) ans=max(ans,cnt[n][i]);
rep(i,1,n+1){
rep(j,i+1,n+1){
int lenlr=-1,lenmd=-1;
rep(k,1,27){
int l=cnt[i][k];
int r=cnt[n][k]-cnt[j-1][k];
lenlr=max(lenlr,min(l,r));
}
rep(k,1,27){
int m=cnt[j-1][k]-cnt[i][k];
lenmd=max(lenmd,m);
}
ans=max(ans,lenlr*2+lenmd);
}
}
cout<<ans<<endl;
}
int main(){
IOS;
int t;cin>>t;
while(t--){
solve();
}
return 0;
}


#### hard版本

        int uu=u/2;
int cnt[300]={0},mx=-1;
rep(j,v[i][uu-1]+1,v[i][u-uu]){
cnt[a[j]]++;
}


#### AC代码

#include<bits/stdc++.h>
#define x first
#define y second
#define PB push_back
#define mst(x,a) memset(x,a,sizeof(x))
#define all(a) begin(a),end(a)
#define rep(x,l,u) for(ll x=l;x<u;x++)
#define rrep(x,l,u) for(ll x=l;x>=u;x--)
#define sz(x) x.size()
#define IOS ios::sync_with_stdio(false);cin.tie(0);
using namespace std;
typedef unsigned long long ull;
typedef pair<int,int> PII;
typedef pair<long,long> PLL;
typedef pair<char,char> PCC;
typedef long long ll;
const int N=2020;
const int M=1e6+10;
const int INF=0x3f3f3f3f;
const int MOD=1e9+7;
/*注意边界

int a[N];
vector<int> v[300];
void solve(){
int n;cin>>n;
rep(i,0,300) v[i].clear();
rep(i,1,n+1){
cin>>a[i];
v[a[i]].PB(i);
}
int ans=0;
rep(i,1,257){
int u=v[i].size();
ans=max(ans,u);
if(u<2) continue;
int uu=u/2;
int cnt[300]={0},mx=-1;
rep(j,v[i][uu-1]+1,v[i][u-uu]){
cnt[a[j]]++;
}
rep(j,1,257) mx=max(mx,cnt[j]);
ans=max(ans,uu*2+mx);
rrep(j,uu-1,1){
rep(k,v[i][j-1]+1,v[i][j]) cnt[a[k]]++;
rep(k,v[i][u-j-1]+1,v[i][u-j]) cnt[a[k]]++;
rrep(k,1,257) mx=max(mx,cnt[k]);
ans=max(ans,(int)j*2+mx);
}
}
cout<<ans<<endl;
}
int main(){
IOS;
int t;cin>>t;
while(t--){
solve();
}
return 0;
}


• 点赞
• 评论
• 分享
x

海报分享

扫一扫，分享海报

• 收藏
• 手机看

分享到微信朋友圈

x

扫一扫，手机阅读

• 打赏

打赏

Dejavu1z

你的鼓励将是我创作的最大动力

C币 余额
2C币 4C币 6C币 10C币 20C币 50C币
• 一键三连

点赞Mark关注该博主, 随时了解TA的最新博文

08-03 34