$Poj$ $AcWing$

$Description$

$Sol$

分别处理$x$坐标和$y$坐标.$y$坐标显然很好处理,就是排个序然后取中位数就好了.$x$没有$y$那么直接叭.所以我首先写了个大暴力$ovo$,居然过了$AcWing$(太水了).当然过不了$Poj$.所以再观察一下,发现对于枚举的一个$x$作为一条平行线的左端点的$x$值,排序后,累计答案为$as+=abs(x[i]-(x+i-1))$,整理一下,$as+=abs((x[i]-i+1)-x)$,发现被减数是一定的,于是现在和$y$的情况是一样的辣.$over.$

$Code$

//#include<bits/stdc++.h>
#include<iostream>
#include<cstdio>
#include<algorithm>
#define il inline
#define Rg register
#define go(i,a,b) for(Rg int i=a;i<=b;++i)
#define yes(i,a,b) for(Rg int i=a;i>=b;--i)
#define mem(a,b) memset(a,b,sizeof(a))
#define ll long long
#define db double
#define inf (1<<30)
using namespace std;
il int read()
{
Rg int x=,y=;char c=getchar();
while(c<''||c>''){if(c=='-')y=-;c=getchar();}
while(c>=''&&c<=''){x=(x<<)+(x<<)+c-'';c=getchar();}
return x*y;
}
const int N=;
int n,x[N],y[N];
ll as=inf;
int main()
{
n=read();go(i,,n)x[i]=read(),y[i]=read();
sort(x+,x+n+);sort(y+,y+n+);
go(i,x[]-n+,x[n])
{
ll qvq=;
go(j,,n)qvq+=abs(x[j]-(i+j-));
as=min(as,qvq);
}
go(i,,n)as+=abs(y[i]-y[n/+]);
printf("%lld\n",as);
return ;
}

View 暴力 Code

//#include<bits/stdc++.h>
#include<iostream>
#include<cstdio>
#include<algorithm>
#define il inline
#define Rg register
#define go(i,a,b) for(Rg int i=a;i<=b;++i)
#define yes(i,a,b) for(Rg int i=a;i>=b;--i)
#define mem(a,b) memset(a,b,sizeof(a))
#define ll long long
#define db double
#define inf (1<<30)
using namespace std;
il int read()
{
Rg int x=,y=;char c=getchar();
while(c<''||c>''){if(c=='-')y=-;c=getchar();}
while(c>=''&&c<=''){x=(x<<)+(x<<)+c-'';c=getchar();}
return x*y;
}
const int N=;
int n,x[N],y[N];
ll as;
int main()
{
n=read();go(i,,n)x[i]=read(),y[i]=read();
sort(x+,x+n+);sort(y+,y+n+);
go(i,,n)x[i]-=i;sort(x+,x+n+);
go(i,,n)as+=abs(y[i]-y[n/+])+abs(x[i]-x[n/+]);
printf("%lld\n",as);
return ;
}

View AC Code

随机推荐

  1. [MySQL]获取当月每一天

    常用使用场景: 统计某个月(某个时间区间)内每一天的数据量 select date_add(curdate(), interval(cast(help_topic_id as signed integ ...

  2. uda 1.C++ 函数

    函数:Python vs C++ 在 Python 和 C++ 中,函数的作用相同:函数把语句组合在一起,执行某种任务.函数可以帮助你避免重复地复制和粘贴相同的代码. 函数编写的语法有些不同,主要有三 ...

  3. Python基础:25文件

    一:文件对象 文件对象不仅可以用来访问普通的磁盘文件, 而且也可以访问任何其它类型抽象层面上的"文件". 一旦设置了合适的"钩子", 你就可以访问具有文件类型接 ...

  4. HZOJ 辣鸡(ljh)

    题解?noipT1还需要题解?正解就是$n^2$大暴力. 考试的时候打了$n^2$的暴力,也想到了正解的优化,然而觉得它太麻烦了,而且$n^2$怎么优化也过不了50000啊,而且即使不优化前面30分我 ...

  5. PAN-OS 6.1 Open Source Software (OSS) Listing

    https://www.paloaltonetworks.com/documentation/oss-listings/oss-listings/pan-os-oss-listings/pan-os- ...

  6. asp.net mvc获取路由参数

    学习了mvc有一段时间了,本以为直接可以通过request对象直接获取路由参数呢,后来实验了一下发现想错了,mvc有专门获取路由参数的方式,在不同的地方,获取路由参数的方式也不一样,这里分别说一下,在 ...

  7. 为你的 SuperSocket 启用动态语言

    步骤如下: 1.添加 DLR (dynamic language runtime) 配置片段; Section 定义: <section name="microsoft.scripti ...

  8. 【原生JS】图片预加载之无序预加载

    图片预加载之无序预加载 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset= ...

  9. uni-app学习记录06-Vuex简单使用

    import Vue from 'vue' // 这里引入vuex import Vuex from 'vuex' Vue.use(Vuex) export default new Vuex.Stor ...

  10. 阿里巴巴Java编程规范考试

    阿里巴巴Java编程规范考试 今天在阿里云官网把阿里巴巴Java编程规范认证考试考过了, 写下这篇文章总结一下考试中需要注意的知识点, 主体内容还是要直接看规范: 编程规约 异常日志 单元测试 安全规 ...