2025/2/10 心得

第一题。J. C - Grand Garden (AI)

问题陈述

在一个花坛里,有 NN 朵花,编号为 1,2,\ldots,N1,2,…,N。最初,所有花的高度都是 00。你将得到一个高度序列 h={h\_1,h\_2,h\_3,\ldots\} 作为输入。你希望通过重复以下“浇水”操作来将所有花的编号为 kk 的花的高度改变为 h_khk​,对所有 kk (1 \leq k \leq N)(1≤k≤N):

  • 指定整数 ll 和 rr。对所有满足 l \leq x \leq rl≤x≤r 的花 xx,将其高度增加 11。

找出满足条件的最小浇水操作次数。

约束条件

  • 1 \leq N \leq 1001≤N≤100
  • 0 \leq h_i \leq 1000≤hi​≤100
  • 输入中的所有值均为整数。

输入

从标准输入以以下格式给出输入:

NN

h_1h1​ h_2h2​ h_3h3​ ............ h_NhN​


输出

打印满足条件的最小浇水操作次数。


示例输入 1

4

1 2 2 1

示例输出 1

2

满足条件的最小浇水操作次数是 22。一种实现方式是:

  • 执行操作,(l,r)=(1,3)(l,r)=(1,3)。
  • 执行操作,(l,r)=(2,4)(l,r)=(2,4)。

示例输入 2

5

3 1 2 3 1

示例输出 2

5


示例输入 3

8

4 23 75 0 23 96 50 100

示例输出 3

221

这道题我本来的想法是

首先先把全部最小值全部交一遍。

然后把他们分成一块一块的一块一块来浇他们的最小值

这样写也行,但是呢需要用分治来写。

哦由于我现在刚学分治,不太会,所以就不能用治来写。

其实这道题还有另外一种办法。

就是求出它们右边比左边大的值,所有加起来。

再加上第一个数。

便是他们。最小浇水的次数了。

代码如下,

#include<bits/stdc++.h>
using namespace std;
int n,a[110],sum,maxx=9999999999; 
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
    }
    for(int i=1;i<=n;i++)
    {
        if(a[i+1]>a[i])
        sum+=a[i+1]-a[i];
    }
    cout<<sum+a[1];
    return 0;
}

第二题 K. C - Attack Survival (AI)

题目描述

高桥决定举办一场最快的手指速算游戏。负责计分的木村在编写管理玩家分数的程序时遇到了困难,游戏规则如下:

有NN名玩家参加游戏,编号为1到NN。游戏开始时,每个玩家都有KK分。

当一个玩家正确回答问题时,其他N-1N−1名玩家各减一分(-1)。没有其他因素影响玩家的分数。

游戏结束时,得分为0或更低的玩家被淘汰,剩余的玩家幸存下来。

在最后一场比赛中,共有QQ个正确答案,第ii个答案是由玩家A_i给出的。请木村编写一个程序,判断每个玩家是否在这个游戏中幸存下来。

约束条件

  • 输入的所有值都是整数。

  • 2 \leq N \leq 10^52≤N≤105

  • 1 \leq K \leq 10^91≤K≤109

  • 1 \leq Q \leq 10^51≤Q≤105

  • 1 \leq A\_i \leq N\ (1 \leq i \leq Q)1≤A_i≤N (1≤i≤Q)


输入

从标准输入以以下格式给出输入:

NN KK QQ

A_1A1​

A_2A2​

..

..

..

A_QAQ​

输出

打印NN行。第ii行应包含Yes(如果玩家ii在比赛中幸存下来),否则为No


样例输入1

6 3 4

3

1

3

2

样例输出1

No

No

Yes

No

No

No

一开始,玩家的分数是(3, 3, 3, 3, 3, 3)。

  • 玩家3正确回答一个问题。玩家的分数现在是(2, 2, 3, 2, 2, 2)。

  • 玩家1正确回答一个问题。玩家的分数现在是(2, 1, 2, 1, 1, 1)。

  • 玩家3正确回答一个问题。玩家的分数现在是(1, 0, 2, 0, 0, 0)。

  • 玩家2正确回答一个问题。玩家的分数现在是(0, 0, 1, -1, -1, -1)。

得分为0或更低的玩家1、2、4、5和6被淘汰,玩家3在这场比赛中幸存下来。


样例输入2

6 5 4

3

1

3

2

样例输出2

Yes

Yes

Yes

Yes

Yes

Yes


样例输入3

10 13 15

3

1

4

1

5

