think-cell Round 1

在这里插入图片描述

think-cell Round 1

A. Maximise The Score

题意:给出2n个数,每次选两个取较小值加到分数里,分数最大为多少。

思路:排序,奇数位和。

AC code:

void solve() {
    cin >> n;
    int ans = 0;
    int a[N];
    for (int i = 0; i < 2*n; i ++) {
        cin >> a[i];
    }
    sort(a, a + 2 * n);
    for (int i = 0; i < 2 * n; i += 2) ans += a[i];
    cout << ans << endl;
}

B. Permutation Printing

题意:求长度为n的一个排列,该排列不存在两个不同的索引i,j使得pi平分pj,pi+1平分pj+1。

思路:奇偶交叉排列即可,注意n为偶数时先排偶数位,否则先排奇数位。

AC code:

void solve() {
    cin >> n;
    int t = 2;
    if (n % 2 == 0) {
        for (int i = 1; i <= n; i ++) {
            if (i % 2) a[t] = i, t += 2;
        }
        t = 1;
        for (int i = n; i >= 1; i --) {
            if (i % 2 == 0) {
                a[t] = i;
                t += 2;
            }
        }
    } else {
        t = 1;
        for (int i = 1; i <= n; i ++) {
            if (i % 2) a[t] = i, t += 2;
        }
        t = 2;
        for (int i = n; i >= 1; i --) {
            if (i % 2 == 0) {
                a[t] = i;
                t += 2;
            }
        }
    }
    for (int i = 1; i <= n; i ++) cout << a[i] << " ";
        cout << endl;
}

C. Lexicographically Largest

题意:给出长度为n的数组a,可以任意取出数组a中的元素,每次取出元素+当前下标存入一个栈中,然后比当前取出元素下标大的元素下标-1,注意堆栈是个排列,即堆栈中元素不能重复,求堆栈最大词典序。

思路:每次取出当前最大元素+下标即可,需要处理的是取到重复元素的处理,若取到重复元素,则所加下标递减1即可。这里可以用一个set来存已经入栈的元素,新元素+下标若重复,则在已经入栈的元素中选最小的-1再压入即可。选已经压入的元素中最小的元素-1可以最大化最终字典序,且不会在栈中重复。

AC code:

void solve() {
    priority_queue<int> q;
    cin >> n;
    for (int i = 1; i <= n; i ++) {
        int x; cin >> x;
        q.push(x + i);
    }
    set<int> s;
    while (!q.empty()) {
        auto t = q.top();
        q.pop();
        if (s.find(t) != s.end()) {
            t = *s.begin() - 1;
        }
        s.insert(t);
        cout << t << " ";
    }
    cout << endl;
}

D. Sum over all Substrings

题意:有点抽象,尽量理解。

首先是题目中的长度相同的字符串p和q的good,即对与p中的每一个字符pi,在q中都会存在一个子串符合pi模式;

然后是XX模式,即一个字符在一个子串中出现的次数为众数,则称字符串q为pi模式;

那么对于二进制字符串p,题目需要我们创造1最少的符合条件的good串q,每一子串都要符合good条件;

要最小化q中1的数量,最佳情况可以看出,当p中出现1是,q中每三个字符至少存在一个1,则可以符合当前子串good条件。

思路:

  • 对于D1,可以直接暴力,即当字符串p出现字符1时,那么q当前位标记为1,包括该字符以及之后两位的三位字符均可以通过当前一位1来保证子串good。
  • 对于D2,可以用dp来计算当前后缀连续子串的答案,由D1可知,影响1的数量的为每三位出现字符1的情况:
    • 当前位为0时,dp[i] = dp[i + 1];
    • 当前位为1时,dp[i] = dp[i + 3] + (n - i + 1);

AC code :

  • D1
void solve() {
    cin >> n;
    int ans = 0;
    string s; cin >> s;
    for (int i = 0; i < n; i ++) {
        string now = "";
        for (int j = i; j < n; j ++) {
            now += s[j];
            int pos = 0;
            while (pos < now.size()) {
                if (now[pos] == '1') {
                    ans ++;
                    pos += 2;
                }
                pos ++;
            }
        }
    }
    cout << ans << endl;
}
  • D2
