题目练习(生死时速2.0版)

题目一(Before an Exam)

题意翻译

题目背景

明天皮特将要考生物。他并不很喜欢生物,但在 d 天前他得知他将不得不参加此次考试。皮特严厉的父母勒令他立即复习,因此他在第 i 天将需要学习不少于 minTimei​ 小时,不多于 maxTimei​ 小时。他们同时警告皮特:考试前一天,他将被检查他复习的完成情况。

因此,今天皮特的父母会要求他展示他考前复习的学习时间表。然而,他只记录这 d 天以来他复习所用的总计用时sumTime(小时).现在他希望知道他能否给他的父母展示一份时间表,包含 d 个数,每个数 schedulei​ 表示皮特第 i 天在复习生物上的用时(单位为小时),并应满足上文提及的要求。

题目输入

第一行包含两个数:d,sumTime。

(1≤d≤30,0≤sumTime≤240),意义如上所述。

接下来 d 行,每行两个数:minTimei​,maxtimei​,两个数之间有一个空格,意义如上。(0≤minTimei​≤maxTimei​≤8)

题目输出

如果有解,在单独一行输出 YES,换行,输出任意一种满足上文要求的解。如果无解,在单独一行中输出 NO

输入输出样例

输入 #1复制

1 48
5 7

输出 #1复制

NO

输入 #2复制

2 5
0 1
3 5

输出 #2复制

YES
1 4 

代码实现:

#include<stdio.h>
struct fun
{int max;int min;int cha;
}time[40];
int main()
{int d, sumtime;scanf("%d%d", &d, &sumtime);int p1 = 0, p2 = 0;for (int i = 1; i <= d; i++) {scanf("%d%d", &time[i].min, &time[i].max);p1 += time[i].max;p2 += time[i].min;time[i].cha = time[i].max - time[i].min;}if (sumtime<p2 || sumtime>p1) {printf("NO\n"); return 0;}else printf("YES\n");int f = 0;int p3 = sumtime - p2;if (p3 != 0) {for (int i = 1; i <= d; i++) {for (int j = 1; j <= time[i].cha; j++) {time[i].min++;p3--;if (p3 == 0) {f = 1; break;}}if (f == 1)break;}}for (int i = 1; i <= d; i++) {printf("%d ", time[i].min);}return 0;
}

结果:

样例一

题目二(最大子段和)

题目描述

给出一个长度为 n 的序列 a,选出其中连续且非空的一段使得这段和最大。

输入格式

第一行是一个整数,表示序列的长度 n。

第二行有 n 个整数,第 i 个整数表示序列的第 i 个数字 ai​。

输出格式

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

输入输出样例

输入 #1复制

7
2 -4 3 -1 2 -4 3

输出 #1复制

4

说明/提示

样例 1 解释

选取 [3,5][3,5] 子段 {3,−1,2}{3,−1,2},其和为 4。

数据规模与约定
  • 对于 40%40% 的数据,保证 �≤2×103n≤2×103。
  • 对于 100%100% 的数据,保证 1≤�≤2×1051≤n≤2×105,−104≤��≤104−104≤ai​≤104。

代码实现:

#include<bits/stdc++.h>
using namespace std;
int maxx = -3333333;
int main()
{int n, a, b;scanf("%d", &n);for (int i = 1; i <= n; i++) {scanf("%d", &a);if (i == 1)b = a;else b = max(a, a + b);maxx = max(maxx, b);}printf("%d", maxx);return 0;
}

题目三(KMP)

题目描述

给出两个字符串 s1​ 和 s2​,若 s1​ 的区间 [l,r] 子串与 s2​ 完全相同,则称 s2​ 在 s1​ 中出现了,其出现位置为 l。
现在请你求出 s2​ 在 s1​ 中所有出现的位置。

定义一个字符串 s 的 border 为 s 的一个非 s 本身的子串 t,满足 t 既是 s 的前缀,又是 s 的后缀。
对于 s2​,你还需要求出对于其每个前缀 ′s′ 的最长 border ′t′ 的长度。

输入格式

第一行为一个字符串,即为 s1​。
第二行为一个字符串,即为 s2​。

输出格式

首先输出若干行,每行一个整数,按从小到大的顺序输出 s2​ 在 s1​ 中出现的位置。
最后一行输出 ∣s2​∣ 个整数,第 i 个整数表示 s2​ 的长度为 i 的前缀的最长 border 长度。

输入输出样例

输入 #1复制

ABABABC
ABA

输出 #1复制

1
3
0 0 1 

说明/提示

样例 1 解释

对于 s2​ 长度为 3 的前缀 ABA,字符串 A 既是其后缀也是其前缀,且是最长的,因此最长 border 长度为 11。

数据规模与约定

本题采用多测试点捆绑测试,共有 3 个子任务

  • Subtask 1(30 points):∣s1​∣≤15,∣s2​∣≤5。
  • Subtask 2(40 points):∣s1​∣≤104,∣s2​∣≤102。
  • Subtask 3(30 points):无特殊约定。

