首页 > 其他分享 >图形思维

图形思维

时间:2023-11-21 15:48:06浏览次数:23  
标签:思维 ma int 线段 mi 数组 ans 图形

题目传送门:Problem - D - Codeforces

题目大意:给定长度为n的数组a和b,定义b数组的价值为\sum _{i = 1}^{n}|a_{i} - b_{i}|,现可以交换一次b数组中的任意两个元素,求b数组的价值最大值

思路:绝对值问题可以放在数轴上去解决。绝对值即为区间长度。

 

 

ps:摘抄大佬

每个对应的 |ai - bi| 就是一条线段,我们只能交换一次,对于每每两条的线段一共就有如上图四种的情况,所以我们要增大我们的贡献值就只有第二种情况可以满足,通俗的说就是找两条相差最远的两条线段他们产生的贡献值就是 2*(l2 - r1) ,代码如下:

#include<bits/stdc++.h>
#define int long long
using namespace std;
typedef pair<int, int> PII;
const int N = 1e6 + 110, mod = 1e9 + 7;
int ans = 0;
int a[N];
int b[N];
void solve() {
    int n;
    cin >> n;
    for (int i = 1; i <= n; i++) cin >> a[i];

    for (int i = 1; i <= n; i++) cin >> b[i];

    int mi_r = 1e9;
    int ma_l = 0;
    ans = 0;
    for (int i = 1; i <= n; i++) {
        if (a[i] > b[i]) swap(a[i], b[i]);
        mi_r = min(mi_r, b[i]);

        ma_l = max(ma_l, a[i]);
        ans += abs(a[i] - b[i]);
    }
    if (mi_r < ma_l) {
        cout << ans + 2 * (ma_l - mi_r)<<"\n";
    }else{
        cout<<ans<<'\n';
    }

}
signed main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    int T;
    cin >> T;
    while (T--) {
        solve();
    }
    return 0;
}

 

标签:思维,ma,int,线段,mi,数组,ans,图形
From: https://www.cnblogs.com/spiderflower/p/17846691.html

相关文章

  • 软件测试/人工智能|思维导图很难画,ChatGPT来帮你
    简介在我们日常的软件测试工作中,测试用例是非常重要的一环,但是很多时候我们并不是第一时间就设计测试用例的,我们会先根据需求先制定一个思维导图,后面再去设计我们的测试用例,有的公司更是会通过思维导图来设计测试用例的。本文就来给大家介绍一下如何使用ChatGPT来生成思维导图。......
  • 分享一个 Docker 图形化工具 Portainer安装并实现远程访问
    Portainer是一个轻量级的容器管理工具,可以通过Web界面对Docker容器进行管理和监控。它提供了可视化的界面,使得用户可以更加方便地管理Docker容器、镜像、网络和数据卷等资源。下面介绍如何将本地Portainer管理界面结合cpolar内网穿透工具实现远程任意浏览器访问!远程访问......
  • 利用jupyter绘图时,不显示图形,显示<Axes: >的解决办法
    我们经常会使用jupyter处理一些数据绘图,在pycharm中比较麻烦,在一次学校布置的作业中,要求完成图形的绘画处理,结果根据查找的绘图方法。发现利用seabron模块渲染运行之后,没有出现图形,出现了<Axes:>r原代码:importnumpyasnpimportsympyasspimportpandasaspdimportmatplot......
  • opengl开发:win11已阻止应用程序访问图形硬件如何处理?
     开发中出现这种问题: 请到设置里面搜索:图形设置,浏览,加入exe,选择选项然后设置。不要选择让windows决定即可。 ......
  • 计算机图形:图元、片元、光栅化等基本概念
    几种“点”的概念顶点(vertex):图元(如线段、三角形、圆等几何图形)由顶点+边组成,由用户及其建立的模型确定.图元(primitive):描述对象的几何要素的输出图元,称为几何图元,简称图元.如点、直线段、圆、二次曲线、曲面等.片元(fragment):光栅化过程的产物,光栅化将一个图元转变成二维图......
  • 短视频app源码,图形和短信验证码的自动识别获取
    短视频app源码,图形和短信验证码的自动识别获取图形验证码识别   driver.save_screenshot('v_code.png') #先把整个页面截图下来  element=driver.find_element_by_id('sccImg') #定位验证码元素  print("验证码元素位置:",element.location)  print(......
  • 在线CAD SDK前端库绘制规则多边形图形
    前言在CAD(计算机辅助设计)领域,绘制多边形是常见的任务之一。MxCAD是一款专注在线CAD的前端库,提供了丰富的绘图和设计功能,使得绘制多边形变得轻松而灵活。本文将带领您通过使用MxCAD实现绘制多边形的过程,深入了解其基本概念和功能。mxcad 是一个基于TypeScript的前端库,专为......
  • Docker部署mind-map | 一个 Web 思维导图
    一、介绍思维导图在日常工作中扮演着不可或缺的角色,不论你从事哪个行业,制作思维导图都能使你的工作流程更加清晰、有条理。今天,我要向您推荐一个可以私有化部署的思维导图项目。这个项目支持直接使用docker进行部署,而且操作简单,只需按照教程进行操作即可。此外,这个项目可以在群晖......
  • 计算机图形学·
    目录几何建模基本原理拉普拉斯算子高斯散度定理表面重建隐式表面重建MLSSDF泊松重建几何建模基本原理拉普拉斯算子高斯散度定理表面重建隐式表面重建MLSSDFMLSSDF是一种常用于描述三维物体表面的格式。MLS代表“MovingLeastSquares”,是一种基于最小二乘法的曲面拟合......
  • 计算机图形:计算法向量
    目录一元向量值函数及其导数一元向量值函数概念一元值函数的导数空间曲线的切线和法平面曲面的切平面与法线示例:求椭球体表面法向量参考一元向量值函数及其导数一元向量值函数概念已知空间曲线Γ(大写的γ)参数方程:\[\tag{1}\begin{cases}x=\varphi(t),\\y=\psi(t),t\in[\al......