奶牛与农夫John与oj
当蒟蒻的我悲惨的发现oj出现大量的奶牛与农夫时,觉得早晚usaco要占领oj,于是绝望的开始记录农夫与奶牛的题目…….
一道usaco月赛的题…在oj用作练习二维数组,虽然数据的大量字符确实很让人不爽并瑟瑟发抖,尤其是密恐患者,但实际上是一道简单的二维题。
解法就是用二维数组读入记录几头牛的花纹,然后用多重循环比较两头牛之间不同的地方,每找到一处+1,然后每一次循环结束,即没比对完两头牛,就进行一次比较,取较小的那个,最后记录差距最小的两头奶牛的下标,输出即可
下面是我的代码
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
using namespace std;
const int maxn=510;
int n,minn=100,minx,miny;
char a[55][40];
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=35;j++)
cin>>a[i][j];
for(int i=1;i<n;i++)
for(int j=i+1;j<=n;j++)
{
int num=0;
for(int k=1;k<=35;k++)//三重循环,I,j分别表示两头不同的牛
if(a[i][k]!=a[j][k])//比较两头牛的花色
num++;
if(num<minn)
{
minn=num;//找出区别最小的一对,记录下标
minx=i;
miny=j;
}
}
cout<<minx<<' '<<miny<<endl;
return 0;
}
Ps:新的农夫已经出现,怎么能够停滞不前,穿越牛群,打倒农夫John…..