首页 > 其他分享 >计蒜客信息学2023年2月普及组模拟赛

计蒜客信息学2023年2月普及组模拟赛

时间:2023-02-27 21:23:38浏览次数:58  
标签:信息学 limits min int sum mn 2023 计蒜客 out

T1:外卖

你当然可以通过直接全排列枚举走的顺序通过本题,但那样太麻烦了

其实本题可以分为以下三种情况:

  1. \(A\) 点在最左侧,那么最短距离 \(=\) 最大值 \(-\) 最小值
  2. \(A\) 点在最右侧,那么最短距离 \(=\) 最大值 \(-\) 最小值
  3. \(A\) 点在中间,那么最短距离 \(=\) 最大值 \(-\) 最小值 + \(\min(\) 最大值 \(-A\),最小值 \(-A)\)

image

代码实现
#include <bits/stdc++.h>

using namespace std;
using ll = long long;

int main() {
    freopen("take_out.in", "r", stdin);
    freopen("take_out.out", "w", stdout);
    
    int a, b, c, d;
    cin >> a >> b >> c >> d;
    
    int mn = min(min(a, b), min(c, d));
    int mx = max(max(a, b), max(c, d));
    
    ll ans = mx-mn;
    if (mn < a and a < mx) ans += min(a-mn, mx-a);
    cout << ans << '\n';
    
    return 0;
}

T2:区间问题 I

首先,给定 \(l, r\),如何快速计算 \(\sum\limits_{i=l}^r a_i^2 - \sum\limits_{i=l}^r a_i -k(r-l+1)\) ?

令 \(f(x) = \sum\limits_{i=1}^x a_i^2 - \sum\limits_{i=1}^x a_i -kx = \sum\limits_{i=1}^x (a_i^2 - a_i - k)\)

那么我们可以发现,\(f(x)\) 是 \(a_i^2 - a_i - k\) 的前缀和,所以原式可以写作 \(f(r) - f(l-1)\)

想要让 \(f(r) - f(l-1)\) 尽可能大,应该最小化 \(f(l-1)\),因此在计算 \(f(i)\) 时,还需维护 \(mn = \min\limits_{0 \leqslant j \leqslant i-1} f(j)\),因此答案为 \(\max(f(i)-mn)\) 。

代码实现
#include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (n); ++i)

using namespace std;
using ll = long long;

int main() {
    freopen("interval.in", "r", stdin);
    freopen("interval.out", "w", stdout);
    
    int n, k;
    cin >> n >> k;
    
    vector<ll> a(n);
    rep(i, n) cin >> a[i];
    
    vector<ll> b(n);
    rep(i, n) b[i] = a[i]*a[i] - a[i] - k;
    
    vector<ll> s(n);
    rep(i, n) s[i+1] = s[i]+b[i];
    
    ll ans = -1e18, mn = 0;
    for (int i = 1; i <= n; ++i) {
        ans = max(ans, s[i]-mn);
        mn = min(mn, s[i]);
    }
    
    cout << ans << '\n';
    
    return 0;
}

标签:信息学,limits,min,int,sum,mn,2023,计蒜客,out
From: https://www.cnblogs.com/Melville/p/17161945.html

相关文章

  • [20230227]探究v$session.SQL_EXEC_ID在共享池(补充).txt
    [20230227]探究v$session.SQL_EXEC_ID在共享池(补充).txt--//http://blog.tanelpoder.com/2011/10/24/what-the-heck-is-the-sql-execution-id-sql_exec_id/--//上个星期测......
  • C/C++数据结构课程设计任务书[2023-02-27]
    C/C++数据结构课程设计任务书[2023-02-27]文华学院数据结构课程设计任务书一、 课程设计题目1. 家谱管理系统的设计与实现实现对某家族成员信息的管理,包含建......
  • 2023.2.27每日总结
    今天课堂练习代码如下packagektlx01;importjava.io.BufferedReader;importjava.io.File;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOExc......
  • 2023.2.27——软件工程日报
    所花时间(包括上课):4h代码量(行):0行博客量(篇):1篇今天,上午复习了一些计算机网络的知识点,下午学习建民老师的课程。我了解到的知识点:1.复习了StringBuffer2.利用算法计算单......
  • #yyds干货盘点#【愚公系列】2023年02月 .NET/C#知识点-程序运行计时的总结
    前言在分析一个程序算法时间复杂度时,可以使用统计程序或程序片段的计算时间有助于理解程序性质,许多语言或系统都提供了内部计时功能。下面主要是讲解C#中的计时方式:Stop......
  • 2023.年2.27日软工日报
    今天下午又是四节的软件工程,老师讲了讲软件工程的定义。然后后边就是测试。课堂练习01题目:计算最长英语单词链。一、题目内容:大家经常玩成语接龙游戏,我们试一试英语的......
  • 未记录的 笔记 2023-02-27 在豪哥聊天框里面
      这个路径没有在路由表看到既然没有看到就是没有经过数据库 没有经过数据库就是不会进过滤器那2个skil(1L)方法,那么就是手动在后端代码前面加sbgl就行  后......
  • 北京智游科技(爱加密)-渗透测试实习生-2023-02-27
    一、面试问题环节1.先做个简单的自我介绍吧2.sql注入的原理、分类?3.sql注入的绕过?简单讲一些4.ssrf了解吗?能造成哪些危害?对应的用到的协议有哪些?5.提权了解吗?讲一讲Wi......
  • 2023.2.27课堂测验
    今天在课堂上进行了,《飘》英文的最长单词链的计算。首先,我进行了流程的构思,先进行单词的首尾读取然后进行,第一个单词尾与第二单词的首进行比较。最后进行统计。在课堂......
  • 2023 省选联测41 - ?
    2023省选联测41A.冤家路窄找出\(Deg\)用总路径数减去相遇的路径数code#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefunsigne......