此题在考试时用暴力,暴了30分。
献上30分代码:
#include<stdio.h> int a[100005]; int main() { int n,t,c,i,max,j,d; freopen("maximum.in","r",stdin); freopen("maximum.out","w",stdout); scanf("%d",&t); while(t--) { max=0; scanf("%d%d",&n,&c); for(i=1;i<=n;i++) scanf("%d",&a[i]); if(c==1) { for(i=1;i<=n;i++) for(j=i+1;j<=n;j++) { d=a[i]&a[j]; if(d>=max)max=d; } } if(c==2) { for(i=1;i<=n;i++) for(j=i+1;j<=n;j++) { d=a[i]^a[j]; if(d>=max)max=d; } } if(c==3) { for(i=1;i<=n;i++) for(j=i+1;j<=n;j++) { d=a[i]|a[j]; if(d>=max)max=d; } } printf("%d\n",max); } fclose(stdin); fclose(stdout); return 0; }