除夕打CF....
这一场过了Pretest被System检测的时候挂了,下面给出的思路只能过pretest.写下来是为了我后面再思考正确方向,或者看到这篇博文的你找到了错误请在下方留言。
下面解答只提供思路,不保证代码质量!
A. Superhero Transformation
题目大意:
元音替换,只需找到两组字符串长度相等且元音位置一致即可。
更新:此代码已AC,只需交叉判断一次即可。
过AC代码:
#include <iostream>
#include <cstring>
using namespace std;
char a[1005];
char b[1005];
bool f;
bool yuan (char a) {
if(a=='a'||a=='e'||a=='i'||a=='o'||a=='u') {
return true;}
else return false;
}
int main() {
cin>>a;
cin>>b;
int lena=strlen(a);
int lenb=strlen(b);
if(lena!=lenb) {
cout<<"No"<<endl;
} else {
for(int i=0;i<lena;i++) {
f=true;
if(yuan(a[i])) {
if(yuan(b[i])) {
f=true;
continue;
} else {
f=false;
break;
}
}
else if(yuan(b[i])) {
if(yuan(a[i])) {
f=true;
continue;
} else {
f=false;
break;
}
}
}
if(f== false) {
cout<<"No"<<endl;
} else {
cout<<"Yes"<<endl;
}
}
return 0;
}
B. Average Superhero Gang Power
题目大意:
给定一组数字。你最多可以对同一个数字操作k次,总共可以操作m次。
思路是对n与m关系进行比较。详见代码
过PT代码:
#include <iostream>
#include <algorithm>
using namespace std;
int n,k,m;
int cnt,sum;
double num;
int a[100005];
int main() {
scanf("%d %d %d",&n,&k,&m);
for(int i=0;i<n;i++) {
scanf("%d",&a[i]);
}
sort(a,a+n);
cnt=n;
if(n<=m) {
for(int i=0;i<n-1;i++) {
a[i]=0;
cnt--;
}
m=m-(n-cnt);
if(m>=k) {
a[n-1] +=k;
} else {
a[n-1] +=m;
}
num=a[n-1];
}
else {
for(int i=0;i<m;i++) {
a[i]=0;
cnt--;
}
for(int i=0;i<n;i++) {
sum+=a[i];
}
num=sum/cnt;
}
printf("%.6lf\n",num);
return 0;
}
先总结着。。有时间再看看是哪里的问题。