jzoj1298. 牛棚

【USACO题库】5.3.4 Big Barn巨大的牛棚 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚。他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方。我们假定,他的农场划分成 N x N 的方格。输入数据中包括有树的方格的列表。你的任务是计算并输出,在他的农场中,不需要砍树却能够修建的最大正方形牛棚。牛棚的边必须和水平轴或者垂直轴平行。 EXAMPLE 考虑下面的方格,它表示农夫约翰的农场, 阅读详情

题目

Description

译题:

FJ有N(2<=N<=1,500)头牛编号为1到N,FJ新盖了S(N<=S<=1,000,000)个牛棚,编号为1到S,S个牛棚排成一排,相邻牛棚距离为1。
每个牛棚只能住一头牛,每头牛都选择了一个牛棚P_i来休息,当两头牛离得太近时就会变得很暴躁,FJ想移动一些牛到其他牛棚使得他们之间的间距尽可能大,同时FJ又希望这N-1个间距尽可能相似。
具体一点说,FJ希望所有间距与(S-1)DIV(N-1)最多相差1,而且希望这N-1个间距尽可能多的等于(S-1)DIV(N-1)。例如4个牛住8个牛棚,可以有以下方案:1,3,5,8或1,3,6,8,但1,2,4,7或1,2,4,8是不符合要求的。
帮助FJ用最少的移动距离满足要求。

原题:

Farmer John has N (2 <= N <= 1,500) prize milk cows conveniently numbered 1…N. His newly-painted barn has S (N <= S <= 1,000,000) stalls (conveniently numbered 1…S) in a single long line; each stall is a unit distance from its neighboring stall(s).

The cows have made their way to the stalls for a rest; cow i is in stall P_i. Antisocial as they are, the cows get grumpy if they are situated in stalls very close to each other, so Farmer John wants to move the cows to be as spread out as possible.

FJ wants to make sure that the N - 1 distances between adjacent cows are as large as possible, and he would also like them to be similar to each other (i.e., close to equi-distant spacing).

In particular, FJ would like all distances between adjacent cows to be at most 1 different from (S - 1) / (N - 1), where integer division is used. Moreover, he would like as many of these distances as possible to be exactly equal to (S - 1) / (N - 1) [integer division]. Thus, with four cows and eight stalls, one can place the cows at positions 1, 3, 5, 8 or 1, 3, 6, 8 but not at 1, 2, 4, 7 or 1, 2, 4, 8.

Help FJ spread the cows as efficiently as possible by calculating and reporting the minimum total distance that the cows have to move in order to achieve proper spacing. Ignore the distance it takes for a cow to enter or exit a stall.

Input

  • Line 1: Two space-separated integers: N and S

  • Lines 2…N+1: Line i+1 contains the single integer: P_i

第1行:两个空格隔开的整数N和S
  第2到N+1行:第i+1行包含一个整数P_i

Output

  • Line 1: A single integer: the minimum total distance the cows have to travel. This number is guaranteed to be under 1,000,000,000 (thus fitting easily into a signed 32-bit integer).
      输出一个整数表示最少移动距离。

Sample Input

5 10
2
8
1
3
9

Sample Output

4

Hint

在这里插入图片描述

分析

dp
状态转移方程:
f[i][j]=min(f[i-1][j-1],f[i-1][j])+abs(a[i]-i*x+x-j-1);

CODE

#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;

int n,s,a[2000],f[2000][2000];

bool cmp(int a,int b){
	return a<b;
}

int main(){
	freopen("gwraze2.in","r",stdin);
	freopen("graze2.out","w",stdout);
	scanf("%d%d",&n,&s);
	for (int i=1;i<=n;i++)
		scanf("%d",&a[i]);
	sort(a+1,a+n+1,cmp);
	memset(f,0x3f3f3f,sizeof(f));
	f[1][0]=a[1]-1;
	int x=(s-1)/(n-1);
	int y=(s-1)%(n-1);
	for (int i=2;i<=n;i++){
		s=min(i-1,y); 
		f[i][0]=f[i-1][0]+abs(a[i]-i*x+x-1);
		for (int j=1;j<=s;j++)
			f[i][j]=min(f[i-1][j-1],f[i-1][j])+abs(a[i]-i*x+x-j-1);
	}
	printf("%d\n",f[n][y]);
	return 0;
}