代码:

#include<cstdio>
#include<cstring>
#define MAX 1000100
using namespace std;
int KMP[1000100], len1, len2;
char a[MAX], b[MAX];
int main()
{scanf("%s%s", a+1, b+1);len1 = strlen(a+1);len2 = strlen(b+1);int j = 0;for (int i = 2; i <= len2; i++) {while (j && b[i] != b[j + 1])j = KMP[j];if (b[j + 1] == b[i])j++;KMP[i] = j;}j = 0;for (int i = 1; i <= len1; i++) {while (j > 0 && b[j + 1] != a[i])j = KMP[j];if (b[j + 1] == a[i])j++;if (j == len2) {printf("%d\n", i - len2 + 1);j = KMP[j];}}for (int i = 1; i <= len2; i++)printf("%d ", KMP[i]);return 0;
}

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

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

相关文章

【开源】JAVA+Vue.js实现高校学院网站

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 学院院系模块2.2 竞赛报名模块2.3 教育教学模块2.4 招生就业模块2.5 实时信息模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 学院院系表3.2.2 竞赛报名表3.2.3 教育教学表3.2.4 招生就业表3.2.5 实时信息表 四、系…

Python访问数据库

目录 SQLite数据库 SQLite数据类型 Python数据类型与SQLite数据类型的映射 使用GUI管理工具管理SQLite数据库 数据库编程的基本操作过程 sqlite3模块API 数据库连接对象Connection 游标对象Cursor 数据库的CRUD操作示例 示例中的数据表 无条件查询 有条件查询 插入…

Linux(Ubuntu) 环境搭建:Nginx

注&#xff1a;服务器默认以root用户登录 NGINX 官方网站地址&#xff1a;https://nginx.org/en/NGINX 官方安装文档地址&#xff1a;https://nginx.org/en/docs/install.html服务器的终端中输入以下指令&#xff1a; # 安装 Nginx apt-get install nginx # 查看版本信息 ngi…

电商商城系统网站

文章目录 电商商城系统网站一、项目演示二、项目介绍三、系统部分功能截图四、部分代码展示五、底部获取项目&#xff08;9.9&#xffe5;带走&#xff09; 电商商城系统网站 一、项目演示 商城系统 二、项目介绍 基于SpringBootVue的前后端分离商城系统网站 运行环境:idea或…

springboot178智能学习平台系统

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

S32 Design Studio PE工具配置GPIO

首先我们来讲最简单的GPIO配置 代码生成 按照下图步骤就能配置一个基本的GPIO口&#xff0c;在组件里面选择pin_mux&#xff0c;选中就能配置使能和方向&#xff0c;no pin routed就是没有配置的。GPIO口分ABCDE组&#xff0c;每组从0到最大的序号。 然后在functional prope…

动静态库原理

静态库.a lib文件夹&#xff0c;存放着所有的库。 我们想写了自己的部分功能实现和代码&#xff0c;很多个.0和.h 但是实现文件太多了&#xff0c;我们把它打包在一起就是静态库。 那么如何打包呢&#xff1f;ar命令 ar -rc libhello.a mython.o myprintf.0 r 代表打包 c创…

H12-821_74

74.在某路由器上查看LSP&#xff0c;看到如下结果&#xff1a; A.发送目标地址为3.3.3.3的数据包时&#xff0c;打上标签1026&#xff0c;然后发送。 B.发送目标地址为4.4.4.4的数据包时&#xff0c;不打标签直接发送。 C.当路由器收到标签为1024的数据包&#xff0c;将把标签…

新版UI界面影视小程序亲测无问题带详细搭建教程

新版UI界面影视小程序亲测无问题带详细搭建教程 环境php7.0 — fileinfo–redis–sg11 mysql5.5 apache2.4 添加站点php7.0—-创建ftp—-上传后端文件《后端文件修改&#xff0c;/maccms/wxapi/config/dbs.php–修改当前数据库》—-设置ssl—-打开数据库安装cms 安装好后管…

C++: const 的 权限放大缩小!

目录 概念 引用与const 关于上述的第一段代码&#xff1a; 关于上诉的第二段代码&#xff1a; const 使用指针进行权限的放大和缩小&#xff1a; 注意事项&#xff1a; const 与 成员函数 const 修饰 成员函数的规则&#xff1a; 概念 关于权限的放大和缩小问题&am…

c++求三个数中最大数

#include<iostream> using namespace std; int main() { int a,b,c; cout<<"请输入三个数字"<<endl;//end后面为小写的L cin>>a>>b>>c; if(a>b&&a>c) cout<<"最大数为a:"<<a<<e…

谷粒商城【成神路】-【6】——商品维护

目录 &#x1f9c2;1.发布商品 &#x1f953;2.获取分类关联品牌 &#x1f32d;3.获取分类下所有分组和关联属性 &#x1f37f;4.商品保存功能 &#x1f9c8;5.sup检索 &#x1f95e;6.sku检索 1.发布商品 获取用户系统等级~&#xff0c;前面生成了后端代码&#xff…