农夫约的假期

题目大意:

在某国有一个叫农夫约的人,他养了很多羊,其中有两头名叫mm和hh,他们的歌声十分好听,被当地人称为“魔音”······
农夫约也有自己的假期呀!他要去海边度假,然而mm和hh不能离开他。没办法,他只好把他们两个带上。
到了海边,农夫约把他的羊放在一个(nn)的矩阵(有nn个方格)里。mm和hh十分好动,他们要走到m(m<=n*n)个地方,第i个地方的坐标为(x[i](行),y[i](列)),每到一个地方他们会高歌一曲,制造q[i]点魔音值,因为他们的魔音十分独特,他们的声音只能横着或竖着传播。每传播一格,魔音值会增加1。(传播的格子数取最小的)接下来农夫约要住酒店。为了方便照顾小羊们,他选的酒店的坐标要在矩阵内。但小羊们的魔音让他十分头疼。他想求出魔音值最小的地方。
他还要享受他的假期,所以他把这个任务交给你了,加油(_

解题思路:

发现是中位数
然后就是水题了
(话说题目是不是错了,农夫约???农夫约翰吧===)

Accepted code:

#include<cmath>
#include<cstdio>
#include<algorithm>
using namespace std;
long long ans,ans_z;
int n,m,mid_x,mid_y,z,x[100001],y[100001];
int main() {
	scanf("%d%d%d",&n,&m,&z);
	for (int i=1;i<=m;i++)
		scanf("%d%d%d",&x[i],&y[i],&z),ans_z+=z;
	sort(x+1,x+m+1), sort(y+1,y+m+1);
	mid_x=x[(1+m)>>1], mid_y=y[(1+m)>>1];
	for (int i=1;i<=m;i++)
		ans+=abs(x[i]-mid_x)+abs(y[i]-mid_y);
	printf("%lld\n%d %d",ans+ans_z,mid_x,mid_y);
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值