【百度之星2023】初赛第一场 补题(部分)

news2024/11/24 18:31:21

目录

  • BD202301 公园
  • BD202302 蛋糕划分
    • 解法1
    • TODO 解法2
  • TODO BD202303 第五维度
  • TODO BD202304 流水线搭积木
  • BD202305 糖果促销

不幸因为码蹄集客户端的bug,导致没法正常参与比赛,只好事后补了

BD202301 公园

题目1内容
样例输入:

4 4 3
1 2 8 8
1 4
2 3
3 4
4 7
2 5
5 6
6 8
7 8

样例输出:

22

首先BFS求从小度、度度熊和终点到每个点的举距离。
然后枚举每个点,求在该点会合的答案。
O(m+n)

#include<bits/stdc++.h>

using namespace std;
int xiaoValue, xiongValue, saveValue;
int xiao, xiong, aim;
int m;
const int N = 40000 + 100;
vector<int> e[N];
int dis[3][N];

void bfs(int id, int rt) {
    dis[id][rt] = 0;
    queue<int> q;
    q.push(rt);
    while (!q.empty()) {
        int u = q.front();
        q.pop();
        for (const auto &v: e[u]) {
            if (dis[id][v] > dis[id][u] + 1) {
                dis[id][v] = dis[id][u] + 1;
                q.push(v);
            }
        }
    }
}

int main() {
    cin >> xiaoValue >> xiongValue >> saveValue;
    cin >> xiao >> xiong >> aim;
    cin >> m;
    for (int i = 0, x, y; i < m; i++) {
        scanf("%d%d", &x, &y);
        e[x].push_back(y);
        e[y].push_back(x);
    }
    memset(dis, 0x3f, sizeof(dis));
    bfs(0, xiao);
    bfs(1, xiong);
    bfs(2, aim);
    using LL = long long;
    const int mx = dis[0][0];
    LL ans = LONG_LONG_MAX;
    for (int u = 1; u <= aim; u++) {
        if(dis[0][u]==mx || dis[1][u]==mx || dis[2][u]==mx){
            continue;
        }
        LL now = (LL) dis[0][u] * xiaoValue + (LL) dis[1][u] * xiongValue +
                 (LL) dis[2][u] * (xiaoValue + xiongValue - saveValue);
        ans = min(ans, now);
    }
    cout << (ans==LONG_LONG_MAX?-1:ans) << endl;
    return 0;
}

BD202302 蛋糕划分

题目2内容

解法1

按位枚举横切,dp处理纵切。
dp[已划分段数][截止位置]。dp[0][0]=0,其它dp[i][j]=INF。
枚举之前的截止位置,从(已划分段数-1)和之前的截止位置和新一段若干块的最大值,对枚举得到的所有结果求最小值。
O(n^4*2^(n-1))
按说过不了,但实际能过,可能实际比较“稀疏”,所以常数比较小。
应该可以进一步预处理成O(n^3*2^(n-1))

#include<bits/stdc++.h>

using namespace std;
const int N = 15;
const int NN = 35;
int n, k;
int mp[NN][NN], s[NN][NN];

inline int getSum(int xl, int xr, int yl, int yr) {
    return s[xr][yr] - s[xl - 1][yr] - s[xr][yl - 1] + s[xl - 1][yl - 1];
}

int cal(vector<int> &pos, int l, int r) { // O(n)
    int mx = 0;
    for (int i = 1; i < pos.size(); i++) {
        mx = max(mx, getSum(pos[i - 1] + 2, pos[i] + 1, l, r)); // 0 1
    }
    if (!pos.empty()) {
        int fst = getSum(1, pos.front() + 1, l, r);
        int lst = getSum(pos.back() + 2, n, l, r);
        mx = max(mx, max(fst, lst));
    } else {
        int all = getSum(1, n, l, r);
        mx = max(mx, all);
    }
    return mx;
}

inline int work(vector<int> &pos, int rest) {
    int dp[NN][NN];
    memset(dp, 0x3f, sizeof(dp));
    dp[0][0] = 0;
    ++rest;
    for (int i = 1; i <= rest; i++) { // O(n^3)
        int ed = n - (rest - i);
        for (int j = i; j <= ed; j++) {
            for (int p = i - 1; p < j; p++) {
                if (dp[i - 1][p] < dp[i][j]) {
                    int now = cal(pos, p + 1, j);
                    dp[i][j] = min(dp[i][j], max(dp[i - 1][p], now));
                }
            }
//            printf("dp[ %d ][ %d ] = %d\n", i, j, dp[i][j]);
        }
    }
    return dp[rest][n];
}

