首页 > 其他分享 >CF1914D Three Activities

CF1914D Three Activities

时间:2024-01-22 21:22:58浏览次数:29  
标签:CF1914D Activities int Three cin ++ second ans first

题目大意

给定三个数组 \(a, b, c\) 找三个互不相同的整数 \(i, j, k\) 使得 \(a_i + b_j + c_k\) 的值最大.

思路

首先想到的当然是枚举 \(i, j, k\) 然后找到最大值,但这种方法的时间复杂度是 \(O(n^3)\) ,显然会喜提 \(TLE\) .

当然由瞪眼法可知,因为我们只需要找到 \(a_i + b_j + c_k\) 的最大值,所以我们会考虑尽可能取三个数组中更大的数。因为不能取到下标重合的数,考虑到即使 \(a, b\) 取完后, \(c\) 也最多选到第三大的数,所以我们只需要找到 \(a, b, c\) 中各自的前三大的数,然后遍历一下找到最大值即可,时间复杂度 \(O(n\log{n})\) .

代码

#include <bits/stdc++.h>
#define all(x) (x).begin(), (x).end()
#define int long long
#define endl '\n'
using namespace std;
void solve()
{
    int n;
    cin >> n;
    vector<pair<int, int>> a(n), b(n), c(n);
    for (int i = 0; i < n; i++)
    {
        cin >> a[i].first;  // first记录数值
        a[i].second = i;    // second记录下标
    }
    for (int i = 0; i < n; i++)
    {
        cin >> b[i].first;
        b[i].second = i;
    }
    for (int i = 0; i < n; i++)
    {
        cin >> c[i].first;
        c[i].second = i;
    }
    sort(all(a));
    sort(all(b));
    sort(all(c));   //排序,用于取各自最大的三个数
    int ans = 0;
    for (int i = n - 3; i < n; i++)
    {
        for (int j = n - 3; j < n; j++)
        {
            if (a[i].second == b[j].second)
                continue;   // 下标相同的不符合题意
            for (int k = n - 3; k < n; k++)
            {
                if (a[i].second == c[k].second || b[j].second == c[k].second)
                    continue;
                ans = max(ans, a[i].first + b[j].first + c[k].first);
            }
        }
    }
    cout << ans << endl;
}
signed main()
{
    ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
    int t;
    cin >> t;
    while (t--)
    {
        solve();
    }
    return 0;
}

标签:CF1914D,Activities,int,Three,cin,++,second,ans,first
From: https://www.cnblogs.com/Zinc-Acetate/p/17981104

相关文章

  • GIS融合之路(二)CesiumJS和ThreeJS深度缓冲区整合
    在这篇文章开始前再次重申一下,山海鲸并没有使用ThreeJS引擎。但由于ThreeJS引擎使用广泛,下文中直接用ThreeJS同CesiumJS的整合方案代替山海鲸中3D引擎和CesiumJS整合。系列传送门:山海鲸可视化:GIS融合之路(一)技术选型CesiumJS/loaders.gl/iTowns?文章开始之前大家可以看下这个视......
  • 一行代码解决Three.js中只能在一侧看到物体的问题
    项目场景:  因为该项目比较复杂庞大,在此就简单介绍一下:  通过Three.js创建若干个物体进行了组装,从而形成了一个类似眼球模拟模型的项目,用户可以通过拖动鼠标来达到控制视角(摄像机)的目的,以此来观察整个眼球状态。Image1Three.js眼球模型  注:下面所说的正视为从红线正轴......
  • [LeetCode] 1363. Largest Multiple of Three 形成三的最大倍数
    Givenanarrayofdigits digits,return thelargestmultipleof three thatcanbeformedbyconcatenatingsomeofthegivendigitsin anyorder.Ifthereisnoanswerreturnanemptystring.Sincetheanswermaynotfitinanintegerdatatype,returnt......
  • Three.js——十五、Box3、相机动画、lookAt()视线方向、管道漫游案例、OrbitControls
    正投影相机正投影相机和透视相机的区别如果都以高处俯视去看整个场景,正投影相机就类似于2d的可视化的效果,透视相机就类似于人眼观察效果调整left,right,top,bottom范围大小如果你想整体预览全部立方体,就需要调整相机的渲染范围,比如设置上下左右的范围。使用场景:正投影可以......
  • Three.js 纹理贴图的实现
    在线工具推荐:3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.jsAI自动纹理开发包 - YOLO虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎纹理贴图简介当我们创建一个网格时,比如我们不起眼的立方体,我们传入两个组件:几......
  • Threejs——十四、关于深度冲突、重叠、以及加载模型进度条效果实现(附完整代码)
    深度冲突两个模型重叠的模型,通过浏览器旋转预览,会发现模型旋转的时候会发生闪烁。这种情况,主要是两个模型重合,电脑分不清谁在前谁在后,这种情况,可以理解为深度冲突Z-fighting。functionaddBox(){constgeometry=newTHREE.BoxGeometry(10,10,10);//材质constmater......
  • Three.js——十三、自定义大小画布、UI交互按钮以及3D场景交互、渲染画布为文件(图片)
    画布全屏以及自定义大小画布<!--canvas元素默认是行内块元素--><divclass="model"style="background-color:#ff0000;"width="300"height="180"></div>画布随窗口变化//画布跟随窗口变化window.onresize=function(){constwidth......
  • Three.js——十二、MeshPhysicalMaterial清漆层、粗糙度、物理材质透光率以及折射率(结
    环境贴图作用测试MeshPhysicalMaterial清漆层MeshPhysicalMaterial和MeshStandarMaterial都是拥有金属度metalness、粗糙度roughness属性的PBR材质,MeshPhysicalMaterial是MeshStandarMaterial的子集,除了继承了他的这些属性以外,还新增了清漆、透光率、反射率、光泽、折射率等等清漆......
  • 【可视化库对比】ECharts、AntV、D3和Three
    本文写作目的:大家在使用可视化库创作可视化作品的时候,可能会产生这样的问题:“现如今成熟的可视化库有这么多,我到底该选择哪一个呢?”这其实也是我在学习数据可视化课程的时候面临的一个问题。因此本文旨在对比上述广泛被使用到的4个前端可视化库:Echart、AntV、D3和Three,了解它们的......
  • VUE3 + Three.js 坑
    VUE3+Three.js坑1.问题描述将scene、camera、renderer、controls等变量用reactive变成响应式时,页面渲染会报错:three.module.js?5a89:24471UncaughtTypeError:'get'onproxy:property'modelViewMatrix'isaread-onlyandnon-configurabledatapropertyontheprox......