保姆级避坑指南:用Docker在Ubuntu 22.04上部署Isaac Sim 5.1.0,搞定宇树G1仿真环境 本文提供了一份详细的保姆级避坑指南,帮助用户在Ubuntu 22.04上通过Docker部署Isaac Sim 5.1.0,并成功搭建宇树G1仿真环境。文章涵盖了环境准备、Docker与NVIDIA容器工具包的配置、Isaac Sim镜像的定制化拉取与配置,以及宇树G1仿真环境的实战调试,旨在帮助开发者高效解决部署过程中的常见问题。 阅读详情

相关推荐

【RTOS】 Vxworks 653 第一章 —— 初识 vx653 3.x

。。不是很重要,自己搜吧鲁棒分区是一种确保共享计算资源中独立运行功能实现​​时空隔离​​的机制,其目标是为集成模块中的混合临界性应用提供与联邦式部署(federated implementation)同等级别的功能隔离保障。具体表现为:​​多关键性共存​​:支持不同安全等级应用(如飞控系统A级与娱乐系统D级)在同一模块中协同运行。​​抗干扰能力​​:防止未授权或意外的时空干扰(如内存越界、时间窗口冲突),确保应用间互不影响。​​。

qq_38183694的博客 1280

笔直的水管

题目 描述 Description 奶牛们想把水从池塘运输到牛棚里,池塘和牛棚相距D个单位。它们有P根水管,每根水管由2个整数来描述:水管长度Li,最大流量Ci。 水管可以依次连接构成一条运输管道(下水道?),那么这条运输管道的流量就是构成这条管道的所有水管中最小的一个流量。 但是,要让水从池塘通过运输管道流到牛棚里,管道的长度必须恰好等于池塘和牛棚的距离(也就是说,水管长度Li之和为D)! ...

MILLOPE的博客 980

PSF(点扩散函数)与去卷积算法消除图像模糊

本文旨在总结图像处理中使用去卷积的传统方法来进行图像去模糊的相关知识。

m0_53607446的博客 6015

DP背包(背包类问题)

背包其实也是资源分配的一个分支,有各种模型,以01背包为根本,有其他各种;难点在于01背包的优化以及各种背包问题之间的转化;先用一道题来看宋彦沣是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的高浩岷为师。高浩岷为了判断他的资质,给他出了一个难题。高浩岷把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的宋彦沣,你应该可以让采到的草药的总

feguredf_的博客 828

【UV打印机】RYPC打印软件教程(二)-软件界面概述

下图是控制软件的主操作界面.将喷绘机的操作规纳为四块,分别为参数设置,任务选择,打印控制,系统维护,对于日常打印而言,只需操作任务选择,打印控制。从而使汲及的操作相对较少,使得系统对普通用户而言简单易用.

Print World的专栏 3601

禾赛PandarXT-16/阿努比LpmsIG1运行lio-sam

课题是多传感器融合,将GNSS/INS/LIDAR做融合定位导航,故考虑使用lio-sam开源算法,在此记录一下我在适配传感器数据时遇到的一些问题;

qq_44705939的博客 2962

JZOJ1260. 牛棚的安排(2017.8B组)

DescriptionFJ的N(1<=N<=50,000)头奶牛实在是太难伺候了,她们甚至有自己独特的产奶时段。当然对于某一头奶牛,她每天的产奶时段是固定的,为时间段A..B(1<=A<=B<=1,000,000),包括时间段A和时间段B。显然,FJ必须开发一个调控系统来决定每头奶牛应该被安排到哪个牛棚去挤奶,因为奶牛们显然不希望在挤奶时被其它奶牛看见。 FJ希望你帮他计算一下: 如果要满足奶牛

puppywolf的博客 683

【YOLO26实战全攻略】09——YOLO26多目标跟踪实战宝典:从原理到智慧园区人流统计全流程

多目标跟踪(MOT)是视频分析的核心技术,解决了单帧检测无法关联目标身份的痛点。本文基于YOLO26轻量化检测模型与ByteTrack跟踪算法,从新手视角出发,系统讲解多目标跟踪的核心原理、环境搭建、实操步骤与工程落地。内容涵盖ByteTrack分层关联策略解析、YOLO26集成跟踪的一行代码实现、配置参数调优、区域计数、轨迹数据提取与热力图可视化,最终通过智慧园区人车流量统计虚拟案例,完整呈现从技术原理到实际应用的全流程。本文注重实用价值,所有代码可直接复现,参数配置附带场景化建议,帮助新手快速上手。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 355

