ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

集训第一天心得

2022-07-18 00:36:44  阅读:152  来源: 互联网

标签:10 frac 挑剔 第一天 int ans 美味 心得 集训


集训第一天心得

一.收获

  1. 当要求出一下式子的结果时,时间效率较高的处理方法:

    int a[maxn],ans;
    for(int i=1;i<=n;i++){
        for(int e=i+1;e<=n;e++){
            for(int j=e+1;j<=n;j++){
    		ans+=a[i]*a[e]*a[j];
            }
    	}
    }
    

    时间效率 $ O(n^3) $

    int a[maxn],ans;
    int tot,totway;
    for(int i=1;i<=n;i++){
        ans+=totway*a[i];
        totway+=tot*a[i];
        tot+=a[i];
    }
    

    时间效率 $ O(n) $

    原理解释:讲不清,自行体会

  2. 二分

    • 给定\(n\)个元素的数组\(a_i\)和\(m\)个元素的数组\(b_i\),拿每个\(a_i\)除以\(b_j\)得到一个商。问这\(n∗m\)个商中第\(k\)大值是多少。输出\(7\)位小数。

    • \(n, m≤10^5, k≤10^9\),且数组元素为\(1\)到\(10^9\)的整数。

    思路:先对\(b,a\)排序。二分一个商,分别求出对于每一个\(b\)有多少个\(a\)满足它。\(O(m\log n\log 10^9)\)

    优化:我们递增的枚举\(b\)中元素,那么满足商要求的\(a\)的个数只会越来越多,这样整体上最终对a也会递增的扫一遍。最终总的时间复 杂度\(O(m+n)\log 10^9\)

    • 有\(n\)个人到一家餐馆点菜。这家餐馆总共有\(m\)道菜,每一道菜都有两个属性——美味度和价格。这n个人每周都会来一次,每次只会点一道菜或不点。在这\(n\)个人中,有\(p\)个人比较挑剔,他们只能接受美味度大于等于一定值\(a_i\)的菜;有\(q\)个人比较贫穷,他们只能点价格小于等于一定值\(b_i\)的菜。

    • 现在请你计算:这些人至少要来几周,才可能能把餐馆的所有的菜都点过一遍?

    • \(p+q≤n≤50000,m≤200000\)

      思路:二分时间(\(ans\))。先对菜用美味度降序排序,对挑剔的人降序排列可以发现每个挑剔的人能吃的菜都是排序之后数组的一段前缀,并且后一个挑剔的人能吃到的菜一定包含前一个人的。把菜按美味度从大到小扔到一个价格的大根堆里,一共扔\(p\)次,每次扔的都是第\(i\)挑剔的人可以取的,然后取出\(ans\)个(不足则全取),作为第\(i\)挑剔的人吃的\(ans\)道菜。接下来再让穷的人尽量吃,看剩下的菜是否多余正常人的个数\(\times ans\)

  3. 三分

    • \(t\)组数据,\(n\)个选手参加比赛,比赛分为跑步和骑车两项,但总长固定。已知每位选手进行每种项目时的速度,求是否可以通过调整各项目长度使某指定选手获胜;如果可以获胜还需输出与第二名的耗时差最大值及此时各项目长度。

    • \(n⩽20, t⩽100\)

      不妨设跑步长度为\(x\),易得(要赢的人)\(t_m=\frac x {v_1} + \frac {L-x} {v_2} =(\frac{1}{v_1}-\frac{1}{v_2})x+\frac{1}{v_2}L\)。

      对于与其他人的时间差 \(d_{t}=-(\frac{1}{v_1}+\frac{1}{v_{ti}}-\frac{1}{v_2}-\frac{1}{v_{t2}})x+(\frac{1}{v_2}-\frac{1}{v_{t2}})L\) 显然这是一个一次函数。

      但是我们要求的是第二名的耗时差最大值,即上面的一次函数取最小值中的最大值。

      三分即可

    • 在一个2维平面上有两条传送带,分别为线段AB和线段CD。小燚在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R。现在小燚想从A点走到D点,他想知道最少需要走多长时间。

      思路:直接在\(AB\) 上三分,再在 \(CD\) 上三分即可。

标签:10,frac,挑剔,第一天,int,ans,美味,心得,集训
来源: https://www.cnblogs.com/LQX-OI/p/16488995.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有