本周前半周总结

news2024/11/27 4:21:49

刷题刷了六道


青训营视频补看


软件杯项目素材收集,首页制作ing


前面这六道题的题解:

 题目1:

这是个交互题,目前遇到的交互题都是用二分解决的。

本题使用二分精准定位拥有重量为2的石头的堆。

为避免时间超限,应该再输入数据时计算好前缀和。

二分过程中,如果哪边的重量总和不等于石头数,那就向这边缩小范围。

代码:


 

这道题非常简单,只需要找出规律就行

序列只由0或1组成,我们可以进行的操作是,删除一个数加到另一个数上面去。

删0加0 《=》只删除了一个障碍0,另一个0无动于衷

删0加1 《=》删除了一个障碍0

删1加1 《=》变出了一个2,浪费时间浪费资源浪费精力没必要

删1加0 《=》删除了一个前面的障碍0和后面的障碍1

所以我们就需要采用删1加0的方式操作数列

很容易发现,我们只需要遍历整个序列一共有多少个0,假设是n个0,那么再遍历前n个数,遇到1则ans加1,相当于用前n个里的1去消除掉后面的0。

所以代码呼之欲出:


 

 这道题就是要通过/2的操作使得序列变成1~n的全排列。

1~n的全排列即1到n且互不相等,且所有数小于n

所以我们只需要遍历所有数,如果大于n就往下除2得新值。

且不能在1~n中重复,这里需要一个标记数组就行了。

如果最后1~n的标记均为1(即都有值入坑了0),那就输出YES,否则输出NO

代码如下:


这道题不要被样例给迷惑了,其实超级简单

第i个数必须是i的n倍(n=1~xxxx)

且数列所有值的和必须能整除n

而第一个数,i=1,所以第一个数可以随意取,那么其他位置上的数我们只需要取i本身就行(相当于取了i的1倍,符合要求),那么第一个数取多少取决于该条件 且数列所有值的和必须能整除n

所以满足(sum(后面的数)+a【1】)%n = 0即可。

所以代码:


 这道题倒是写了挺久,因为总是漏掉情况

题目就是问给出的字符串能否通过重新排序变成回文字符串(且不能和本身一样) 

那么只需要考虑几种情况

1.重组不成回文字符串

2.符合回文字符串条件但只有一种情况且与本身重复

3.符合回文字符串条件且有多种组成方式

我们需要对字符串长度的奇偶进行判断,以及每个字母出现的次数(要用到出现次数的奇偶性)

重点看注释

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll t,cnt,ji,ncnt,u;
string s;
bool huiwen(string s)
{
    for(int i=0,j=s.size()-1; i!=j; i++,j--)
        if(s[i]!=s[j])
            return false;
    return true;
}
int main()
{
    cin>>t;
    while(t--)
    {
        cin>>s;
        map<char,int> m;
        char c[50];
        cnt=0;
        for(int i=0; i<s.size(); i++)
        {
            if(m[s[i]]==0)
            {
                c[cnt]=s[i];
                cnt++;
            }
            m[s[i]]++;
        }

        //测试
        //for(int i=0; i<cnt; i++){
        //   cout<<"第"<<i+1<<"个字母是"<<c[i]<<endl;
        //    cout<<"有"<<m[c[i]]<<"个"<<endl;
        //}

        if(cnt==1)//只有一种字母
        {
            cout<<"NO"<<endl;
            continue;
        }

        ji=0;//统计有多少奇数个数的字母
        u=0;
        for(int i=0; i<cnt; i++)
        {
            if(m[c[i]]%2!=0)
            {
                ji++;
                u=m[c[i]];
            }
        }

        ncnt=s.size();//字符串长度
        if(ncnt%2==1)//奇数长度
        {
            if(ji==1 &&cnt==2&& u==1 && huiwen(s))cout<<"NO"<<endl;
            else if(ji>=1 && ncnt%2==0 )cout<<"NO"<<endl;
            else if(ji>1)cout<<"NO"<<endl;
            else cout<<"YES"<<endl;
        }
        else if(ncnt%2==0) //偶数长度
        {
            if(ji!=0)cout<<"NO"<<endl;
            else cout<<"YES"<<endl;
        }
    }
    return 0;
}

