日记
2024.4.12
这两天写了一个洛谷题——P2141 [NOIP2014 普及组] 珠心算测验
我写的题解是这样的
#include<stdio.h>
void f(int *num){
scanf("%d",num);
int a[110];
int b[110];
for(int i=0;i<110;i++){
a[i]=0;
b[i]=0;
}
for(int i=0;i<*num;i++){
scanf("%d",&a[i]);
}
int c=0;
// for(int i=0;i<*num;i++){
// for(int j=0;j<i-1;j++){
// for(int p=j+1;p<i;p++){
// if(a[i]==a[j]+a[p]&&b[i]==0&&i!=j&&i!=p) {
// c++;
// b[i]=1;
// }
// }
// }
// }
for(int i=0;i<*num-1;i++){//左边界
for(int j=i+1;j<*num;j++){//右边界
for(int p=0;p<*num;p++){//暴力枚举
if(a[i]+a[j]==a[p]&&p!=j&&p!=i&&b[p]==0){
c++;
b[p]=1;
}
}
}
}
printf("%d",c);
}
int main(){
int num=0;
f(&num);
return 0;
}
以上题解不应该用注释中的算法,而应该用下面的