好吧……是时候补一下题解了
原题
题目大意
给出n只牛,k次排序,如果有一只牛一直比另外一只牛更前算作一对,输出一共有多少对。
题目分析
水题(数据规模小),一开始初始化全部都可以,然后一个个删去就行(k和n反了……好险样例给的k和n不一样)
代码
#include<cstdio>
#include<cstring>
bool map[25][25];
int line[25];
int main()
{
int n,k,ans = 0;
memset(map,1,sizeof(map));
scanf("%d%d",&k,&n);
for (int i = 0;i < k;i++)
{
for (int j = 0;j < n;j++)
{
scanf("%d",line + j);
for (int kk = 0;kk <= j;kk++)
{
map[line[kk]][line[j]] = false;
}
}
}
for (int i = 1;i <= n;++i)
for (int j = 1;j <= n;++j)
{
if (map[i][j]) ++ans;
}
printf("%d",ans);
return 0;
}
本文介绍了一道关于牛排序的问题,通过初始化所有可能的牛对并逐一排除不符合条件的对数,最终计算出符合条件的牛对总数。使用C++实现,适合初学者理解排序和数组操作。
283

被折叠的 条评论
为什么被折叠?