【Big Barn 巨大的牛棚】【转】

农夫约翰想要在他的正方形农场上建造一座正方形大牛棚。他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方。我们假定,他的农场划分成 N x N 的方格。输入数据中包括有树的方格的列表。你的任务是计算并输出,在他的农场中,不需要砍树却能够修建的最大正方形牛棚。牛棚的边必须和水平轴或者垂直轴平行。 格式 EXAMPLE 考虑下面的方格,它表示农夫约翰的农场,‘.'表示没有树的方

geng4512的专栏 1697

Linux安装Docker(图文解说详细版)

第一步,下载docker 下载地址: https://download.docker.com/linux/static/stable/x86_64/ 这次的演示我们使用docker-18.06.3-ce.tgz 这个版本 第二步,上传到云服务器上面 使用rz命令上传或者fltp工具进行上传 第三步,解压文件 第四步,将解压出来的docker文件复制到 /usr/bin/ 目录下 这么做的目的是将docker交给linux自己去管理,类似spring中的ioc(猜测,非正经知识) cp docker

编码人生 1万+

2026AI漫剧放心大胆做!小白也能轻松出片(附保姆级教程)

要是在2025,我大概率会劝他再等等,毕竟那时工具还没这么顺手。但到了2026年的今天,我的回答得很干脆:放心去做,绝对没问题。这一年多来,AI漫剧这块的变化真可谓翻天覆地。过去你想拍个像样的短片,哪怕再简陋,也得凑齐拍摄设备、找场地、找演员,后期剪辑更是折磨。但现在,时代变了,AI已经把创作的门槛踏平了。你不需要请演员,也不用操心灯光布景,更不用为剪辑特效烧钱。一个人,一台电脑,花几天时间就能做一部完整的AI漫剧。你只要有有想表达的故事,突发的灵感,剩下的,都能直接交给AI落地。

欢迎来到鸾姝淡月博客,专为程序员和编程爱好者打造的技术博客。我们分享编程语言趋势、开发工具、编程哲学、职业发展等,助你掌握新技术,优化技能,激发编程热情。 524

{题解}[jzoj1298]牛棚(graze2.pas/c/cpp)

FJ有N(2<=N<=1,500)头牛编号为1到N,FJ新盖了S(N<=S<=1,000,000)个牛棚,编号为1到S,S个牛棚排成一排,相邻牛棚距离为1。 每个牛棚只能住一头牛,每头牛都选择了一个牛棚P_i来休息,当两头牛离得太近时就会变得很暴躁,FJ想移动一些牛到其他牛棚使得他们之间的间距尽可能大,同时FJ又希望这N-1个间距尽可能相似。

FarmerJohn 1858

【C语言学习疑难杂症】第20期:0x00007FF7F2821964处引发的异常0xC0000005写入位置 0x0000000000000

检查代码中是否存在野指针访问的情况,确保在进行写入操作之前,内存已经被正确分配或初始化,并且在使用完毕后进行了正确的释放。空指针访问:代码尝试在空指针地址(0x0000000000000000)处进行写入操作,导致访问冲突。检查代码中是否存在数组越界的情况,确保在进行写入操作之前,数组的索引值在合法范围内。检查代码中是否存在空指针访问的情况,确保在进行写入操作之前,指针已经被正确初始化。野指针访问:代码尝试在已释放或未初始化的内存地址进行写入操作,导致访问冲突。

学无止境 828

【最大流】牛棚安排(jzoj 1259)

题目大意: 有n头牛和m个牛棚,每头牛有自己第1喜欢,第2喜欢……第m喜欢的牛棚(开心度分别为m,m-1,m-2……1),然后读入m个数表示第i个牛棚最多可以进多少头牛,现在让所有牛都进入到牛棚内,问最开心的牛和最伤心的牛开心度之差最小是多少

ssllyf的博客 423

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

牛棚

牛棚Time Limits: 1000 ms Memory Limits: 65536 KB Detailed Limits Description 译题:   FJ有N(2<=N<=1,500)头牛编号为1到N,FJ新盖了S(N<=S<=1,000,000)个牛棚,编号为1到S,S个牛棚排成一排,相邻牛棚距离为1。 每个牛棚只能住一头牛,每头牛都选择了一个牛棚P_i来休息,当