9

2

6

5

3

5

8

9

7

9

样例输出3

No

No

No

No

Yes

No

No

No

Yes

No

这道题我当初第一遍就做出来了。

我的思路是这样的。

首先先用一个数组存储出所有学生答每个人答对题的数量。

其中总分加这个每个人答对的。提亮再减去一共的轮数。如果大于零,那么就输出yes。

否则就输出no

其实这道题还有另外一种思路。

就是让他们首先先把全部总分数都为零的话减去轮数。

如果有一个人答对题,就让他那个负数或者是正数加上一

到最后再判断一下。代码

如下,

#include<bits/stdc++.h>
using namespace std;
int n,k,q,a[100010],stu[100010]; 
int main()
{
    cin>>n>>k>>q;
    for(int i=1;i<=q;i++)
    {
        cin>>a[i];
        stu[a[i]]++;
    }
    for(int i=1;i<=n;i++)
    {
        if(k+stu[i]-q>0)
        {
            cout<<"Yes"<<endl;
        }
        else
        {
            cout<<"No"<<endl;
        }
    }
    return 0;
}

第三题。

L. D - String Formation (AI)

问题描述

高桥有一个由小写英文字母组成的字符串S。

从这个字符串开始,他将按照以下给定的程序产生一个新字符串。

程序包括Q个操作。在操作i(1≤i≤Q)中,提供一个整数T_i,其含义如下:

  • 如果T_i = 1:反转字符串S。

  • 如果T_i = 2:另外提供两个信息,一个整数F_i和一个英文小写字母C_i。

    • 如果F_i = 1:在字符串S的开头添加C_i。

    • 如果F_i = 2:在字符串S的末尾添加C_i。

帮助高桥找到该程序最终生成的字符串。

约束条件

  • 1≤|S|≤10^5

  • S由小写英文字母组成。

  • 1≤Q≤2×10^5

  • T_i = 1或2。

  • 如果提供了F_i,则F_i = 1或2。

  • 如果提供了C_i,则C_i是一个小写英文字母。

输入

标准输入以以下格式给出输入:

S

Q

Query_1

:

Query_Q

在第3行到第(Q+2)行中,Query_i是以下之一:

1

表示T_i = 1,以及:

2

F_i

C_i

表示T_i = 2。

输出

打印结果字符串。

样例输入1

a

4

2 1 p

1

2 2 c

1

样例输出1

cpa

将有Q = 4次操作。最初,S是'a'。

  • 操作1:在S的开头添加'p'。S变为'pa'。

  • 操作2:反转S。S变为'ap'。

  • 操作3:在S的末尾添加'c'。S变为'apc'。

  • 操作4:反转S。S变为'cpa'。

因此,结果字符串是'cpa'。

样例输入2

a

6

2 2 a

2 1 b

1

2 2 c

1

1

样例输出2

aabc

将有Q = 6次操作。最初,S是'a'。

  • 操作1:S变为'aa'。

  • 操作2:S变为'baa'。

  • 操作3:S变为'aab'。

  • 操作4:S变为'aabc'。

  • 操作5:S变为'cbaa'。

  • 操作6:S变为'aabc'。

因此,结果字符串是'aabc'。

样例输入3

y

1

2 1 x

样例输出3

xy

这道题挺难。

我做了好久

到最后终于模拟出来了。

我最初的代码如下,

#include<bits/stdc++.h>
using namespace std;
string a,e,a1,a2;
int b,c,d;
int main()
{
 getline(cin,a);  
 cin>>b;
 for(int i=1;i<=b;i++) 
 {
     cin>>c;
     if(c==2)
     {
         cin>>d;
        cin>>e;
        if(d==2)
        {
        a+=e;
        }
        if(d==1)
        {
        a=e+a;    
        }
     }
     if(c==1)
     {
         reverse(a.begin(),a.end());
     }
 }
 cout<<a;
    return 0;
}

只得了64分。

还有一些超时了。

因为这道题用的是10的5次方。

For循环最多也就18次方。

里边还套了个reverse函数。

所以说有些数据会超时。

那我们不妨想一下。

如果这题中他让我们翻转的个数一共为偶数。

那么翻来翻去又翻回来了。如果为奇数

那也就翻一次跟9嗯还是一样的。

所以便可以把这个reverse拿到下面。

For循环外边来用。

但如果这样做的话,原来这个数据重量是奇数。

我本来要加在前面就不能加在前面,应该加在后边。

如果偶数如果是偶数则还是一样。

