50分求救!

P1125 [NOIP2008 提高组] 笨小猴

``` #include <bits/stdc++.h> using namespace std; int cnt[26]; string s; void t (int n) { for(int i = 0;i < s.size();i++) { if(s[i]=='a') { cnt[0]++; } if(s[i]=='b') { cnt[1]++; } if(s[i]=='c') { cnt[2]++; } if(s[i]=='d') { cnt[3]++; } if(s[i]=='e') { cnt[4]++; } if(s[i]=='f') { cnt[5]++; } if(s[i]=='g') { cnt[6]++; } if(s[i]=='h') { cnt[7]++; } if(s[i]=='i') { cnt[8]++; } if(s[i]=='j') { cnt[9]++; } if(s[i]=='k') { cnt[10]++; } if(s[i]=='l') { cnt[11]++; } if(s[i]=='m') { cnt[12]++; } if(s[i]=='n') { cnt[13]++; } if(s[i]=='o') { cnt[14]++; } if(s[i]=='p') { cnt[15]++; } if(s[i]=='q') { cnt[16]++; } if(s[i]=='r') { cnt[17]++; } if(s[i]=='s') { cnt[18]++; } if(s[i]=='t') { cnt[19]++; } if(s[i]=='u') { cnt[20]++; } if(s[i]=='v') { cnt[21]++; } if(s[i]=='w') { cnt[22]++; } if(s[i]=='x') { cnt[23]++; } if(s[i]=='y') { cnt[24]++; } if(s[i]=='z') { cnt[25]++; } } } int main() { cin >> s; int max = -999999,min = 999999; t(s.size()); for (int i = 0; i < 26; i++) { if(cnt[i] > max) { max = cnt[i]; } if(cnt[i] < min && cnt[i] != 0) { min = cnt[i]; } } // cout << max << " " << min; int ans = max - min; if(ans == 1 || ans == 0) { cout << "No Answer" << endl << 0; return 0; } for(int i=2;i<=sqrt(ans);i++) { if(ans % i == 0) { cout << "No Answer" << endl << 0; return 0; } } cout << "Lucky Word" << endl << ans; return 0; } ``` @[zc_lovely](/user/1272625)
by wuboyan714 @ 2024-02-23 11:07:13


@[zc_lovely](/user/1272625) ```cpp for(int i=0;i<=1;i++) ans[a[i]-'a']++; ``` -> ```cpp for(int i=0;i<=l;i++) ans[a[i]-'a']++; ```
by xzy_caiji @ 2024-02-23 11:10:51


我写错了,是i<l
by xzy_caiji @ 2024-02-23 11:13:27


最后AC版: ```cpp #include<bits/stdc++.h> using namespace std; char a[110]; int ans[26]={0}; int l,maxx,minn,delta; int main() { scanf("%s",a); l=strlen(a); for(int i=0;i<l;i++) ans[a[i]-'a']++; maxx=0; minn=100000; for(int i=0;i<=26;i++) { if(ans[i]>maxx) maxx=ans[i]; if(ans[i]!=0&&ans[i]<minn) minn=ans[i]; }delta=maxx-minn; if(delta==0||delta==1) { printf("No Answer\n0\n"); return 0; } for(int i=2;i<=sqrt(delta);i++) { if(delta%i==0) { printf("No Answer\n0\n"); return 0; } }printf("Lucky Word\n%d\n",maxx-minn); return 0; } ```
by xzy_caiji @ 2024-02-23 11:14:43


@[zc_lovely](/user/1272625) 楼主对质数理解不够啊
by xzy_caiji @ 2024-02-23 11:15:41


@[zc_lovely](/user/1272625) ```cpp #include<iostream> #include<map> #include<math.h> #include<algorithm> #include<string.h> using namespace std; map<char,int>m; int main(){ int maxx=-999999,minn=999999; char a[101]; cin>>a; int l=strlen(a); for(int i=0;i<l;i++){ m[a[i]]++; maxx=max(maxx,m[a[i]]); //minn=min(minn,m[a[i]]); } for(int i=0;i<l;i++){ minn=min(minn,m[a[i]]); } //cout<<maxx<<' '<<minn<<endl; maxx-=minn; // cout<<maxx<<endl; if(maxx==0||maxx==1){ cout<<"No Answer"<<endl; cout<<0; return 0; } for(int i=2;i<=sqrt(maxx);i++){ if(maxx%i==0){ cout<<"No Answer"<<endl; cout<<0; return 0; } } cout<<"Lucky Word"<<endl; cout<<maxx; return 0; } ``` ~~给个关注吧இ௰இ~~
by quxiangyu @ 2024-02-23 11:18:07


@[xzy_caiji](/user/939580) 谢谢大佬
by zc_lovely @ 2024-02-23 11:49:25


@[xzy_caiji](/user/939580) 关注给你了(再次感谢)
by zc_lovely @ 2024-02-23 11:51:28


|