程序设计Week13 必做部分

2023-05-16

A - TT 的神秘任务1(必做)

题目描述

这一天,TT 遇到了一个神秘人。

神秘人给了两个数字,分别表示 n 和 k,并要求 TT 给出 k 个奇偶性相同的正整数,使得其和等于 n。

例如 n = 10,k = 3,答案可以为 [4 2 4]。

TT 觉得这个任务太简单了,不愿意做,你能帮他完成吗?

本题是SPJ

Input
第一行一个整数 T,表示数据组数,不超过 1000。

之后 T 行,每一行给出两个正整数,分别表示 n(1 ≤ n ≤ 1e9)、k(1 ≤ k ≤ 100)。

Output
如果存在这样 k 个数字,则第一行输出 “YES”,第二行输出 k 个数字。

如果不存在,则输出 “NO”。

Example Input

8
10 3
100 4
8 7
97 2
8 8
3 10
5 3
1000000000 9

Example Output

YES
4 2 4
YES
55 5 5 35
NO
NO
YES
1 1 1 1 1 1 1 1
NO
YES
3 1 1
YES
111111110 111111110 111111110 111111110 111111110 111111110 111111110 111111110 111111120

想法

将一个数分成k个数,我们尽量让这k个数相等,所有首先用t1=n/k记录商,t2=n-k*t1记录余数,判断将t2加到t1上去会不会破环原t1奇偶性。
我们知道如果t2是偶数,直接将t2加到一个t1上去不会破坏奇偶性;当t2为奇数时就要想办法把t2在不改变t1整体奇偶性的前提下转化为偶数,如果k为奇数,从每个t1中减一将k加到t2中去这样就可以在不改变整体奇偶性的前提下让t2转化成偶数,若k为偶数则输出NO.

代码

#include<iostream>
#include<cstdio>
using namespace std;
int t, n, k; 
int main()
{
    scanf("%d", &t);
    while (t--)
    { 
        scanf("%d%d", &n, &k);
        int t1 = n / k;     //商值
        int t2 = n - k * t1;//余数
        if(t1<1)
        {
            cout << "NO" << endl;
            continue;
        } 
        if (t2 & 1) //余数奇数无解;但要看看能否转换为偶数
        {
            if (k & 1 && t1 > 1)
            {
                t1 -= 1;
                t2 += k;
                cout << "YES" << endl;
                cout << t1 + t2 << " ";
                k--;
                while (k--)
                {
                    cout << t1 << " ";
                }
                cout << endl;
                continue;
            }
            cout << "NO" << endl;
            continue;
        }
        else
        {
            cout << "YES" << endl;
            cout << t1 + t2 << " ";
            k--;
            while (k--)
            {
                cout << t1 << " ";
            }
            cout << endl;
            continue;
        }
    }
    system("pause");
    return 0;
}


B - TT 的神秘任务2(必做)

题目描述

在你们的帮助下,TT 轻松地完成了上一个神秘任务。

但是令人没有想到的是,几天后,TT 再次遇到了那个神秘人。

而这一次,神秘人决定加大难度,并许诺 TT,如果能够完成便给他一个奖励。

任务依旧只给了两个数字,分别表示 n 和 k,不过这一次是要求 TT 给出无法被 n 整除的第 k 大的正整数。

例如 n = 3,k = 7,则前 7 个无法被 n 整除的正整数为 [1 2 4 5 7 8 10],答案为 10。

好奇的 TT 想要知道奖励究竟是什么,你能帮帮他吗?

Input
第一行一个整数 T,表示数据组数,不超过 1000。

之后 T 行,每一行给出两个正整数,分别表示 n(2 ≤ n ≤ 1e9)、k(1 ≤ k ≤ 1e9)。

Output
对于每一组数据,输出无法被 n 整除的第 k 大的正整数。

Example Input

6
3 7
4 12
2 1000000000
7 97
1000000000 1000000000
2 1

Example Output

10
15
1999999999
113
1000000001
1

想法

这一道题相对简单不少,和上一题类似,首先找到商值,再找到余数,最后输出就可以了

代码

#include <cstdio>
#include <iostream>
using namespace std;
int t, n, k;
int main()
{
    scanf("%d", &t);
    while (t--)
    {
        scanf("%d%d", &n, &k);
        int t1 = (k-1) / (n-1);      //商值
        int t2 = (k+n-1-1) %(n-1); //余数
        cout << t1 * n + t2 +1<< endl;
    }
//    system("pause");
    return 0;
}

C - TT 的奖励(必做)

题目描述

在大家不辞辛劳的帮助下,TT 顺利地完成了所有的神秘任务。

神秘人很高兴,决定给 TT 一个奖励,即白日做梦之捡猫咪游戏。

捡猫咪游戏是这样的,猫咪从天上往下掉,且只会掉在 [0, 10] 范围内,具体的坐标范围如下图所示。
在这里插入图片描述

TT 初始站在位置五上,且每秒只能在移动不超过一米的范围内接住掉落的猫咪,如果没有接住,猫咪就会跑掉。例如,在刚开始的一秒内,TT 只能接到四、五、六这三个位置其中一个位置的猫咪。

喜爱猫咪的 TT 想要接住尽可能多的猫咪,你能帮帮他吗?

Input
多组样例。每组样例输入一个 m (0 < m < 100000),表示有 m 只猫咪。

在接下来的 m 行中,每行有两个整数 a b (0 < b < 100000),表示在第 b 秒的时候有一只猫咪掉落在 a 点上。

注意,同一个点上同一秒可能掉落多只猫咪。m = 0 时输入结束。

Output
输出一个整数 x,表示 TT 可能接住的最多的猫咪数。

Sample Input

6
5 1
4 1
6 1
7 2
7 2
8 3
0

Sample Output

4

想法

这里可以采用动态规划的思想,用dp[i][j] 表示第i秒时j位置接到的馅饼的总数,每个状态都是由后一秒的左边一个位置,位置不动和右边一个位置的最大值加当前状态的值构成。
则状态转换方程为 dp[i][j] += max(dp[i+1][j-1], max(dp[i+1][j], dp[i+1][j+1])) 我们从最后一秒开始往前遍历,这样dp[0][5]就是最后的结果。注意如果是边界,则超出边界的那个位置不参与判断。

代码

