首页 > 编程语言 >[编程题]堆棋子 中位数

[编程题]堆棋子 中位数

时间:2022-10-20 11:33:14浏览次数:70  
标签:int sum 编程 中位数 cin 棋子 maxn two ans

​https://www.nowcoder.com/questionTerminal/27f3672f17f94a289f3de86b69f8a25b​

由于x[]和y[]是独立的,所以贡献可以单独考虑

如果选出k个,x[1...k]

那么肯定是去到中位数那个点,所需要的贡献是最小的。

那么就有n^2种不同的目标点,也就是每个x,对应每个y。

然后枚举每一个点到达这个点所需要的最小距离,取个最小的即可。

[编程题]堆棋子  中位数_#define

[编程题]堆棋子  中位数_ios_02

#include <bits/stdc++.h>
#define IOS ios::sync_with_stdio(false)
using namespace std;
#define inf (0x3f3f3f3f)
typedef long long int LL;
const int maxn = 50 + 20;
int x[maxn], y[maxn];
int xx[maxn], yy[maxn];
LL sum[52][52][52];
void work() {
int n;
cin >> n;
for (int i = 1; i <= n; ++i) {
cin >> x[i];
xx[i] = x[i];
}
for (int i = 1; i <= n; ++i) {
cin >> y[i];
yy[i] = y[i];
}
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= n; ++j) {
for (int k = 1; k <= n; ++k) {
sum[i][j][k] = abs(x[k] - x[i]) + abs(y[k] - y[j]);
}
sort(sum[i][j] + 1, sum[i][j] + 1 + n);
for (int k = 2; k <= n; ++k) {
sum[i][j][k] += sum[i][j][k - 1];
}
}
}
for (int i = 1; i <= n; ++i) {
LL ans = 1e18;
for (int one = 1; one <= n; ++one) {
for (int two = 1; two <= n; ++two) {
ans = min(ans, sum[one][two][i]);
}
}
if (i < n) cout << ans << " ";
else cout << ans << endl;
}
}

int main() {
#ifdef local
freopen("data.txt", "r", stdin);
// freopen("data.txt", "w", stdout);
#endif
work();
return 0;
}

View Code

 

标签:int,sum,编程,中位数,cin,棋子,maxn,two,ans
From: https://blog.51cto.com/u_15833059/5779597

相关文章

  • 实验2 C语言控制语句应用编程
    task1.c源代码:1#include<stdio.h>2#include<time.h>3#include<stdlib.h>4#defineN55intmain(){6intnumber;7inti;89s......
  • JavaScript异步编程
    单线程:JavaScript这语言被设计的时候本来就是单线程的异步:程序执行后,不会马上开始生效,而是过一会儿才开始行动为什么要用promise(承诺)?为了解决回调地狱通过promi......
  • 熟悉编程语言
    1.现在最受欢迎的编程语言top50是哪些编程语言?大体是四足鼎立,即python,c,java,c++;另外rust近来受到一些关注2.50种编程语言的编程范型1.命令式面向对象javac++c#py......
  • 包的具体使用,编程思想,开发目录规范, 常用内置模块
    目录一.包的具体使用二.编程思想的转变三.软件开发目录规范bin文件夹conf文件夹core文件夹interface文件夹db文件夹log文件夹lib文件夹readme文件夹requirements.txt文件四......
  • 实验2 C语言控制语句应用编程
    1#include<stdio.h>2#include<stdlib.h>3#include<time.h>4#defineN55intmain()6{7intnumber;8inti;9srand(time(0));10......
  • python编程考试题目大全
    1.题目名称:批阅奏章某朝皇帝有大臣n名(1<=n<=1000),分别编号大臣1~n。某日皇帝身体抱恙,奏章堆积如山无法及时一一批阅,便命身旁內侍帮他把奏章按指定顺序排序后再阅。于是皇帝......
  • 实验2 C语言控制语句应用编程
    1试验任务一(1)task1.c源代码,及,运行结果截图   #include<stdio.h>#include<stdlib.h>#include<time.h>#defineN5intmain(){intnumber;inti;......
  • JDK 19 对反应式编程的批判
    我们知道JDK19引入了虚拟线程,实现了JEP425草案,https://openjdk.org/jeps/425该案对反应式编程的批判可谓犀利:Improvingscalabilitywiththeasynchronousstyle......
  • python编程中的circular import问题
    循环引入,circularimport是编程语言中常见的问题,在C语言中我们可以使用宏定义来处理,在c++语言中我们可以使用宏定义和类的预定义等方式来解决,那么在python编程中呢? 其实在p......
  • Linux系统编程 第13章学习笔记
    TCP/IP和网络编程 TCP/IP协议TCP/IP(Comer1988,2001;RFC11801991)是互联网的基础。TCP代表传输控制协议。IP代表互联网协议。   IP主机和IP地址主机是......