2024/2/23 考试

news/2025/2/27 23:41:29/

第一题

One Clue

问题陈述

在数轴上有20000012000001块石头,这些石头的坐标分别为-1000000, -999999, -999998, \ldots, 999999, 1000000−1000000,−999999,−999998,…,999999,1000000。

其中,连续的KK块石头被涂成了黑色,其余的则是白色的。

此外,我们知道位于坐标XX的那块石头是黑色的。

请按升序打印所有可能含有黑色石头的坐标。

约束条件

  • 1 \leq K \leq 1001≤K≤100
  • 0 \leq X \leq 1000≤X≤100
  • 输入中的所有值均为整数。

输入

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

K X

输出

按升序打印所有可能含有黑色石头的坐标,坐标之间用空格隔开。


示例输入 1

3 7

Copy

示例输出 1

5 6 7 8 9

Copy

我们知道有三块连续的黑色石头,并且坐标为77的石头是黑色的。有三种可能性:

  • 黑色石头分别位于坐标55、66和77。
  • 黑色石头分别位于坐标66、77和88。
  • 黑色石头分别位于坐标77、88和99。

因此,可能含有黑色石头的五个坐标为:55、66、77、88和99。


示例输入 2

4 0

Copy

示例输出 2

-3 -2 -1 0 1 2 3

Copy

负坐标也可能包含黑色石头。


示例输入 3

1 100

Copy

示例输出 3

100

这道题其实就是考虑 x-(k-1)一次缩小了1

加上x加上x+ (k+1)每次增大一到k减一

,代码如下,

#include<bits/stdc++.h>
using namespace std;
int n,a;
int main(){
//    freopen("loop.in","r",stdin);
//    freopen("loop.out","w",stdout);
cin>>n>>a;
if(n==1)
{
    cout<<a;
    return 0;
}
for(int i=n-1;i>=1;i--)
{
    cout<<a-i<<" ";
}
cout<<a<<" ";
for(int i=1;i<=n-1;i++)
{
    cout<<a+i<<" ";
}
    return 0;
}

第二题

B. Shift

问题描述

给定一个长度为NN的序列A = (A_1, A_2, \dots, A_N)A=(A1​,A2​,…,AN​)。

你将执行以下操作KK次:

  • 删除AA的初始元素并在AA的尾部添加一个00。

打印所有操作后的AA的元素。

约束

  • 1 \leq N \leq 1001≤N≤100

  • 1 \leq K \leq 1001≤K≤100

  • 1 \leq A_i \leq 1001≤Ai​≤100

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


输入

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

NN KK

A_1A1​ A_2A2​ \dots… A_NAN​

输出

在一行中打印操作后的AA的元素,用空格分隔。


样例输入1

3 2

2 7 8

样例输出1

8 0 0

在进行操作之前,A = (2, 7, 8)A=(2,7,8)。

进行一次操作后,A = (7, 8, 0)A=(7,8,0)。

进行两次操作后,A = (8, 0, 0)A=(8,0,0)。

因此,(8, 0, 0)(8,0,0)是答案。


样例输入2

3 4

9 9 9

样例输出2

0 0 0


样例输入3

9 5

1 2 3 4 5 6 7 8 9

样例输出3

6 7 8 9 0 0 0 0 0

这道题在考试中用了我很大时间,我在考试中把这道题想的太复杂了,其实只需要一个一个的去。

嗯模拟就行。但是我的思路则是用这种个值。减去从第几个值开始,从这个值开始往后输出就再输出n个零。

考试中的代码如下

#include<bits/stdc++.h>
using namespace std;
int n,a,b[110],a1,a2;
int main(){
//    freopen("loop.in","r",stdin);
//    freopen("loop.out","w",stdout);
cin>>n>>a;
for(int i=1;i<=n;i++)
{
    cin>>b[i];
}
if(a>=n)
{
    for(int i=1;i<n;i++)
    {
        cout<<"0"<<" ";
    }
    cout<<"0";
    return 0;
}
a1=n-a;
for(int i=a+1;i<=n;i++)
{
    cout<<b[i]<<" ";
}
for(int i=1;i<=a;i++)
{
    cout<<"0"<<" ";
}
    return 0;
}

第三题。

Bovine Bones

题目描述

Bessie 喜欢玩棋盘游戏和角色扮演游戏,因此她让 John 带她去了一家小店买了三个骰子。这三个骰子分别有 S1S1、S2S2 和 S3S3 面。每面的数字是 11 到骰子的面数,每个数字出现的概率相等。Bessie 想要知道在所有可能的骰子组合中,哪个三个骰子点数之和出现得最频繁。如果多个和出现的频率相同,报告最小的那个和。

数据范围
  • 2 \leq s_1 \leq 202≤s1​≤20
  • 2 \leq s_2 \leq 202≤s2​≤20
  • 2 \leq s_3 \leq 402≤s3​≤40
输入格式

第一行包含三个用空格分隔的整数:S1S1、S2S2 和 S3S3。

输出格式

输出一行,包含那个出现最频繁的最小整数和。

示例

样例输入 #1
3 2 3

Copy

样例输出 #1
5

Copy

提示

以下是所有可能的结果:

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

这道题其实就是用三重for循环。

就能解决。

考试中的代码如下

#include<bits/stdc++.h>
using namespace std;
int n,m,s,a[110000],maxx=-999999;
int main(){
//    freopen("loop.in","r",stdin);
//    freopen("loop.out","w",stdout);
cin>>n>>m>>s;
for(int i=1;i<=n;i++)
{
    for(int j=1;j<=m;j++)
    {
        for(int k=1;k<=s;k++)
        {
//        cout<<i<<" "<<j<<" "<<k<<" "<<endl;
    a[i+j+k]++;
        }
    }
}
for(int i=1;i<=n;i++)
{
    for(int j=1;j<=m;j++)
    {
        for(int k=1;k<=s;k++)
        {
            if(a[i+j+k]>maxx)
            maxx=a[i+j+k];
        }
    }
}
for(int i=1;i<=n;i++)
{
    for(int j=1;j<=m;j++)
    {
        for(int k=1;k<=s;k++)
        {
            if(a[i+j+k]==maxx)
            {
            cout<<i+j+k;
            return 0;    
            }
        }
    }
}
    return 0;

第四题。

Glass and Mug

问题陈述

AtCoder公司销售玻璃杯和马克杯。

高桥有一个容量为GG毫升的玻璃杯和一个容量为MM毫升的马克杯,满足G<MG<M。

最初,玻璃杯和马克杯都是空的。在执行以下操作KK次之后,确定玻璃杯和马克杯中分别含有多少毫升的水。

  • 如果玻璃杯装满了水(即玻璃杯恰好含有GG毫升的水),则将玻璃杯中的水全部倒掉。
  • 否则,如果马克杯是空的,则给马克杯加满水。
  • 否则,从马克杯向玻璃杯转移水,直到马克杯为空或玻璃杯被装满为止。

约束条件

  • 1\leq K\leq 1001≤K≤100
  • 1\leq G<M\leq 10001≤G<M≤1000
  • GG、MM和KK均为整数。

输入

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

KK GG MM

输出

在执行操作KK次后,按顺序打印玻璃杯和马克杯中含有的水量(以毫升为单位),中间用空格隔开。


示例输入 1

5 300 500

Copy

示例输出 1

200 500

Copy

操作将按照以下步骤进行。最初,玻璃杯和马克杯都是空的。

  • 给马克杯加满水。此时,玻璃杯有00毫升,马克杯有500500毫升的水。
  • 将水从马克杯转移到玻璃杯,直到玻璃杯被填满。此时,玻璃杯有300300毫升,马克杯有200200毫升的水。
  • 将玻璃杯中的水全部倒掉。此时,玻璃杯有00毫升,马克杯有200200毫升的水。
  • 将水从马克杯转移到玻璃杯,直到马克杯为空。此时,玻璃杯有200200毫升,马克杯有00毫升的水。
  • 给马克杯加满水。此时,玻璃杯有200200毫升,马克杯有500500毫升的水。

因此,在五次操作后,玻璃杯中有200200毫升,马克杯中有500500毫升的水。故应依次打印200200和500500,中间用空格隔开。


示例输入 2

5 100 200

Copy

示例输出 2

0 0

这道题题目其实就是让我们按照这个要求去走。但是需要特判一个条件。

如果

马克杯给玻璃杯倒水,玻璃杯满,那马克杯就不能倒了。

如果马克杯dow没了,玻璃杯还没满。那我马克杯还得再装。

代码如下

#include<bits/stdc++.h>
using namespace std;
int n,m,s,a,b,maxx=-999999;
int main(){
//    freopen("loop.in","r",stdin);a  pole
//    freopen("loop.out","w",stdout);b  mak
cin>>n>>m>>s;
for(int i=1;i<=n;i++)
{
if(a==m)
{
    a=0;
    }    
else if(b==0)
{
    b=s;
}
else
{
    if(a+b>=m)
    {
    b=b-(m-a);
        a=m;
    }
    else
    {
        a+=b;
        b=0;
    }
}
}
cout<<a<<" "<<b;
    return 0;


http://www.ppmy.cn/news/1575365.html

相关文章

Linux-IPC-消息队列

Linux IPC 之 消息队列&#xff08;Message Queue&#xff09; 在 Linux 中&#xff0c;消息队列&#xff08;Message Queue&#xff09; 是一种进程间通信&#xff08;IPC&#xff09;机制&#xff0c;允许进程通过一个消息队列在内核空间中交换数据。消息队列是基于 队列 数…

Java中JDK、JRE,JVM之间的关系

Java中的JDK、JRE和JVM是三个核心概念&#xff0c;其关系可概括为JDK > JRE > JVM&#xff0c;具体如下&#xff1a; 一、定义与作用 JDK&#xff08;Java Development Kit&#xff09; 定义&#xff1a;Java开发工具包&#xff0c;用于开发和编译Java程序。包含内容&…

C/C++ | 每日一练 (4)

&#x1f4a2;欢迎来到张胤尘的技术站 &#x1f4a5;技术如江河&#xff0c;汇聚众志成。代码似星辰&#xff0c;照亮行征程。开源精神长&#xff0c;传承永不忘。携手共前行&#xff0c;未来更辉煌&#x1f4a5; 文章目录 C/C | 每日一练 (4)题目参考答案基础容器序列容器std:…

【DeepSeek】【GPT-Academic】:DeepSeek集成到GPT-Academic(官方+第三方)

目录 1 官方deepseek 1.1 拉取学术GPT项目 1.2 安装依赖 1.3 修改配置文件中的DEEPSEEK_API_KEY 2 第三方API 2.1 修改DEEPSEEK_API_KEY 2.2 修改CUSTOM_API_KEY_PATTERM 2.3 地址重定向 2.4 修改模型参数 2.5 成功调用 2.6 尝试添加一个deepseek-r1参数 3 使用千帆…

智能优化算法:雪橇犬优化算法(Sled Dog Optimizer,SDO)求解23个经典函数测试集,MATLAB

一、雪橇犬优化算法 算法简介&#xff1a;雪橇犬优化算法&#xff08;Sled Dog Optimizer&#xff0c;SDO&#xff09;是2024年10月发表于JCR1区、中科院1区SCI期刊《Advanced Engineering Informatics》的新型仿生元启发式算法。它模拟雪橇犬的拉雪橇、训练和退役行为构建模型…

基于springboot后台管理的校园网站系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 随着我国经济的高速发展与人们生活水平的日益提高&#xff0c;人们对生活质量的追求也多种多样。尤其在人们生活节奏不断加快的当下&#xff0c;人们更趋向于足不出户解决生活上的问题&#xff0c;线上管理系统展现了其蓬勃生命力和广阔的前景。与此同时&#xff0c;在此…

结构型模式 - 组合模式 (Composite Pattern)

结构型模式 - 组合模式 (Composite Pattern) 组合模式是一种结构型设计模式&#xff0c;它允许你将对象组合成树形结构以表示 “部分 - 整体” 的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 经典的例子就是树形结构,里面可以是文件和文件夹的组合,文件…

《TransMamba:一种混合Transformer-Mamba网络用于单图像去雨》学习笔记

paper&#xff1a;2409.00410 GitHub&#xff1a;sunshangquan/TransMamba 目录 摘要 1、介绍 2、相关工作 2.1 单图像去雨 2.2 视觉Transformer 2.3 光谱域中的Transformer 2.4 光谱域中的图像恢复 2.5 视觉Mamba 3、方法 3.1 整体网络架构 3.2 光谱域变换块&am…