int main() {
    cin >> n >> k;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            cin >> mp[i][j];
            s[i][j] = s[i - 1][j] + s[i][j - 1] - s[i - 1][j - 1] + mp[i][j];
        }
    }
    int ans = 1000 * 20 * 20;
    for (int i = 0; i < (1 << (n - 1)); i++) { // O(2^(n-1))
        vector<int> pos;
        {
            for (int p = 0; (1 << p) <= i; p++) {
                if (i & (1 << p)) {
                    pos.push_back(p);
                }
            }
        }
        if (pos.size() > k) {
            continue;
        }
        int now = work(pos, k - pos.size());
//        printf("%o: %d\n", i, now);
        ans = min(ans, now);
    }
    cout << ans << endl;
    return 0;
}

TODO 解法2

枚举横切,然后二分答案,每次划分尽可能推迟到较靠后的位置。

TODO BD202303 第五维度

TODO BD202304 流水线搭积木

BD202305 糖果促销

题目5内容

3
3 4
4 5
2 7
3
4
4

至少要买一颗糖果。用糖纸换的不需要买。
小心负数被除会向负无穷取整。

#include<bits/stdc++.h>

using namespace std;

int main() {
    int T;
    scanf("%d", &T);
    while (T--) {
        int p, k;
        scanf("%d%d", &p, &k);
        if (k == 0) {
            puts("0");
        } else {
            printf("%d\n", k - (k - 1) / p);
        }
    }
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/939608.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AD如何进行汉化

AD如何进行汉化 通过安装好AD后&#xff0c;默认都是英文界面模式&#xff0c;如果想汉化为中文模式&#xff0c;需要点击“DXP”->“参数选择”&#xff0c;打开界面如下&#xff1a; 然后将上图“本地化”下面的方框勾选上&#xff0c;点击“应用”&#xff0c;“确定”…

Java通过报表技术JXL和POI实现Excel导入导出操作

前言 报表[forms for reporting to the higher organizations]&#xff0c;就是向上级报告情况的表格。简单的说&#xff1a;报表就是用表格、图表等格式来动态显示数据&#xff0c;可以用公式表示为&#xff1a;“报表 多样的格式 动态的数据”。 注意&#xff1a;使用附件…

删除流氓360首页

不管你使用什么浏览器都很容易中招360给你自动设置的流氓首页&#xff0c;流氓厂石锤了。 你在浏览器设置新的首页一样无效&#xff0c;比如 完全没有卵用&#xff0c;以前这样是可以生效的&#xff0c;最近几天突然不行了&#xff0c;这简直流氓的不行&#xff0c;而且 细心…

【Java 中级】一文精通 Spring MVC - JSON 处理(九)

&#x1f449;博主介绍&#xff1a; 博主从事应用安全和大数据领域&#xff0c;有8年研发经验&#xff0c;5年面试官经验&#xff0c;Java技术专家&#xff0c;WEB架构师&#xff0c;阿里云专家博主&#xff0c;华为云云享专家&#xff0c;51CTO 专家博主 ⛪️ 个人社区&#x…

【rar转zip】WinRAR转换压缩包格式

不知道大家有没有遇到需要转换压缩包格式的问题&#xff0c;今天想和大家分享rar压缩包改成zip格式的方法。 方法一&#xff1a; 直接修改rar压缩包的后缀名变为zip&#xff0c;就可以修改压缩包文件格式了 方法二&#xff1a; 先将rar压缩包解压出来&#xff0c;然后再将解…

Stable Diffusion WebUI 整合包

现在网络上出现的各种整合包只是整合了运行 Stable Diffusion WebUI&#xff08;以下简称为 SD-WebUI&#xff09;必需的 Python 和 Git 环境&#xff0c;并且预置好模型&#xff0c;有些整合包还添加了一些常用的插件&#xff0c;其实际与手动进行本地部署并没有区别。 不过&a…

热红外成像技术:未来将有更多技术突破推动应用发展

一、国外发展现状 热红外成像技术在国外得到了广泛的研究和应用。国外的研究机构和企业注重热红外成像技术在军事、环境监测、医疗等领域的应用研究&#xff0c;其中美国、欧洲和日本等国家在热红外成像技术方面处于领先地位。 美国在热红外成像技术方面拥有多个研究机构和公司…

后端面试话术集锦第三篇:spring cloud 相关面试话术

🚗后端面试集锦目录 💖后端面试话术集锦第一篇:spring面试话术💖 💖后端面试话术集锦第二篇:spring boot面试话术💖 💖后端面试话术集锦第三篇:spring cloud面试话术💖 💖后端面试话术集锦第四篇:ElasticSearch面试话术💖 1. 什么是Springcloud Spring …

全景图像生成算法

摘要 全景图像生成是计算机视觉领域的一个重要研究方向。本文对五种经典的全景图像生成算法进行综述&#xff0c;包括基于相机运动估计的算法、基于特征匹配的算法、基于图像切割的算法、基于多项式拟合的算法和基于深度学习的算法。通过对这些算法的原理、优缺点、适用场景等…

最新Burp Suite插件详解

Burp Suite中的插件 Burp Suite中存在多个插件&#xff0c;通过这些插件可以更方便地进行安全测试。插件可以在“BApp Store”&#xff08;“Extender”→“BApp Store”&#xff09;中安装&#xff0c;如图3-46所示。 下面列举一些常见的Burp Suite插件。 1&#xff0e;Act…

怎么在手机上开启提词器?这个方法轻松解决

在现代科技高度发达的时代&#xff0c;手机已经成为了人们生活中不可或缺的一部分。其中&#xff0c;开启提词器也是一种非常重要的工具&#xff0c;在我们需要面对手机录制讲解视频或者其他的一些演讲时&#xff0c;如果屏幕上可以有提词器那真是泰裤辣&#xff01;那么怎么在…

MySQL binlog的几种日志录入格式以及区别

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;CSDN领军人物&#xff0c;全栈领域优质创作者✌&#xff0c;CSDN博客专家&#xff0c;阿里云社区专家博主&#xff0c;2023年6月CSDN上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师…

不能打电话的流量卡都是物联卡?别胡说八道了!

可能大家对流量卡有一种误区&#xff0c;认为只要是不能打电话&#xff0c;不能发信息的流量卡都是物联卡&#xff0c;其实这种理解是错的。今天小编要为流量卡正名。 为什么要说大家对流量卡有误区呢&#xff0c;其实&#xff0c;目前市面上常见的纯流量卡有两种&#xff0c;…

《C和指针》笔记12: 存储类型(自动变量、静态变量和寄存器变量)

文章目录 1. 自动变量&#xff08;auto&#xff09;1.1 自动变量的初始化 2. 静态变量&#xff08;static&#xff09;2.1 静态变量的初始化 3. 寄存器变量&#xff08;register&#xff09; 1. 自动变量&#xff08;auto&#xff09; 在代码块内部声明的变量的缺省存储类型是…

linux下安装Mycat

1 官网下载mycat 官方网站&#xff1a; 上海云业网络科技有限公司http://www.mycat.org.cn/ github地址&#xff1a; MyCATApache GitHubMyCATApache has 34 repositories available. Follow their code on GitHub.https://github.com/MyCATApache 2 Mycat安装 1 把MyCat…

新方案unity配表工具

工具下载&#xff1a;网盘链接 工具结构&#xff1a;针对每张表格生成一个表格类&#xff0c;其中默认包含一个list和字典类型参数记录表格数据&#xff0c;初始化项目时将list中的数据转为按id索引的dictionary&#xff0c;用于访问数据。额外包含一个同名Temp后缀的类&#…

AI助力智能安检,基于图像目标检测实现危险品X光智能安全检测系统

基于AI相关的技术来对一些重复性的但是又比较重要的工作来做智能化助力是一个非常有潜力的场景&#xff0c;关于这方面的项目开发实践在我之前的文章中也有不少的实践&#xff0c;感兴趣的话可以自行移步阅读即可&#xff1a;《AI助力智能安检&#xff0c;基于目标检测模型实现…

【产品规划】产品功能和内容规划

文章目录 1、产品是功能和内容的集合2、确定产品的范围3、产品用户故事4、总结 1、产品是功能和内容的集合 2、确定产品的范围 3、产品用户故事 4、总结

网络安全(黑客技术)学习手册

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高&#xff1b; 二、则是发展相对成熟…

管理类联考——英语二——真题篇——按题型分类——大作文

Write an essay based on the chart below. In your writing, you should 1)interpret the chart, and 2)give your comments. You should write about 150 words on the ANSWER SHEET. (15 points) 2020真题 As is apparently demonstrated in the chart above…