【好题】好题分享

简介: 好题分享

题目描述


四舍五入是个好东西。比如你只考了45分,四舍五入后你是50分再四舍五入你就是满分啦!qdgg刚考完拓扑。成绩十分不理想。但老师觉得他每天都很认真的听课很不容易。于是决定给他一个提高成绩的机会:让他的成绩可以在小数点后的任意位置四舍五入(也可以四舍五入为最接近的整数)。

但是这是有限制的。qdgg只能四舍五入t次。请帮助qdgg找到他在不超过t次四舍五入可获得的最高成绩。请注意,他可以选择不使用全部t次机会。此外,他甚至可以选择完全不对成绩进行四舍五入。

在这个问题中,使用经典的舍入规则:将数字四舍五入到第n个数字时,必须先看一下数字n + 1,如果小于5,则第n个数字将保持不变,而所有后续数字替换为0。否则,如果n + 1位数大于或等于5,则位置n处的位数将增加1(如果此位数等于9,这也可能会更改其他一些位数),并且随后的所有位数数字将替换为0。最后,所有尾随的零将被丢弃。

例如,如果将数字1.14舍入到小数点后第一位,则结果为1.1,而如果将1.5舍入到最接近的整数,则结果为2。四舍五入到小数点后第五位的数字1.299996121将得出数字1.3。


输入描述:

输入的第一行包含两个整数n和t表示小数(含小数点)的长度以及四舍五入的次数。


第二行为一个字符串表示qdgg的初始分数。

输出描述:

一行表示qdgg能得到的最高分数(请勿输出尾零)


7.1.png

7.1.png

1012-方块与收纳盒_牛客竞赛语法入门班数组模拟、枚举、贪心习题 (nowcoder.com)


现在有一个大小n*1的收纳盒,我们手里有无数个大小为1*1和2*1的小方块,我们需要用这些方块填满收纳盒,请问我们有多少种不同的方法填满这个收纳盒


输入描述:

第一行是样例数T

第2到2+T-1行每行有一个整数n(n<=80),描述每个样例中的n。

输出描述:

对于每个样例输出对应的方法数

#include <iostream>
using namespace std;
long long a[90];
int main()
{
    a[0] = 1;
    a[1] = 1;
    int n;
    cin >> n;
    for(int i = 2;i <= 80;i ++)
    {
        a[i] = a[i-1] + a[i-2];
    }
    while(n --)
    {
        int x;
        cin >> x;
        cout << a[x] << endl;
    }
}

时间(time) (nowcoder.com)


题目描述

        Apojacsleam是一个喜欢特殊时刻的人。


       他定义了一个时刻,若电子表显示ab:ba(24小时制),则该时刻为“回文时刻”(可以有前导零)。例如00:00就是回文时刻。


       给定一个时刻,求此时刻的上一个和下一个回文时刻。


J题附加:00:00就是24:00,没有24:00这一时刻


J题附加:输入可能有前导0,输出不含前导0,例如10:1的意思是10:01,而10:10的输出为10:10


输入描述:

两个正整数,用“:”隔开,表示小时和分钟,保证输入时间合法。

输出描述:

两行,两个时刻(不含前导0),用“:”隔开,表示上一个时刻和下一个时刻

#include <cstdio>
using namespace std;
int main() {
    int a, b, A, B;
    scanf("%d:%d", &a, &b);
    A = a, B = b;
    while (true) {
        b--;       //找之前的时间
        if (b < 0) //回到上个小时
            a--;
        b = (b + 60) % 60; //防止负数
        a = (a + 24) % 24;
        if (a % 10 == b / 10 && b % 10 == a / 10) {//回文
            printf("%d:%d\n", a, b);
            break;
        }
    }
    while (true) {
        B++;         //找之后的时间
        if (B == 60) //去到下个小时
            A++;
        B = (B + 60) % 60;
        A = (A + 24) % 24;
        if (A % 10 == B / 10 && B % 10 == A / 10) {
            printf("%d:%d\n", A, B);
            break;
        }
    }
    return 0;
}

「水」滔天巨浪 (nowcoder.com)


这个题没有要求输出前导0,如果要输出前导0,可以用%02d(宽度为2,左端补0)


题目描述

帕秋莉掌握了一种水属性魔法


在此之前,她已经忍了雾之湖上的妖精们很久了


现在,她决定反击!


雾之湖上有n只妖精排成一列,每只妖精的飞行高度严格单调递增,且高度1≤x≤1000


帕秋莉能清除掉列里面一个连续子区间的妖精,当且仅当它们被清理之后,帕秋莉仍然能还原出这个子区间的所有妖精的飞行高度


如,若妖精们飞行高度为1,3,4,5,6,8,那么可以清理飞行高度为4,5的两只妖精,因为清理之后,这两个空位之间的数据是唯一确定的


帕秋莉一次最多选择清除一个连续子区间,请问帕秋莉一次最多能清除多少妖精呢?


输入描述:

第一行一个整数n,表示有n只妖精下一行n个数ai,表示每只妖精飞行高度

输出描述:

输出一行,一个整数表示答案

#include<iostream>
using namespace std;
const int N=1010;
int a[N];
int main()
{
    int n,max1=0,b=0;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)scanf("%d",&a[i]);
    a[n+1]=1001;
    for(int i=1;i<=n;i++)
    {
        int j=0;
        while(a[i]+1==a[i+1]&&a[i]-a[i-1]==1)//双指针算法  
        {                                    //这里要用while 而不是if
            j++;
            i++;
        }
        max1=max(max1,j);//取最大值
    }
    printf("%d",max1);
    return 0;
}