应加在前面的加在前面

,应加在后边儿,加在后面。

最终代码如下,

#include<bits/stdc++.h>
using namespace std;
string a,e,a1,a2;
int b,c,d,sum;
int main()
{
 getline(cin,a);  
 cin>>b;
 for(int i=1;i<=b;i++) 
 {
     cin>>c;
    if(c==1)
     {
     sum++;    
     }
     if(sum%2==1)
     {
             if(c==2)
         {
             cin>>d;
            cin>>e;
            if(d==2)
            {
            a=e+a;
            }
            if(d==1)
            {
            a+=e;    
            }
         }
     }
     if(sum%2==0)
     {
             if(c==2)
         {
             cin>>d;
            cin>>e;
            if(d==2)
            {
            a+=e;
            }
            if(d==1)
            {
            a=e+a;    
            }
         }
     }     
 }
 if(sum%2==0)
 cout<<a;
 else
 {
  reverse(a.begin(),a.end());
  cout<<a;    
 }
    return 0;
}

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

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

相关文章

集成右键的好用软件,支持多线程操作!

今天给大家分享一个超级实用的小工具&#xff0c;真的能帮上大忙呢&#xff01;这个软件是吾爱大神无知灰灰精心制作的&#xff0c;简直就是图片转换界的“小能手”。 它能一键把webp格式的图片转换成png格式&#xff0c;而且速度超快&#xff0c;完全不输那些付费的软件&#…

UPDATE 语句结合 REPLACE() 函数来批量修改 detail 字段中的 xxx 为 xxx

问题出现的背景&#xff0c;由于阿里云的oss服务器域名更换&#xff0c;所以我们需要修改数据库中detail字段中的域名&#xff0c;才能加载图片 您可以使用 SQL 的 UPDATE 语句结合 REPLACE() 函数来批量修改 detail 字段中的 oss.kxlist.com 为 www.crossbiog.com。 以下是 S…

【设计模式】【行为型模式】职责链模式(Chain of Responsibility)

&#x1f44b;hi&#xff0c;我不是一名外包公司的员工&#xff0c;也不会偷吃茶水间的零食&#xff0c;我的梦想是能写高端CRUD &#x1f525; 2025本人正在沉淀中… 博客更新速度 &#x1f4eb; 欢迎V&#xff1a; flzjcsg2&#xff0c;我们共同讨论Java深渊的奥秘 &#x1f…

Visual Studio踩过的坑