white_elephant的博客 620

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【动态规划】[luoguP1681]最大正方形II

题目发了题解。。我们用map[][]存图 然后对于f[i][j]我们用来表示 到矩阵的第i行第j列可以构造最大为多少的正方形 所以初始化很容易得出 每一个格自身一开始都可以构成一个正方形 因此在读入的时候把每一个f[i][j]设为1 然后我们要取正方形 所以状态转移方程为 fij=min(f(i−1)j,min(fi(j−1),f(i−1)(j−1))+1f_{ij} = min(f_

ars4me 364

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【bzoj2594】 Wc2006—水管局长数据加强版

http://www.lydsy.com/JudgeOnline/problem.php?id=2594(题目链接) 题意   给出一个带边权的无向简单,要求维护两个操作,删除${u,v}$之间的连边;求${u,v}$之间某条路径使路径上的权值最大边最小。 Solution   我们把询问倒过来做,于是删边就变成了加边,然后就可以LCT啦。   mdzz卡了一上午常数,下面讲一讲我卡常...

weixin_30438813的博客 150

【USACO】修理牛棚

题目描述 在一个暴风雨的夜晚,农民约翰的牛棚的屋顶、门被吹飞了。 好在许多牛正在度假,所以牛棚没有住满。 剩下的牛一个紧挨着另一个被排成一行来过夜。 有些牛棚里有牛,有些没有。 所有的牛棚有相同的宽度。 自门遗失以后,农民约翰必须尽快在牛棚之前竖立起新的木板。 他的新木材供应者将会供应他任何他想要的长度,但是供应者只能提供有限数目的木板。 农民约翰想将他购买的木板总长度减到最少。 给出 M(1&...

weixin_30247781的博客 296

【USACO题库】1.3.2 Barn Repair修理牛棚

题目描述 在一个暴风雨的夜晚,农民约翰的牛棚的屋顶、门被吹飞了。 好在许多牛正在度假,所以牛棚没有住满。 剩下的牛一个紧挨着另一个被排成一行来过夜。 有些牛棚里有牛,有些没有。 所有的牛棚有相同的宽度。 自门遗失以后,农民约翰很快在牛棚之前竖立起新的木板。 他的新木材供应者将会供应他任何他想要的长度,但是供应者只能提供有限数目的木板。 农民约翰想将他购买的木板总长度减到最少。 给出 M(1<=

某司机的黑车 1249

【水管接头】的使用方法,较为“独特”

【水管接头】使用方法,较为“独特” 外螺纹端接式水管接头用锌合金材料压铸而成,表面镀锌、磨沙、或镀铬;结构紧密,无气孔,强度高。卡套式水管接头能将无螺纹的钢管与软管连接,省却套丝工序,只需将螺丝旋入即可;结构紧密,强度高。自固...

citan4948的博客 536

笔直的水管 usaco 背包

背包dp入门,需要滚动数组; 1 #include<iostream> 2 #include<cstdio> 3 #include<string> 4 #include<cstring> 5 #include<algorithm> 6 #include<iomanip> 7 #include...

weixin_30750335的博客 344

USACO2010Oct-Soda Machine

usaco2010 Oct-Soda Machine Time Limit:3 SecMemory Limit:128 MB Description To meet the ever-growing demands of his N (1 The field in which the cows graze can be represented as

Mi-Queen 567

【动态规划】入门练习题浅总

逆天,我爱DP()

1 986

IT从业者健康指南:笔直坐姿损脊伤腰

      父母通常导子女坐时要挺直,但英国有医院进行全球首次以磁力共振测试坐姿的研究后发现,保持轻松坐姿原来远较挺直腰板健康。研究发现人类最佳的坐姿是背脊与大腿保持在一百三十五度,即稍微向后倾斜。传统的九十度坐姿因为坐得太直,反而对脊骨和附近肌肉造成不必要压力。办公室员工在长年累月工作下,更会引发慢性背痛等疾病。  135°坐姿最舒适自然  阿伯丁伍登德医院( Woodend Hospi

ohnojack的专栏 931
上一篇: jzoj3033. 【NOIP2012模拟10.17】石子游戏
下一篇: jzoj1763. Gift
SSL_Yyx
博客等级 码龄10年 18粉丝 233原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值