Problem - 1777A - Codeforces

cf的题就是妙,有的不能按它的字面意思来写

7.2.png

如果这样写,会爆掉

因为a[i+1]*=a[i]不合适

#include<iostream>
using namespace std;
const long long N=100010;
long long a[N];
int main()
{
  long long t;
  cin>>t;
  while(t--){
    long long n,num=0;
    cin>>n;
    for(long long i=0;i<n;i++)
    {
      cin>>a[i];
    }
    for(long long i=0;i<n-1;i++)
    {
      if(a[i]%2==0&&a[i+1]%2==0||a[i]%2==1&&a[i+1]%2==1)
      {
        num++;
        a[i+1]*=a[i];
      }
    }
    cout<<num<<endl;
  }
}

image.png

正确解法

#include<iostream>
using namespace std;
const long long N=100010;
long long a[N];
int main()
{
  long long t;
  cin>>t;
  while(t--){
    long long n,num=0;
    cin>>n;
    for(long long i=0;i<n;i++)
    {
      cin>>a[i];
    }
    for(long long i=0;i<n-1;i++)
    {
      if(a[i]%2==0&&a[i+1]%2==0||a[i]%2==1&&a[i+1]%2==1)
      {
        num++;
        //a[i+1]*=a[i];
      }
    }
    cout<<num<<endl;
  }
}

Code over!

相关文章
|
18天前
|
人工智能 JSON 供应链
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
LucianaiB分享零成本畅用JVS Claw教程(学生认证享7个月使用权),并开源GeoMind项目——将JVS改造为科研与产业地理情报可视化AI助手,支持飞书文档解析、地理编码与腾讯地图可视化,助力产业关系图谱构建。
23534 12
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
|
6天前
|
Shell API 开发工具
Claude Code 快速上手指南(新手友好版)
AI编程工具卷疯啦!Claude Code凭借任务驱动+终端原生的特性,成了开发者的效率搭子。本文从安装、登录、切换国产模型到常用命令,手把手带新手快速上手,全程避坑,30分钟独立用起来。
1747 10
|
3天前
|
人工智能 开发工具 iOS开发
Claude Code 新手完全上手指南:安装、国产模型配置与常用命令全解
Claude Code 是一款运行在终端环境中的 AI 编程助手,能够直接在命令行中完成代码生成、项目分析、文件修改、命令执行、Git 管理等开发全流程工作。它最大的特点是**任务驱动、终端原生、轻量高效、多模型兼容**,无需图形界面、不依赖 IDE 插件,能够深度融入开发者日常工作流。
1169 1
|
5天前
|
人工智能 JSON BI
DeepSeek V4-Pro 接入 Claude Code 完全实战:体验、测试与关键避坑指南
Claude Code 作为当前主流的 AI 编程辅助工具,凭借强大的代码理解、工程执行与自动化能力深受开发者喜爱,但原生模型的使用成本相对较高。为了在保持能力的同时进一步降低开销,不少开发者开始寻找兼容度高、价格更友好的替代模型。DeepSeek V4 系列的发布带来了新的选择,该系列包含 V4-Pro 与 V4-Flash 两款模型,并提供了与 Anthropic 完全兼容的 API 接口,理论上只需简单修改配置,即可让 Claude Code 无缝切换为 DeepSeek 引擎。
1236 0
|
12天前
|
人工智能 缓存 Shell
Claude Code 全攻略:命令大全 + 实战工作流(完整版)
Claude Code 是一款运行在终端环境下的 AI 编码助手,能够直接在项目目录中理解代码结构、编辑文件、执行命令、执行开发计划,并支持持久化记忆、上下文压缩、后台任务、多模型切换等专业能力。对于日常开发、项目维护、快速重构、代码审查等场景,它可以大幅减少手动操作、提升编码效率。本文从常用命令、界面模式、核心指令、记忆机制、图片处理、进阶工作流等维度完整说明,帮助开发者快速上手并稳定使用。
2789 4
|
3天前
|
人工智能 JSON BI
Claude Code 搭配 DeepSeek V4-Pro 完整测评:超越 Claude Sonnet 4.5,低成本高效能背后的真实表现
Claude Code 凭借强大的代码理解、工程执行与自动化任务能力,成为开发者广泛使用的 AI 编程工具。但原生模型的调用成本较高,长期高频使用会带来明显开销。DeepSeek V4 系列模型发布后,凭借优秀的代码能力与兼容 Anthropic 协议的 API 接口,成为替代原生模型的高性价比选择。本文完整记录将 Claude Code 对接 DeepSeek V4-Pro 的配置流程、真实任务测试效果、优势亮点与必须注意的使用限制,为开发者提供可直接落地的参考方案。
791 1
|
5天前
|
人工智能 Linux API
hermes agent 安装教程:安装优化 + 模型配置 + 工具启用指南
Hermes Agent 是 Nous Research 于 2026 年发布的开源自主进化 AI 智能体框架(MIT 协议,Python 编写)。它通过任务沉淀技能、持久化记忆、原生多工具集成与并行子智能体,实现“越用越强”。支持 Linux/macOS/WSL2,安装便捷,面向个人与企业的新一代私有化 AI 助手。