洛谷P2911 [USACO08OCT]牛骨头Bovine Bones【水题】
题目大意:输入S1,S2,S3,随机生成三个数x,y,z,求x+y+z出现次数最多的数(如果有多个答案输出最小的),其中1<=x<=S1,1<=y<=S2,1<=z<=S3。
数据范围:(2 <= S1 <= 20; 2 <= S2 <= 20; 2 <= S3 <= 40)
由题可知数据范围不大,可以直接暴力,请见代码
/* 浴谷2911 */ #include <iostream> using namespace std; int main() { int a,b,c,x[200],ans=0,ansx=0; cin >> a >> b >> c; for(int i=1;i<=199;i++)x[i]=0; for(int i=1;i<=a;i++) for(int j=1;j<=b;j++) for(int k=1;k<=c;k++) x[i+j+k]++; for(int i=1;i<=199;i++) if(x[i]>ansx){ansx=x[i];ans=i;} cout << ans << endl; return 0; }