这道题怎么说呢,可以说是暴力解决的,只需要枚举可执行方案就行,然后找出能得到最大值的方案,输出该最大值。

因为只有两种操作,即删除最小的两个数或者删除最大的一个数,这样的题目我们很容易想到先进行一个sort排序,那么删除哪个数也就是维护两端端点就行了。

一开始枚举每种情况计算两端点,再将两端点之间进行相加,可以过样例,但是会时间超限。

所以后面在排完序计算了前缀和,最后之间用前缀和计算总和过的。

代码很简单:

http://t.csdn.cn/kkRMO

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

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

相关文章

k8s1.20版本部署RabbitMQ集群(持久化)——2023.05

文章目录 一、集群概况二、RabbitMQ集群部署2.1 安装NFS2.2 创建storageclass存储类2.3 部署RabbitMQ集群2.4 测试 一、集群概况 主机规划 节点IPk8s-master1192.168.2.245k8s-master2192.168.2.246k8s-master3192.168.2.247k8s-node1192.168.2.248NFS、Rancher192.168.2.251…

阿里巴巴 菜鸟Java面经

目录 1.ArrayList和LinkedList的区别2.两个各自装啥数据合适3.final和finally的区别4.catch里面有个return&#xff0c;finally执行不执行5.线程的创建方式6.ThreadLocal7.序列化8.抽象类和接口的区别9.数据库的四大特性10.事务的一致性是啥11.事务的隔离级别12.可重复读是个啥…

inspect.exe安装使用

官网下载 https://developer.microsoft.com/zh-cn/windows/downloads/windows-sdk/ 官网教程 https://learn.microsoft.com/zh-cn/windows/win32/winauto/inspect-objects 要求 系统要求 Windows SDK 具有以下最低系统要求&#xff1a; 支持的操作系统 Windows 10版本 150…

chatgpt赋能Python-pycharm如何跳过教程

PyCharm如何跳过教程&#xff1a;快速掌握Python编程 如果你是一个有10年python编程经验的工程师&#xff0c;那么你肯定不需要再从头开始学习python&#xff0c;更不需要花费大量时间来学习PyCharm的教程。你需要的是一个快速而高效地使用PyCharm的方法&#xff0c;以便能够更…

chatgpt赋能Python-pandas预处理

介绍 Pandas是一个强大的Python库&#xff0c;专门用于数据操作和分析。在数据处理和分析的过程中&#xff0c;Pandas是一个不可或缺的工具。它提供了简单而灵活的数据结构&#xff0c;如Series和DataFrame&#xff0c;这些数据结构可以帮助我们快速预处理数据。 本文将介绍P…

虚拟机 01 jdk环境的安装与配置

01.第一步&#xff1a;进入到工作目录中&#xff0c;然后将目录中所有的资源都删掉 &#xff0c;此处的工作目录/usr/local/src 使用的命令是rm -rf * 02.第二步&#xff1a;将windows系统的jdk8的安装文件上传到Linux中 直接在window界面中选中压缩文件拖到Linux命令行中 完…

区间预测 | MATLAB实现QGPR高斯过程分位数回归时间序列区间预测

区间预测 | MATLAB实现QGPR高斯过程分位数回归时间序列区间预测 目录 区间预测 | MATLAB实现QGPR高斯过程分位数回归时间序列区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 MATLAB实现QGPR高斯过程分位数回归时间序列区间预测 1.基于高斯过程回归&#…

chatgpt赋能Python-pycharm怎么粘贴代码

PyCharm&#xff1a;如何在编辑器中粘贴代码 作为一个有多年 Python 编程经验的工程师&#xff0c;我可以说 PyCharm 是 Python 编辑器中的佼佼者&#xff0c;它凭借其智能化、强大的功能和用户友好的界面而受到广泛赞誉。在该编程软件中&#xff0c;如果你需要粘贴代码&#…

【我的C++入门之旅】(上)

前言 C的发展史 1979年&#xff0c;贝尔实验室的Bjarne等人试图分析unix内核的时候&#xff0c;试图将内核模块化&#xff0c;但是发现C语言有很多的不足之处&#xff0c;于是在C语言的基础上进行扩展&#xff0c;增加了类的机制&#xff0c;完成了一个可以运行的预处理程序&…

chatgpt赋能Python-pycharm备份

