gym-101343E-Abdalrahman Ali Bugs

 

 1 /*
 2 寻找x使得目标函数的值最小。
 3 先统计字符串每个字母的出现次数,然后暴力穷举所有可能的x
 4 每个都计算一次目标函数,取最小的即可。
 5 */
 6 #include <bits/stdc++.h>
 7 using namespace std;
 8 const int inf=0x3f3f3f3f;
 9 string s;
10 int scnt[30];
11 int main()
12 {
13     cin>>s;
14     int maxn=0;
15     int len=s.length();
16     for(int i=0;i<len;i++)
17     {
18         scnt[s[i]-97]++;
19         if(maxn<scnt[s[i]-97])
20             maxn=scnt[s[i]-97];
21     }
22     int minn=inf;
23     int ans=2;
24     for(int i=2;i<=maxn;i++)
25     {
26         long long  t=0;
27         for(int j=0;j<26;j++)
28             t+=(scnt[j]%i)*(long long )scnt[j];
29         if(minn>t)
30         {
31             minn=t;
32             ans=i;
33         }
34     }
35     cout<<ans<<endl;
36 }

 

posted @ 2017-07-20 22:21  Kearon  阅读(482)  评论(0编辑  收藏  举报