天天看點

[貪心 KMP] 2016 計蒜之道 初賽 第一場 A. 青雲的伺服器密鑰

隻有一種字母

簡單求和一下

兩種或者以上的字母

我們就把某個字母安排在這,它同種類的其他字母安排到最後,那麼前面不含這個字母的部分的π值都将為0,從開始出現這個字元,才有π值,且隻能為1,這樣答案就應該是這個字母出現次數cnt-1。

#include<cstdio>
#include<cstdlib>
#include<algorithm>
using namespace std;

const int N=10005;
int cnt,minv;

int main(){
  int a,T;
  freopen("t.in","r",stdin);
  freopen("t.out","w",stdout);
  scanf("%d",&T);
  while (T--){
    minv=1<<30,cnt=0;
    for (int i=0;i<26;i++){
      scanf("%d",&a);
      if (a) cnt++,minv=min(minv,a);
    }
    if (cnt==1)
      printf("%d\n",minv*(minv-1)/2);
    else
      printf("%d\n",minv-1);
  }
  return 0;
}