#include <cstdio> 
#include <cstring> 
#include <iostream> 
#include <vector>
using namespace std;   
int n, x, t, mt, dp[12][100010];
int main()
{
    while (~scanf("%d",&n) && n)
    {
        mt = 0;
        memset(dp, 0, sizeof(dp));
        for (int i = 0; i < n;i++)
        {
            scanf("%d%d", &x, &t);
            dp[x][t]++, mt = max(mt, t);
        }
        for (int j = mt - 1; j >= 0;j--)
            for (int i = 0; i <=10;i++)
            {
                if (i == 0)
                    dp[i][j] += max(dp[i][j + 1], dp[i + 1][j + 1]);
                     //位置为 0 时,少一个位置
                else
                    dp[i][j] += max(dp[i - 1][j + 1], max(dp[i][j + 1], dp[i + 1][j + 1])); 
                    //虽然10的位置多加了一个,但是它下一秒右边的值始终为 0 ,所以不影响计算
            }
                
        printf("%d\n",dp[5][0]);
    }
   // system("pause");
    return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

程序设计Week13 必做部分 的相关文章

  • Lenovo ThinkPad T450s更换WiFi模块、指纹模块、维修SD卡针

    本电脑2015年8月份购买的 xff0c 2018年4月份之后开始出现问题 xff0c 首先指纹很难开机 xff0c 很难录入 xff0c 然后就是SD卡不知道什么时候无法使用了 xff0c 由于笔记本不常完也就没太注意 xff0c 最近有
  • 2.4G&5G WiFi 5V供电大短路,维修更换5G芯片

    故障类别 xff1a 无WiFi信号 故障现象 xff1a 漏电 xff0c 无2 4G和5GWiFi 故障描述 xff1a 开机后发现电流比其它板子大一点 xff0c 并且无异常发热情况 附件 xff1a 分析过程 xff1a 根据故障找
  • 路由器不开机——维修更换MT7621AT CPU

    故障类别 xff1a 不开机 故障现象 xff1a 210mA横流不开机 故障描述 xff1a 发现CPU异常发烫不开机 xff0c 其它地方未有发热现象 附件 xff1a 原因分析 xff1a 开机测量各路电压 xff0c 发现均有电压
  • 编译QT 5.9.7 msvcr2013 x86 32位版本

    因为项目需要 xff0c 用到了qt msvcr2013 x86 版本 但是官方下载的qt安装包里面只有x64的 xff0c 因此决定自己编译x86的版本 编译所需要的工具 xff1a qt源码包 xff0c python xff0c vs
  • <C语言>打印 n 阶魔方阵( n 为奇数),魔方阵的每一行、每一列和对角线元素之和都相等

    打印魔方阵 xff0c 首先我们得知道魔方阵的编写规律 xff1a 魔方阵的填充规律如下 xff1a 假设当前创建了一个矩阵 span class token keyword int span matrix span class token
  • 矩阵连乘之求最优值与构造最优解——呕心沥血篇

    矩阵连乘 详细讲解 初次接触dp xff0c 就看到很多位大佬给出自己的见解 xff0c dp算是最难的算法之一吧 xff0c 主要在于灵活度高 xff0c 需要自己推出动态规划方程 100个动态规划方程传送门涉及到dp问题那么for循环一
  • (C)数组,指针

    数组 xff1a int a 8 指针数组 xff0c 每个单元存放一个指针 每个指针是占8个字节在64位 xff0c 32位占4个字节 int xff08 a xff09 8 数组指针 xff0c 一个指向数组的指针 数组定义 xff1a
  • week5 单调栈 最大矩形

    Titile 给一个直方图 xff0c 求直方图中的最大矩形的面积 例如 xff0c 下面这个图片中直方图的高度从左到右分别是2 1 4 5 1 3 3 他们的宽都是1 xff0c 其中最大的矩形是阴影部分 Input 输入包含多组数据 每
  • ERROR 1238 (HY000): Variable ‘secure_file_priv‘ is a read only variable

    在进行数据导出操作的时候 xff0c 报错 xff1a ERROR 1238 HY000 Variable secure file priv is a read only variable 该变量是可读的 xff0c 不能用set设置 xf
  • kali安装目录扫描工具-dirsearch和git泄露利用脚本GitHack

    目录扫描工具 dirsearch 下载dirsearch git clone https github com maurosoria dirsearch 进入dirsearch目录 xff0c 进行扫描 这里我尝试了几次不同的用法 xff0
  • C语言—写一个函数求unsigned int型变量x在内存中二进制1的个数

    题目 xff1a 写一个函数求unsigned int型变量x在内存中二进制1的个数 思路 xff1a 先把num除2取余 xff0c 余数为1 xff0c count 43 43 再让num 61 num 2 取整 循环 xff0c 直到
  • Proteus 8.9下载安装指南

    因为Keil中的代码需要进行仿真 xff0c 除了用实际的开发板 xff0c 仿真软件也很实用 虽然已经装了AD xff0c 但是网上关于AD仿真的资料相对较少 今天装一个Proteus用用 安装包 xff1a Proteus8 9 提取码
  • STM32烧录

    资源包 xff1a STLink驱动 软件包 提取码 xff1a cgcg 结构 xff1a 通过RX TX脚连接到MCU芯片串口引脚 xff0c USB串口转换器 xff08 USB TTL的电路 xff09 一边连接RX TX引脚 xf
  • stm32使用串口进行通讯之发送数据

    前提准备 xff1a 1 库函数基础模板 2 stlink下载器 USB TTL下载器 单片机最小开发板stm32F103C8T6 3 面包板及相关接线 4 vscode与keil的联合开发更流畅 5 串口软件 xff0c 这个下面视频有
  • ubuntu 16.04挂载磁盘,开机丢失

    一般磁盘可能要先格式化为指定格式 sudo mkfs t ext4 dev sdb1 直接mount磁盘分区 xff0c 比如 sudo mount dev sdb1 var 当时起作用了 xff0c 但是reboot之后 xff0c 就会
  • stm32使用外部flash w25Q128实现读写操作

    前言 数据保存是所有项目的基本功能 xff0c 但是对于STM32C8T6的原flash进行操作 xff0c 一方面大小有可能不够 xff0c 另一方面单片机的运行程序本来就放在这个里面 xff0c 所以还是外接的好 这里选用w25Q128
  • Keil(MDK)STM32和51版本详细安装

    前言 保姆级教程 xff0c 多次反复安装 xff0c 实测可用 链接包失效可留言 安装注意 keil公司被ARM公司收购 xff0c 收购后就改名MDK xff0c 所以keil的下载包也是以MDK命名 安装路径不能带有中文 目录不能和5
  • STM32 使用LCD12864显示屏(串行方式)

    LCD12864 简介 12864LCD液晶显示模块是一款4位 8位并行 2线或3线接口方式 xff0c 内部含有国际一级 二级简体中文字库的图形点阵液晶模块 显示分辨率为12864 xff0c 内置8198个1616点汉字 xff0c 和
  • 快速学习C语言指针操作

    一 了解底层 指针说到底是在对数据进行操作 先了解数据的存储 xff0c 看看指针操作的位置 一位数据的存储 xff1a 将一位数据置1 xff0c 如图所示 xff0c 首先地址位需要置1 xff0c 再将数据输入位置1 xff0c 那么
  • MG90S 舵机180°角度驱动

    MG90S简介 舵机 xff1a 是一种角度伺服电机 xff0c 一般是由齿轮组 电位器 舵机控制电路 直流电机构成 由发送控制信号来控制输出轴的位置 数字舵机与模拟舵机的区别 xff1a MG90S是一款常用的数字舵机 xff0c 还有一

随机推荐

  • MPU6050 6轴姿态传感器的分析与使用(一)

    一 MPU6050简介 MPU6050是一个6轴姿态传感器 xff08 3轴加速度计和3轴陀螺仪传感器 xff09 xff0c 可以测量芯片自身X Y Z轴的加速度 角度参数 xff0c 通过数据融合 xff0c 可以得到姿态角 二 简介分
  • 基于51单片机的步进电机驱动,亲测无误

    文章目录 前言一 我们该如何实现电机驱动 xff1f 二 驱动实现1 硬件准备2 软件编写3 实物 总结 前言 这一次要分享的项目是最近接单做的一个小玩意儿 xff0c 基于51单片机的步进电机驱动 最近积压了两个月的小项目会在后面陆续发出
  • 对 string 类的输入(直接看总结)

    一 简述 cin get 和 cin getline 解决 char 中的问题 xff0c 遇到换行符时才停止 对于 string 类 xff0c 不能使用cin get 和cin getline 进行输入 xff0c 会报错 xff0c
  • C++中字符串的比较(针对C-风格字符串)

    一 简述 在头文件 lt cstring gt 中 xff0c 有一个函数strcmp 二 详细介绍 strcmp 比较字符串 格式为 strcmp const char Str1 const char Str2 xff0c 由此可见 xf
  • 关于文件结束符EOF

    一 简述 我们知道 xff0c C 43 43 中可以通过cin xff0c cin get xff0c cin getline xff0c getline 等对字符串进行输入 xff08 若对这些输入模糊 xff0c 可以阅读这篇文章 x
  • ubuntu 1810上snap安装nextcloud

    尝试在ubuntu1810上安装nextcloud 因为服务器配置好了xrdp远程访问 xff0c 所以直接准备在sofware center进行安装 安装了半天却提示 unable to install nextcloud snap xx
  • 关于cout 输出 char 型字符 ++ch和 ch+1 不同的结果(直接看详解)

    一 简述 今天在做练习题时注意到了之前所没有注意到的问题 xff1a 若给同样的 ch xff0c cout lt lt 43 43 ch 与 cout lt lt ch 43 1 输出后的结果不一样 浅思之后明白了 xff0c 其实这个现
  • C++定义与声明

    一 简述 什么是定义 xff1f 什么是说明 xff1f 相信很多小伙伴都对这两个概念模糊不清 xff0c 下面我就对其简单介绍一下 二 详细说明 定义 全称为定义声明 xff0c 给变量分配空间 声明 全称为引用声明 xff0c 不给变量
  • MySQL学习日记(六)用户管理、权限安全

    文章目录 用户管理和权限安全1 user权限表1 1 用户列1 2 权限列1 3 安全列1 4 资源控制列 2 其他权限表 xff08 db tables priv columns priv procs priv xff09 2 1 db表
  • Linux上的网络配置——bonding配置

    网络接口配置bonding Bonding 将多块网卡绑定同一IP地址对外提供服务 xff0c 可以实现高可用或者负载均衡 直接给两块网卡设置同一IP地址是不可以的 通过bonding xff0c 虚拟一块网卡对外提供连接 xff0c 物理
  • python--直接通过cmd找到pip所安装库的位置

    https blog csdn net weixin 44345862 article details 87003478
  • 家中闲置旧电脑改装家用NAS(入门教程)

    家中闲置旧电脑改装家用NAS xff08 纯小白入门教程 xff09 什么是NAS xff1f NAS的基本知识在国内的常用品牌 NAS品牌的配置问题作者的硬件配置 装机正文准备工作旧电脑的准备工作 xff08 已经完成或无这方面问题的可跳
  • 适用于 Linux 的 Windows 子系统 (WSL)

    适用于 Linux 的 Windows 子系统 xff08 WSL xff09 描述什么是 适用于 Linux 的 Windows 子系统 系统要求Windows 10 Windows 11 查看计算机系统的版本 虚拟化功能启用虚拟化功能禁
  • python爬取4399页面

    提示 xff1a 该段代码只可爬取4399页面的代码和图片 xff0c 适合新手爬虫入门学习 python爬取4399页面 代码总结 代码 代码如下 xff1a import urllib span class token punctuat
  • Arduino手动安装esp8266开发板

    Arduino手动安装esp8266开发板可以用离线安装包 xff0c 确定就是离线安装包网上不好找 xff0c 版本也不齐全 xff0c 无法找到某个特定版本的离线安装包 xff0c 好处是直接双击运行 xff0c 傻瓜式安装就好了 xf
  • 修改启动的进程的窗口标题

    最近在改一个项目里的小功能 原先的情况是在网页上点击按钮 xff0c ocx控件写临时 rdp文件 xff0c 根据这个文件启动mstsc exe 现在要做的工作是把远程桌面连接窗口的标题改成能显示特定信息的标题 感谢 http blog
  • Week5作业

    A题 最大矩形 题目描述 给一个直方图 xff0c 求直方图中的最大矩形的面积 例如 xff0c 下面这个图片中直方图的高度从左到右分别是2 1 4 5 1 3 3 他们的宽都是1 xff0c 其中最大的矩形是阴影部分 input 输入包含
  • Week11程序设计 A - 必做题11-1 计蒜客 - T1065

    题目描述 蒜头君从现在开始工作 xff0c 年薪 N 万 他希望在蒜厂附近买一套 60 平米的房子 xff0c 现在价格是 200 万 假设房子价格以每年百分之 K 增长 xff0c 并且蒜头君未来年薪不变 xff0c 且不吃不喝 xff0
  • Week11程序设计 B - 必做题11-2 计蒜客 - T3176

    题目描述 蒜头君的班级里有 n 2 个同学 xff0c 现在全班同学已经排列成一个 n n 的方阵 xff0c 但是老师却临时给出了一组新的列队方案为了方便列队 xff0c 所以老师只关注这个方阵中同学的性别 xff0c 不看具体的人是谁这
  • 程序设计Week13 必做部分

    A TT 的神秘任务1 xff08 必做 xff09 题目描述 这一天 xff0c TT 遇到了一个神秘人 神秘人给了两个数字 xff0c 分别表示 n 和 k xff0c 并要求 TT 给出 k 个奇偶性相同的正整数 xff0c 使得其和