void solve() {
    cin >> n;
    string s; cin >> s;
    s = " " + s;
    vector<int> dp(n + 10, 0);
    int ans = 0;
    for (int i = n; i >= 1; i --) {
        if (s[i] == '0') {
            dp[i] = dp[i + 1];
        } else {
            if (i + 3 > n) dp[i] = n - i + 1;
            else dp[i] = n - i + 1 + dp[i + 3]; 
        }
        ans += dp[i];
    }
    cout << ans << endl;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

EXCEL使用VBA一键批量转换成PDF

EXCEL使用VBA一键批量转换成PDF 上图是给定转换路径 Sub 按钮1_Click() Dim a(1 To 1000) As String Dim a2 As String Dim myfile As String Dim wb As Workbook a2 Trim(Range("a2"))myfile Dir(a2 & "\" & "*.xls")k 0Do While m…

如何创建WordPress付款表单(简单方法)

您是否正在寻找一种简单的方法来创建付款功能WordPress表单&#xff1f; 小企业主通常需要创建一种简单的方法来在其网站上接受付款&#xff0c;而无需设置复杂的购物车。简单的付款表格使您可以轻松接受自定义付款金额、设置定期付款并收集自定义详细信息。 在本文中&#x…

django请求生命周期流程图,路由匹配,路由有名无名反向解析,路由分发,名称空间

django请求生命周期流程图 浏览器发起请求。 先经过网关接口&#xff0c;Django自带的是wsgiref&#xff0c;请求来的时候解析封装&#xff0c;响应走的时候打包处理&#xff0c;这个wsgiref模块本身能够支持的并发量很少&#xff0c;最多1000左右&#xff0c;上线之后会换成u…

算法项目(1)—— LSTM+CNN+四种注意力对比的股票预测

本文包含什么? 项目运行的方式(包教会)项目代码(在线运行免环境配置)不通注意力的模型指标对比一些效果图运行有问题? csdn上后台随时售后.项目说明 本项目实现了基于CNN+LSTM构建模型,然后对比不同的注意力机制预测股票走势的效果。首先看一下模型结果的对比: 模型MS…

springboot当中使用EMQX(MQTT协议)

本篇博客主要围绕EMQX是什么&#xff1f;、能干什么&#xff1f;、怎么用&#xff1f; 三点来进行整理。 1、MQTT协议 1.1、MQTT简介 在了解EMQX前首先了解一下MQTT协议&#xff0c;MQTT 全称为 Message Queuing Telemetry Transport&#xff08;消息队列遥测传输&#xff0…

IP协议及相关技术协议

一、IP基本认识 1. IP的作用 IP在TCP/IP模型中处于网络层&#xff0c;网络层的主要作用是实现主机与主机之间的通信&#xff0c;而IP的作用是在复杂的网络环境中将数据包发送给最终目的主机。 2. IP与MAC的关系 简单而言&#xff0c;MAC的作用是实现“直连”的两个设备之通信…

内存计算研究

近年来&#xff0c;应用数据呈现爆炸式增长&#xff0c;处理器和主存之间的带宽限制成为数据密集型应用的瓶颈。此外&#xff0c;目前流行的一些数据密集型应用&#xff0c;如神经网络应用和图计算应用&#xff0c;数据的局部性差。这会导致处理器片上缓存命中率降低&#xff0…

深究 DevOps 与平台工程的区别

今天&#xff0c;我们将讨论平台工程和 DevOps 的关系。尽管这两个概念有一些共同点&#xff0c;但它们仍然是截然不同的&#xff0c;我们将具体了解它们之间的区别。本文旨在解释当代软件工程中的这两个基本概念。通过实际案例&#xff0c;我们将分别说明这两个方法如何塑造了…

MPC自动驾驶横向控制算法实现 c++

参考博客&#xff1a; &#xff08;1&#xff09;无人车系统&#xff08;十一&#xff09;&#xff1a;轨迹跟踪模型预测控制(MPC)原理与python实现【40行代码】 &#xff08;2&#xff09;【自动驾驶】模型预测控制(MPC)实现轨迹跟踪 &#xff08;3&#xff09;自动驾驶——模…

调用接口时不时出现 Error: socket hang up

项目场景&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; 今天采用golang创建了一个http服务&#xff0c;准备对若干接口进行测试。 问题描述 提示&#xff1a;这里描述项目中遇到的问题&#xff1a; 在测试第一个接口时&#xff0c;发现采用postman调用接口…

PHP分析二维数据表(长度|数字字段|空值|纯姓名|英文用户名|科学计数|是否等长|是否唯一)

先看图&#xff0c;后有完整代码 <?php $t "Excel数据转Sql查询系统字段半智能分析"; $s "Excel复制过来的二维结构表内容,分析查询条件&#xff01;"; $x "字段|最大长度|长度有|数字字段|空值存在|纯姓名|英文用户名|科学计数|是否等长|是否…

【Docker】docker常用命令

需要云服务器等云产品来学习Linux可以移步/-->腾讯云<--/官网&#xff0c;轻量型云服务器低至112元/年&#xff0c;新用户首次下单享超低折扣。 目录 一、镜像仓库架构图 二、docker仓库命令 1、登录仓库docker login 2、拉取镜像docker pull 3、推送镜像docker pus…

3、电源管理入门之CPU热插拔详解

目录 简介 1. 省电技术概览 (1)、cpu hotplug和idle的区别? 2. 热插拔代码介绍 (1)、为什么以cpu1为例? 3. ATF中处理 简介 之前介绍了电源的开机和关机重启,本小节开始介绍省电的技术,其中最暴力的省电方法就是直接拔核hotplug处理,就像需要…

基于Web的网文管理系统

项目&#xff1a;基于Web的网文管理系统 伴随着时代的更替&#xff0c;我国人民的生活水平在不断提高&#xff0c;同时对生活娱乐的需求也在不断加大&#xff0c;我们在日常生活中通常会以多种方式娱乐自己&#xff0c;而阅读网络小说就是其中一种方式。随着计算机技术的成熟&a…

混合精度训练篇

1 由浅入深的混合精度训练教程 为什么要用 FP16 如果我们在训练过程中将 FP32 替代为 FP16&#xff0c;有以下两个好处&#xff1a; 1. 减少显存占用&#xff1a;FP16 的显存占用只有 FP32 的一半&#xff0c;这使得我们可以用更大的 batch size&#xff1b; 2. 加速训练&a…

Word 文档中的图片另存为 .jpg 格式图片

Word 文档中的图片另存为 .jpg 格式图片 1. Office 按钮 -> 另存为2. 筛选过的网页 (*.htm;*.html)3. 查看生成文件夹References 1. Office 按钮 -> 另存为 2. 筛选过的网页 (*.htm;*.html) ​​​ 3. 查看生成文件夹 References [1] Yongqiang Cheng, https://yongq…

灾后重建中GIS技术的关键作用与案例分析

地质灾害是指全球地壳自然地质演化过程中&#xff0c;由于地球内动力、外动力或者人为地质动力作用下导致的自然地质和人类的自然灾害突发事件。由于降水、地震等自然作用下&#xff0c;地质灾害在世界范围内频繁发生。我国除滑坡灾害外&#xff0c;还包括崩塌、泥石流、地面沉…

Maxwell安装部署

1 Maxwell输出格式 database&#xff1a;变更数据所属的数据库table&#xff1a;变更数据所属的表type&#xff1a;数据变更类型ts&#xff1a;数据变更发生的时间xid&#xff1a;事务idcommit&#xff1a;事务提交标志&#xff0c;可用于重新组装事务data&#xff1a;对于inse…

政安晨:【示例演绎机器学习】【剖析神经网络】【学习核心的Keras API】

打开这篇文章&#xff0c;相信您已经了解了TensorFlow的一些基础知识&#xff0c;可以用它从头开始实现一个简单模型。 如果您对这些概念还不是太清晰&#xff0c;可以浏览一下我这个栏目中的相关文章&#xff1a; 政安晨的机器学习笔记http://t.csdnimg.cn/DHcyL 尤其是其中…

C 语言 devc++ 使用 winsock 实现 windows UDP 利用 IP 进行局域网发送消息

UDP 通信流程_udp通信过程-CSDN博客参考来源 UDP 通信流程_udp通信过程-CSDN博客 这里移植到windows 上 &#xff0c;使用 devc 开发。 服务端代码 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <…