小测试4.10

这篇具有很好参考价值的文章主要介绍了小测试4.10。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今天晚上进行可小测试

来看看题目都咋样吧!

附近的最小值

Description

fly学姐有一个序列a[1],a[2],...,a[n]。

给定一个正整数k,请问对于每一个1到n之间的序号i,a[i−k],a[i−k+1],...,a[i+k]这2k+1个数中的最小值是多少?

当某个下标超过1到n的范围时,数不存在,求最小值时只取存在的那些值。

Input

输入的第一行包含一整数n。

第二行包含n个整数,分别表示a[1],a[2],...,a[n]。

第三行包含一个整数k。

Output

输出一行,包含n个整数,分别表示对于每个序号求得的最小值

Sample Input 1 

5
5 2 7 4 3
1

Sample Output 1

2 2 2 3 3

Hint

对于 30% 的评测用例,1<=n<=1000,1<=a[i]<=1000。

对于 50% 的评测用例,1<=n<=10000,1<=a[i]<=10000。

对于所有评测用例,1<=n<=1000000,1<=a[i]<=100000

对题目的第一反应就是枚举

完全的按照题目给的思路来,

没想到不会卡时间一遍过

#include<stdio.h>

int a[1000001];
int ans[1000001]={0};//答案数组

int main(){
int n,k;
scanf("%d",&n);
for(int j=1;j<=n;j++)
scanf("%d",&a[j]);
scanf("%d",&k);


for(int j=1;j<=n;j++){
    int minr=10000999;

    for(int g=j-k;g<=j+k;g++){
        if(g>=1&&g<=n&&a[g]<minr){
            minr=a[g];
            ans[j]=a[g];
        }//每个循环得出一个答案
    }
}


for(int h=1;h<=n;h++)
    printf("%d ",ans[h]);//直接输出答案,不会存在没答案的

return 0;
}

第一个题目,还是非常的友好的呀 ,爱了,爱了 

第二个

环形杀人事件

Description

一天,杀人狂魔李华突然想要杀人,就把他抓来的N个英雄依次分配一个编号,第一个人的编号为1号,第二个人的编号为2号,第N个人的编号就为N号,他们按顺序围成一个环形,现在给出一个数字M,第一个人开始从1报数,第二个人报的数就是2,依次类推,报到M这个数字的人被杀了(1a秒了),紧接着从被杀了的这个人的下一个人重新开始从1报数,和上面过程类似,报到M的人被杀,直到N个人全部被杀掉,请问,这个被杀的顺序是什么?

Input

给出两个正整数N、M

Output

输出被杀的顺序

Sample Input 1 

10 3

Sample Output 1

3 6 9 2 7 1 8 5 10 4

Hint

1<n<=10000

1<m<=100

这个我一看,没错就是递归来搞定,难度不大就是,写代码得细心,不要因为一点点的逻辑卡测试半天

而且可以用链表来写,用c++的我倒是觉得可以但是c语言手写链表,万一错了一点,从那开始纠正呀

可以用普普通通的数组加上一个标记数组解决的事情就不要太麻烦

上代码

#include<stdio.h>
int a[100050]={0};
int n,m;

void kill(int x,int y){
    a[y]=1;
    printf("%d ",y);
    x--;
if(x==0){
    return;
}
else{
    int h=0;
    while(h!=m){
        y++;
        if(y>n){
            y=y-n;//我的数组是1到n所以不可以用取余,会出现0的(搞了半天)
        }
        if(a[y]==0){
            h++;
        }

    }

    kill(x,y);
}


}

int main(){
scanf("%d%d",&n,&m);
kill(n,m);
return 0;
}

难度也是一般般啦(不可以乱说的) 

下一个

lx学长的羊圈

Description

lx学长是一个养羊大户,有成千上百个羊圈。可是却一次也没来羊圈帮过忙,今天lx学长被叫来羊圈给羊羊们施展成双成对大法。关于成双成对大法,lx学长虽然没有实践过,但是他表现得胸有成竹。而成双成对大法需要类型相同的羊才能完成,不过lx学长不知道每个羊圈能否完成成双成对大法,lx学长太懒了,想请你帮帮他。

羊圈里面有三种类型的羊,分别为(),[].{},lx学长的羊圈和别家的羊圈不同,羊圈中也可能不只有羊。

lx学长会给你一串字符,不超过100个字符,可能包括括号、数组、字母、标点符号、空格,你的任务是检查这一串字符中的(),[],{}是否匹配。

Input

一行数据,不超过100个字符并含有( ,) ,[, ],{, }一个或多个。

Output

如果匹配就输出“yes”,不匹配输出“no”

Sample Input 1 

sin(20+10)

Sample Output 1

yes

Sample Input 2 

{[}]

Sample Output 2

no

这个稍微的难了一点,但是你要是掌握了栈并且你想起了栈

那这题目对你而言,不过是细节的处理的问题了

遇到左符号就入栈,遇到右边的就出栈比较,符合则继续,不符合就退出循环

要是比要最后栈空了,就是符合的

上代码看看

#include<stdio.h>
#include<string.h>

char a[12000];
char b[12000];

int main()
{
    gets(a);

    int n=strlen(a);

    int top=0;

    int ans=1;

    for(int g=0; g<n; g++)
    {

        switch(a[g])
        {
        case '(':
            b[top]='(';
            top++;
            break;

        case '[':
            b[top]='[';
            top++;
            break;
        case '{':
            b[top]='{';
            top++;
            break;

        case ')':
            if(top>=1){
            top--;
            if(b[top]!='(')
                ans=0;
            }
            else{
                ans=0;
            }
            break;

        case ']':
            if(top>=1){
            top--;
            if(b[top]!='[')
                ans=0;
            }
            else{
                ans=0;
            }
            break;

        case '}':
            if(top>=1){
            top--;
            if(b[top]!='{')
                ans=0;
            }
            else{
                ans=0;
            }
            break;

        default:
            break;

        }
        if(ans==0)
            break;
    }
    if(ans==1&&top==0){
        printf("yes\n");
    }
    else{
        printf("no\n");
    }


    return 0;
}

记得出栈比较是拿另外的一半符号比较,不和自己比,错了看了半天觉得没问题,反复测试数据发现了

我真的是离谱 ,遇到}就出栈看是不是}(咋可能是呀,右符号不入栈的)

下一个,下一个

下一个更大元素

Description

给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素 。

数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1 。

Input

第一行为n,代表nums的大小(1≤n≤10000)

第二行 n个数

Output

输出一个长度n的数组,每个元素代表对应的循环数组中比i大的下一个元素

Sample Input 1 

3
1 2 1

Sample Output 1

2 -1 2

Sample Input 2 

5
1 2 3 4 3

Sample Output 2

2 3 4 -1 4

这题目也是枚举呀

从1枚举到n

然后输出完全可以的,废话不多讲了直接上代码

#include<stdio.h>

int n,nums[100000];

void prin(int y){
if(y==n+1){
    return ;
}
else{
    for(int j=y+1;;j++){
            if(j>n)
            j=j-n;
        if(nums[j]>nums[y]){
            printf("%d ",nums[j]);
            break;
        }
        if(j==y){
            printf("-1 ");
            break;
        }
    }
    prin(y+1);

}
}


int main(){

scanf("%d",&n);
for(int j=1;j<=n;j++)
    scanf("%d",&nums[j]);

prin(1);


return 0;
}

呜呜呜我是菜鸡,就写了折磨多

第5个不对堆,所以时间老是超限明天我要ko那题,再去看看最后一个 

ok

今天撒花谢幕啦啦啦啦!文章来源地址https://www.toymoban.com/news/detail-410431.html

到了这里,关于小测试4.10的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Objective-C学习笔记(ARC,分类,延展)4.10

    1.自动释放池@autoreleasepool: 存入到自动释放池的对象,在自动释放池销毁时,会自动调用池内所有对象的release方法。调用autorelease方法将对象放入自动释放池。     Person *p1 = [ [ [ Person alloc ] init ] autorelease]; 2.在类方法里写一个同名的方法,用于创造对象。 (+)instancetype pers

    2024年04月17日
    浏览(39)
  • Linux 4.10 将带来深远影响的三项小改变

    Linux的演进永不停歇。Linus Torvalds一直在努力工作,希望能够在新的内核版本当中(4.11)融入更多变化。不过在目前的Linux 4.10中,我们同样发现了三组能够有效提升性能并实现多种前所未有功能集的变更。 Linux的演进永不停歇。Linus Torvalds一直在努力工作,希望能够在新的内核版

    2024年02月08日
    浏览(27)
  • Echarts数据可视化 第4章 Echarts可视化图 4.10 热力图

    Echarts数据可视化 Echarts数据可视化:入门、实战与进阶 第4章 Echarts可视化图 4.10 热力图 热力图是一种密度图,使用不同颜色和不同颜色深浅程度来表示数据量的区别。 举个栗子 渲染效果 解释一下这个图 其中横轴代表小时,纵轴表示星期几,图中不同颜色的区块代表了数据

    2024年02月14日
    浏览(45)
  • 【软件测试】PDM、PTM、IPD介绍(捣鼓一晚上的血泪知识)

    引言: 文章大部分的文字来源于各大网站以及论文的收集,文章末尾有对应的参考文献。 产品数据管理[1]的英文名是Product Data Management,缩写是PDM。 PDM是一种帮助工程师和其他人员管理产品数据和产品研发过程的工具,利用数据模型对制造企业的产品研发设计过程进行管理

    2023年04月09日
    浏览(30)
  • TensorFlow2进行CIFAR-10数据集动物识别,保存模型并且进行外部下载图片测试

    首先,你已经安装好anaconda3、创建好环境、下载好TensorFlow2模块并且下载好jupyter了,那么我们就直接打开jupyter开始进行CIFAR10数据集的训练。 第一步:下载CIFAR10数据集 下载网址:http://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz 将数据集下载到合适的路径,方便模型训练的时候调用

    2024年02月08日
    浏览(36)
  • Django(10)-项目实战-对发布会管理系统进行测试并获取测试覆盖率

    在发布会签到系统中使用django开发了发布会签到系统, 本文对该系统进行测试。 django.test 是Django框架中的一个模块,提供了用于编写和运行测试的工具和类。 django.test 模块包含了一些用于测试的类和函数,如: TestCase :这是一个基类,用于编写Django测试用例。继承自 unit

    2024年02月10日
    浏览(45)
  • 【flink番外篇】10、对有状态或及时 UDF 和自定义算子进行单元测试

    一、Flink 专栏 Flink 专栏系统介绍某一知识点,并辅以具体的示例进行说明。 1、Flink 部署系列 本部分介绍Flink的部署、配置相关基础内容。 2、Flink基础系列 本部分介绍Flink 的基础部分,比如术语、架构、编程模型、编程指南、基本的datastream api用法、四大基石等内容。 3、

    2024年02月02日
    浏览(53)
  • 小米路由器今天中午10点有大动作 猜猜100是什么意思

    小米路由器今天将会有大动作,就是不知道100这组数字是什么意思。 小米路由器的“铁丝门”余温还没过去,新一轮的话题就要开始了。 昨天下午,小米路由器总经理@唐沐thomas在微博上放出了一张非常有意思的图片,图片上只有“100”这一个数字,而从形状来看,后边的两

    2024年02月07日
    浏览(37)
  • python对医疗数据进行分析,看看哪个年龄段最容易生病

    前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 什么是数据分析 明确目的–获得数据(爬虫,现有,公开的数据)–数据预处理——数据可视化——结论 准备 环境使用: 在开始写我们的代码之前,我们要准备好运行代码的程序 Anaconda (python3.9) – 识别我们写的代码 开发工

    2024年02月03日
    浏览(45)
  • 一起来看看元宇宙为什么有必要与IPFS进行精确组合?

    基本上,元宇宙的所有产品都将是NFT,但这将导致越来越多的NFT数据,这也是元宇宙寻求突破的地方。 重要的是,数据必须永久存储,数据不能被操作以确保唯一性。也许你已经猜到了,在区块链中有满足这些要求的,即IPFS分布式存储。 Filecoin是一个激励层,运行在IPFS和区

    2024年02月10日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包