统计Unity项目代码行数 编辑-查找和替换-在文件中查找 查找内容输入 b*[^:b#/].*$ 勾选“使用正则表达式” 文件类型留空 也有网友做了指定&#xff0c;供参考 !*\bin\*;!*\obj\*;!*\.*\*!*.meta;!*.prefab;!*.unity 打开Unity的项目 注意&#xff1a;只是看&#xff0…

云原生后端|实践?

云原生&#xff08;Cloud Native&#xff09;是一种构建和运行应用程序的方法&#xff0c;它充分利用云计算的优势&#xff0c;包括弹性、可扩展性、高可用性和自动化运维。云原生后端开发通常涉及微服务架构、容器化、持续集成/持续部署&#xff08;CI/CD&#xff09;、服务网…

《深度学习》——pytorch框架及项目

文章目录 pytorch特点基本概念 项目项目实现导入所需库下载训练数据和测试数据对训练和测试样本进行分批次展示手写图片判断pytorch是否支持GPU定义神经网络模型定义训练函数定义测试函数创建交叉熵损失函数和优化器通过多轮训练降低损失值得到最终结果注意 pytorch PyTorch 是…

深入探索人工智能的未来:DeepSeek R1与蓝耘智算平台的完美结合

在当今数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;和机器学习&#xff08;ML&#xff09;正以前所未有的速度改变着我们的生活和工作方式。从智能语音助手到自动驾驶汽车&#xff0c;从精准医疗到金融风险预测&#xff0c;AI的应用无处不在。深度学习作为AI的核…

Qt最新热点

Qt的最新热点主要集中在以下几个方面: 跨平台开发:Qt继续强调其在跨平台开发方面的优势,支持在Windows、macOS、Linux以及移动操作系统(如Android和iOS)上的应用开发。 Qt for Python:Qt for Python(PySide2和PySide6)的发展,为Python开发者提供了更强大的工具来创建桌…

基于uniapp vue3 的滑动抢单组件

通过在onMounted获取movable-area与movable-view实例&#xff0c;计算出可滑动的距离 效果图&#xff1a; 代码&#xff1a; <template><view class"slider-container"><movable-area class"movable-area" id"movableArea">…

亚博microros小车-原生ubuntu支持系列:26手势控制小车基础运动

背景知识 手指检测&#xff1a;亚博microros小车-原生ubuntu支持系列&#xff1a;4-手部检测-CSDN博客 程序功能说明 功能开启后&#xff0c;摄像头捕获图像&#xff0c;识别手势来控制小车移动。 手势 “5”小车前进拳头小车后退手势 “1”小车向左手势 “2”小车向右 运…

在人工智能领域 ⊕、⊗和 ⊙ 符号是什么含义?

我们经常在论文中看到 ⊕、⊗和 ⊙ 符号&#xff0c;那么有下面两个问题&#xff1a; 这三个符号有什么作用呢&#xff1f; 如何在论文中正确使用这三个数学符号 1. 两种符号的解释 1.1 逐元素相加&#xff1a;⊕ ⊕ 在论文中表示逐元素相加&#xff0c;如果用两个矩阵表示&a…

NineData云原生智能数据管理平台新功能发布|2025年1月版

本月发布 14 项更新&#xff0c;其中重点发布 6 项、功能优化 7 项、安全性更新 1 项。 重点发布 数据库 Devops - 数据导出功能增强 支持 AWS ElastiCache 数据源&#xff1a;现已支持通过 SQL 查询语句或直接通过库表导出 AWS ElastiCache 数据&#xff0c;方便用户快速提取…

蓝桥与力扣刷题(226 翻转二叉树)

题目&#xff1a;给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1]示例 2&#xff1a; 输入&#xff1a;root [2,1,3] 输出&#xff1a;[2,…

C# OpenCV机器视觉:OSTU算法实现背景差分的自适应分割

在一个热闹的科技公司里&#xff0c;阿强是一个负责图像分析的员工。他的日常工作就是从各种复杂的图像中提取出有用的信息&#xff0c;可这可不是一件轻松的事情哦 最近&#xff0c;阿强接到了一个艰巨的任务&#xff1a;要从一堆嘈杂的监控图像中分离出运动的物体&#xff0c…

amis组件crud使用踩坑

crud注意 过滤条件参数同步地址栏 默认 CRUD 会将过滤条件参数同步至浏览器地址栏中&#xff0c;比如搜索条件、当前页数&#xff0c;这也做的目的是刷新页面的时候还能进入之前的分页。 但也会导致地址栏中的参数数据合并到顶层的数据链中&#xff0c;例如&#xff1a;自动…

解决 ollama._types.ResponseError 问题

原因 在对问题进行分析后&#xff0c;我认为原因是之前为了在服务器上下载模型&#xff0c;我设置了启动时自动配置的网络代理。然而&#xff0c;ollama在运行时采用了该代理配置&#xff0c;而不是默认的API URL&#xff08;“http://localhost:11434”&#xff09;。因此&am…

用户认证实验

一&#xff0c;拓扑图: 第一步&#xff1a;先开启防火墙 第二步&#xff1a;sw2配置&#xff1a; [sw2] vlan batch 10 20 interface GigabitEthernet0/0/2 port link-type access port default vlan 10 interface GigabitEthernet0/0/3 port link-type access port defau…

活动预告 | 为 AI 新纪元做好准备:助力安全的业务转型

课程介绍 随着现代办公模式的不断演变和 AI 技术的迅速发展&#xff0c;企业在享受效率提升的同时&#xff0c;也面临着信息安全与数据保护的严峻挑战。在利用 AI 技术释放业务潜力的同时&#xff0c;如何确保数据质量与安全已成为企业发展的关键议题。 在本次线上课程中&…

【自学笔记】HTML+CSS基础知识点总览-持续更新

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 HTML CSS 重点知识点总览HTML部分1. 基本结构2. 常用标签3. 属性4. 语义化标签 CSS部分1. 基本语法2. 选择器3. 盒模型4. 布局方式5. 响应式设计6. CSS3新特性 总结…

【再谈设计模式】中介者模式 - 协调对象间交互的枢纽

一、引言 在软件工程&#xff0c;软件开发过程中&#xff0c;复杂的软件系统&#xff0c;对象之间的交互往往错综复杂。当众多对象相互依赖、频繁通信时&#xff0c;系统的耦合度会急剧上升&#xff0c;导致代码难以维护、扩展和理解。就像在一个大型社交聚会中&#xff0c;如果…