PyCharm备份——数据安全之道 在软件开发过程中&#xff0c;数据备份是一项至关重要的任务。特别是对于PyCharm这样的IDE来说&#xff0c;开发者在其中执行大量的代码编写、调试、测试、运行等操作&#xff0c;需要在相对固定的时间点 backup 数据&#xff0c;以防止数据丢失带…

【AFNetWorking源码一】

文章目录 前言一.原生的网络请求发送方式1.1 原生GET1.2 原生PSOT 二.AFN2.1 AFN的基本架构分析2.2 以GET为例分析AFN使用流程&#xff08;AFHTTPSessionManager2.2.1 AFN如何生生成对应的sessionManager2.2.2. AFURLSessionManager的初始化2.2.3 task的三种代理2.2.3.1 setDel…

力扣sql中等篇练习(二十二)

力扣sql中等篇练习(二十二) 1 坚定的友谊 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 # Write your MySQL query statement below # ①求出所有朋友关系的总表 WITH T as (SELECT user1_id ,user2_idFROM friendshipUNION SELECT user2_id user1…

前端学习--Vue(1)webpack

前端工程化 模块化&#xff08;js、css模块化、资源模块化&#xff09; 组件化&#xff08;复用现有的UI结构、样式、行为&#xff09; 规范化&#xff08;目录结构划分、编码规范化、接口文档规范化、git分支管理&#xff09; 自动化&#xff08;自动化构建、自动部署、自动化…

试用阿里云云拨测对Web网站的网页性能进行测试并分析

目录 前言 云拨测操作步骤 1.开通应用实时监控服务ARMS 2.成功登录后&#xff0c;在产品类别下选择中间件>应用实时监控服务&#xff0c;在云拨测卡片上单击立即试用。 3.登录ARMS控制台&#xff0c;在左侧导航栏中选择云拨测>定时拨测&#xff0c;在定时拨测页面右上…

chatgpt赋能Python-pycharm怎么与python关联

Pycharm怎么与Python关联&#xff1f; 介绍 对于Python开发人员来说&#xff0c;Pycharm是一个非常强大的IDE。它提供了各种工具和功能&#xff0c;用于快速开发和调试Python代码。但是&#xff0c;在开始开发之前&#xff0c;必须将Pycharm与Python关联起来。否则&#xff0…

chatgpt赋能Python-pulp_python

Pulp Python: 介绍与优点 在数据分析和决策优化领域&#xff0c;线性规划是一种非常有效的数学模型。而Pulp Python是一款优秀的线性规划库&#xff0c;它可以帮助用户快速进行线性规划求解&#xff0c;同时还具备可扩展性和易使用性等优点。 什么是线性规划&#xff1f; 线…

chatgpt赋能Python-pycharm_滚轮字体大小设置

Pycharm滚轮字体大小设置 Pycharm是一款非常流行的Python IDE&#xff0c;广泛用于Python编程。然而&#xff0c;每个开发者都有其自己的偏好设置&#xff0c;包括字体大小。此文将介绍如何使用滚轮控制Pycharm中编辑器的字体大小。 界面操作 在Pycharm中&#xff0c;您可以…

南京邮电大学Web技术双语实验二(Web服务端脚本编写)

文章目录 一、 实验目的和要求二、实验环境(实验设备)三、实验原理及内容1首先编写html页面2 html页面效果如下图所示3 编写服务端php脚本4 服务端页面显示如下 四、实验小结&#xff08;包括问题和解决方法、心得体会、意见与建议等&#xff09; 一、 实验目的和要求 1 显示一…

进程通信 — 管道

目录 进程通信前提进程间通信的目的进程间通信发展进程间通信分类管道认识管道匿名管道站在文件描述符角度&#xff0c;深度理解管道 管道读取规则读写规则 管道特点命名管道命名管道的打开规则 匿名管道与命名管道的区别命名管道的打开规则 匿名管道与命名管道的区别 进程通信…

chatgpt赋能Python-pycharm怎么关联python

PyCharm怎么关联Python PyCharm是一款非常流行的Python集成开发环境&#xff08;IDE&#xff09;&#xff0c;它经常被Python开发者用来编写、调试和测试他们的代码。为了让PyCharm正常工作&#xff0c;需要将其与Python相关联。在这篇文章中&#xff0c;我们将讨论如何在PyCh…