当前位置: 首页 > news >正文

P3137 [USACO16FEB] Circular Barn S

P3137 [USACO16FEB] Circular Barn S

思路:数据范围为O(n^2)那么因此我们可以暴力,那么如何进行构造呢?首先假设一头奶牛在a,一头在b,如果要使一个到b,另一个到c,(a<b<c),那肯定选择a的奶牛到b,b的奶牛到c的花费更小,那么我们可以保证每个地方必然有一个奶牛要移动,可以用优先队列存,提取最前面的奶牛,然后计算最前面的奶牛到这个点的距离,那么起始点怎么判断?就可以考虑用暴力的写法一个个去枚举。最后计算最小答案即可。

代码:

#include <bits/stdc++.h>
#define int long long
#define fi first 
#define se second
#define all(v) v.begin(),v.end()
using namespace std;
const int inf = 0x3f3f3f3f3f3f3f;
const int N = 5005;
int a[N];
int n;void solve(){cin>>n;for(int i=1;i<=n;i++)cin>>a[i];for(int i=n+1;i<=2*n;i++)a[i] = a[i-n];int ans = inf;priority_queue<int,vector<int>,greater<int>>q;for(int i=1;i<=n;i++){bool flag = true;int res = 0;for(int j=i;j<=i+n-1;j++){if(q.size() == 0 && a[j] == 0){flag = false;break;}int cnt = a[j];while(cnt--)q.push(j);int x = q.top();q.pop();res += (j-x)*(j-x);}if(!flag)continue;ans = min(ans,res);}cout<<ans<<"\n";}signed main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int T = 1;//cin>>T;while(T--){solve();}return 0;
}

http://www.lryc.cn/news/465597.html

相关文章:

  • yocto编辑软件包-devtool的使用方法
  • 51单片机快速入门之 串行通信 2024/10/21
  • webpack 老项目升级记录:node-sass 规定的 node v8 提升至支持 node v22
  • 【wpf】08 xml文件的存取操作
  • 即时通讯代码优化
  • jmeter学习(8)界面的使用
  • 记录一次hiveserver2卡死(假死)问题
  • 【ios】在 SwiftUI 中实现可随时调用的加载框
  • 字符、解释型语言、编程语言的互操作、输出
  • 基于Python的自然语言处理系列(39):Huggingface中的解码策略
  • 如何将视频格式转为mp4?好好看看下面这几个方法
  • 景区智慧公厕系统,监测公厕异味,自动清洁除臭
  • GitLab CVE-2024-6389、CVE-2024-4472 漏洞解决方案
  • hashCode的底层原理
  • hadoop_hdfs详解
  • 【Linux】Linux命令行与环境变量
  • 改变函数调用上下文:apply与call方法详解及实例
  • k8s中的微服务
  • 树莓派--AI视觉小车智能机器人--1.树莓派系统烧入及WiFi设置并进入jupyterlab
  • MacOS安装BurpSuite
  • 【AI工具大全】《史上最全的AI工具合集》
  • qt继承结构
  • 【HCIA复习作业】综合拓扑实验(已施工完)
  • 网络基础知识:交换机关键知识解析
  • 基于System.js的微前端实现(插件化)
  • MedSAM2调试安装与使用记录
  • Linux 进程终止和进程等待
  • 如何查看默认网关地址:详细步骤
  • 什么是方法的返回值?方法有哪几种类型?静态方法为什么不能调用非静态成员?静态方法和实例方法有何不同?
  • Qt开发——Qt项目打包、整合以及生成安装包保姆级教程(Windows系统)