第 34 场 蓝桥·算法入门赛·百校联赛

https://www.lanqiao.cn/oj-contest/newbie-34/

目录

总结

[1. 2026全年天数](#1. 2026全年天数)

[2. 年货搬运](#2. 年货搬运)

[3. 采购沙琪玛](#3. 采购沙琪玛)

[4. 分配年货](#4. 分配年货)

[5. 年货竞猜](#5. 年货竞猜)

[6. 刮刮乐卡](#6. 刮刮乐卡)


总结

第3题:取上界除法

第5题:计算时将n*(n+1)/2拆成两部分可以将一次T的时间复杂度从n降低到根号n

第6题:s.erase()用法

1. 2026全年天数

cpp 复制代码
#include <iostream>
using namespace std;
int main()
{
    cout << 365;
    return 0;
}

2. 年货搬运

cpp 复制代码
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
    int n, k;
    cin >> n >> k;
    vector<int> s(n);
    for (int i = 0; i < n; i++)
    {
        cin >> s[i];
        if (s[i] > k)
        {
            cout << -1;
            return 0;
        }
    }
    int ans = 0;
    sort(s.begin(), s.end());
    int left = 0;
    int right = n - 1;
    while (left <= right)
    {
        if (s[left] + s[right] <= k)
        {
            ans++;
            left++;
            right--;
        }
        else
        {
            ans++;
            right--;
        }
    }
    cout << ans;
    return 0;
}

3. 采购沙琪玛

cpp 复制代码
#include <iostream>
using namespace std;
int main()
{
    int n;
    cin >> n;
    int ans = 0x3f3f3f3f;
    int Amax = (n + 99) / 100;
    ans = min(Amax * 100, ans);
    int A = n / 100;
    n = max(0, n - A * 100);
    int Bmax = (n + 19) / 20;
    ans = min(A * 100 + Bmax * 30, ans);
    int B = n / 20;
    n = max(0, n - B * 20);
    int C = n;
    ans = min(C * 2 + B * 30 + A * 100, ans);
    cout << ans;
    return 0;
}

4. 分配年货

cpp 复制代码
#include <iostream>
using namespace std;
void solve()
{
    int n;
    cin >> n;
    if (n <= 2)
    {
        cout << -1 << endl;
        return;
    }
    cout << n / 3 << endl;
}
int main()
{
    int t;
    cin >> t;
    while (t--)
    {
        solve();
    }
    return 0;
}

5. 年货竞猜

计算时将n*(n+1)/2拆成两部分可以将一次T的时间复杂度从n降低到根号n

cpp 复制代码
#include <iostream>
using namespace std;
#define int long long
void solve()
{
    int n;
    cin >> n;
    int a, b;
    if (n % 2 == 0)
    {
        a = n / 2;
        b = n + 1;
    }
    else
    {
        a = n;
        b = (n + 1) / 2;
    }
    int cntA = 0, cntB = 0;
    for (int i = 1; i * i <= a; i++)
    {
        if (a % i == 0)
        {
            cntA += 2;
            if (i * i == a)
            {
                cntA--;
            }
        }
    }
    for (int i = 1; i * i <= b; i++)
    {
        if (b % i == 0)
        {
            cntB += 2;
            if (i * i == b)
            {
                cntB--;
            }
        }
    }
    int ans = cntA * cntB;
    cout << ans << endl;
}
signed main()
{
    int t;
    cin >> t;
    while (t--)
    {
        solve();
    }
    return 0;
}

6. 刮刮乐卡

cpp 复制代码
#include <iostream>
using namespace std;
int main()
{
    string s;
    cin >> s;
    for (int i = (int)s.size() - 2; i >= 1; i--)
    {
        if (s[i - 1] == 'L' && s[i] == 'Q' && s[i + 1] == 'Q')
        {
            s.erase(i - 1, 2);
        }
    }
    cout << s << endl;
    return 0;
}
相关推荐
ZhengEnCi1 小时前
Agent 架构怎么选:从单 Agent 到多 Agent 编排的选型决策指南
算法·架构
秋天的怀念_David2 小时前
第二十二夜 · 数字迷雾
java·程序人生·算法
Pniubi2 小时前
力扣283移动零(双指针法)
算法·leetcode·职场和发展
hhb_6182 小时前
大模型落地三重优化实战
人工智能·算法·机器学习
云和数据.ChenGuang2 小时前
光哥说Python RAG 系统需要哪些评估指标:从检索到生成的全链路评测指南
网络·人工智能·python·算法·langchain
2601_970703834 小时前
工业除湿机租赁:把一份租金合同拆开看
大数据·数据结构·算法·数据库架构·推荐算法
心中有你02144 小时前
Java实现Dijkstra最短路径算法(邻接表 + 优先队列)
java·数据库·算法
ZhengEnCi5 小时前
同样的模型,为什么本地和云 API 差别那么大:量化精度、聊天模板与采样参数的三大元凶
人工智能·算法·llm
Flynn Liang5 小时前
RAG 答非所问/幻觉怎么破?Spring AI QuestionAnswerAdvisor 召回优化实战(TopK/重排/混合检索)
人工智能·算法·spring·rag·幻觉·springai
liminla!6 小时前
SQL 从入门到进阶:语法速查与实战练习(完整优化版)
数据库·sql·算法