P1 练习卷(C++4道题)

news2024/11/24 20:04:15

1.纷繁世界

内存限制:256MB 时间限制:1s

问题描述

  这是一个纷繁复杂的世界。 某一天清晨你起床很迟,没有吃上早饭。于是你骑着自行车去超市,但是你又发现商店的工作人员已经重新贴上了价格标签,零食价格都涨了50%。你一怒之下就这样饿了一个上午…… 当然,事情也许完全不会这样发展。 某一天清晨你起床比较迟,但还是没有吃上早饭。于是你骑着自行车去超市,恰好商店的工作人员还没有把涨价后的价格标签贴在零食上。于是你顺利的买了一些早餐然后逍遥而去…… 或许你会起得更早,也或许商店的工作人员会迟到。 有时候,人们只是按照预想的顺序去完成一些事情,不过可能有一些事件,它们发生时间的前后顺序会影响世界的发展。 比如,如果商店只有一个西瓜,你想买,我也想买,那么我们买西瓜的先后顺序就会直接影响到谁最后能够买到西瓜。 这样一个复杂的世界,分析它的运行规律是一件非常重要的工作,也是你所要研究的。

问题描述

  简单起见,假定总共有N个人以及M种不同类型事件。 定义事件之间的二元关系“相关”:
  . 相关关系是一个二元关系,就是说我们只能定义两种类型的事件间是否相关;
  . 同一种类型的事件之间一定是相关的;
  . 若事件x与事件y是相关的,那么事件y与事件x也一定是相关的;
  令表示第i个人计划完成的事件序列(称为计划序列),Ci表示Qi的长度。Qi中每个事件Qi,j都是M种事件中的某一种,且同一种类型的事件可以发生多次。 随着时间的推移每个计划序列中的事件都会发生一次且恰好一次;为了简单起见,不会有任何两个事件发生在同一时刻。
  为了描述事件的发生顺序,定义为世界的一条发展轨迹,P是满足如下条件的有序序列:
  1. 对于每个人,计划序列中的每个事件Qi,j都在P出现一次且恰好一次;
  2. 对于属于同一个计划序列的两个事件Qi,j1和Qi,j2(1 ≤ j1 < j2 ≤ Ci),Qi,j1一定发生在Qi,j2之前(也就是在P中位于更靠前的位置);
  两条轨迹P1和P2被定义为本质不同的,当且仅当存在两个相关的事件Qi,j和Qu,v,他们在P1和P2中发生的先后顺序不同,也就是说,如果在P1中Qi,j发生在Qu,v之前且在P2中Qi,j发生在Qu,v之后,那么P1和P2就是本质不同的;如果在P1中Qi,j发生在Qu,v之后且在P2中Qi,j发生在Qu,v之前,那么P1和P2也是本质不同的; 注意:本质相同具有传递性,即若P1与P2本质相同且P2与P3本质相同,那么P1与P3一定也本质相同。
  给定N, M、每个人计划序列以及事件之间的相关关系。你需要计算一共有多少种本质不同的世界运行轨迹。

输入格式

  输入文件world.in第一行包括一个整数,表示人数N。 输入文件第二行包括一个整数,表示事件种类数M,所有类型的事件按照0至M – 1编号。 接下来依次给出每个人的计划序列的描述,对于第i个人: 首先一行一个整数表示序列长度Ci。 第二行包含Ci个整数,依次给出Qi中的每个事件Qi,j。 最后M行输入一个M行M列的矩阵dep用来描述相关关系,每行包含M个整数,都是0或者1。dep(i,j)表示矩阵自上往下的第i行,自左往右的第j列所包含的整数。若dep(i, j)的值为1,那么第i类事件和第j类事件就是相关的,否则这两类事件不相关。

输出格式

  输出文件world.out只有一行,一个整数表示本质不同的世界轨迹数T。

样例输入   

2
3
2
0
1
2
2
1
1 1 0
1 1 1
0 1 1

样例输出   

4

样例说明

  样例中有2个人与3类事件,C1 = C2 = 2。Q1,0 = 0, Q1,1 = 1, Q2,0 = 2, Q2,1 = 1。
  一共有4种不同的发生轨迹:
  P1 = (Q1,0, Q1,1, Q2,0, Q2,1)
  P2 = (Q1,0, Q2,0, Q1,1, Q2,1)
  P3 = (Q1,0, Q2,0, Q2,1, Q1,1)
  P4 = (Q2,0, Q2,1, Q1,0, Q1,1)
  对于其他任何合法的发展轨迹,都一定和这四条轨迹中的某一条本质相同。例如P = (Q2,0, Q1,0, Q2,1, Q1,1)与P3是本质相同的,因为两条轨迹只交换了Q1,0 = 0和Q2,0 = 2的顺序,但是这两类事件是不相关的。

数据规模和约定

  总人数N ≤ 10;
  事件种类数 M ≤ 15;
  计划序列长度Ci ≤ 20;
  世界轨迹数T ≤ 106。

2.道路游戏

时间限制:1s 内存限制:128MB

小新正在玩一个简单的电脑游戏。

游戏中有一条环形马路,马路上有 n 个机器人工厂,两个相邻机器人工厂之间由一小段马路连接。小新以某个机器人工厂为起点,按顺时针顺序依次将这 n个机器人工厂编号为 1∼n,因为马路是环形的,所以第 n个机器人工厂和第 1个机器人工厂是由一段马路连接在一起的。小新将连接机器人工厂的这 n 段马路也编号为 1∼n,并规定第 i 段马路连接第 i 个机器人工厂和第 i+1个机器人工厂(1≤i≤n−1),第 n 段马路连接第 n 个机器人工厂和第 1 个机器人工厂。

游戏过程中,每个单位时间内,每段马路上都会出现一些金币,金币的数量会随着时间发生变化,即不同单位时间内同一段马路上出现的金币数量可能是不同的。小新需要机器人的帮助才能收集到马路上的金币。所需的机器人必须在机器人工厂用一些金币来购买,机器人一旦被购买,便会沿着环形马路按顺时针方向一直行走,在每个单位时间内行走一次,即从当前所在的机器人工厂到达相邻的下一个机器人工厂,并将经过的马路上的所有金币收集给小新,例如,小新在 ii(1≤i≤n)号机器人工厂购买了一个机器人,这个机器人会从 ii 号机器人工厂开始,顺时针在马路上行走,第一次行走会经过 i 号马路,到达 i+1 号机器人工厂(如果 i=n,机器人会到达第 1 个机器人工厂),并将 i 号马路上的所有金币收集给小新。游戏中,环形马路上不能同时存在 2 个或者 2 个以上的机器人,并且每个机器人最多能够在环形马路上行走 p 次。小新购买机器人的同时,需要给这个机器人设定行走次数,行走次数可以为 1∼p 之间的任意整数。当马路上的机器人行走完规定的次数之后会自动消失,小新必须立刻在任意一个机器人工厂中购买一个新的机器人,并给新的机器人设定新的行走次数。

以下是游戏的一些补充说明:

  1. 游戏从小新第一次购买机器人开始计时。
  2. 购买机器人和设定机器人的行走次数是瞬间完成的,不需要花费时间。
  3. 购买机器人和机器人行走是两个独立的过程,机器人行走时不能购买机器人,购买完机器人并且设定机器人行走次数之后机器人才能行走。
  4. 在同一个机器人工厂购买机器人的花费是相同的,但是在不同机器人工厂购买机器人的花费不一定相同。
  5. 购买机器人花费的金币,在游戏结束时再从小新收集的金币中扣除,所以在游戏过程中小新不用担心因金币不足,无法购买机器人而导致游戏无法进行。也因为如此,游戏结束后,收集的金币数量可能为负。

现在已知每段马路上每个单位时间内出现的金币数量和在每个机器人工厂购买机器人需要的花费,请你告诉小新,经过 m 个单位时间后,扣除购买机器人的花费,小新最多能收集到多少金币。

输入格式

第一行 3 个正整数 n,m,p,意义如题目所述。

接下来的 nn 行,每行有 mm 个正整数,每两个整数之间用一个空格隔开,其中第 ii 行描述了 ii 号马路上每个单位时间内出现的金币数量(1≤金币数量 ≤100),即第 i 行的第 j(1≤j≤m)个数表示第 j 个单位时间内 i 号马路上出现的金币数量。

最后一行,有 n 个整数,每两个整数之间用一个空格隔开,其中第 i 个数表示在 i号机器人工厂购买机器人需要花费的金币数量(1≤金币数量 ≤100)。

输出格式

共一行,包含 11 个整数,表示在 mm 个单位时间内,扣除购买机器人花费的金币之后,小新最多能收集到多少金币。

输入输出样例

输入 #1

2 3 2 
1 2 3 
2 3 4 
1 2

输出 #1

5

说明/提示

对于 40% 的数据,2≤n≤40,1≤m≤40。

对于 90% 的数据,2≤n≤200,1≤m≤200。

对于 100% 的数据,2≤n≤1000,1≤m≤1000,1≤p≤m。

NOIP 2009 普及组 第四题

3.查词典

时间限制:1s 内存限制:128MB

题目描述:

小A有一本词典,一天他在写英语老师留的阅读理解题中,遇到了n不会的词。

小A很贪玩,想要在t分钟后写完阅读理解的作业,然后就可以去玩手机去了。

但是他查词典的速度很慢,如果把他不会的单词全都查一遍,那肯定会超过t分钟

所以他快速浏览了一遍单词,发现他不会的单词中,有一部分很重要,还有一部分即使不会也不影响文章整体阅读,所以他列了一个清单,给每个单词做了一个重要度和查该单词所需的时间

现在小A想知道,在t分钟之内(不一定非要花光t分钟,可以提前结束 ),自己能查到的所有单词的重要度总和最大是多少。

输入格式

第一行两个整数 n,t

接下来n行,每行两个整数:time[i],important[i]

输出格式

一个整数,表示小A能查到的单词的重要度总和的最大值

输入样例

5 10

1 1

2 2

3 3

4 4

5 10

输出样例

15

数据规模

0<n,t<=10^12

提示

本题数据很大,需要开long long

4. 朋友圈(强化版)

时间限制 0.5s 内存限制 100MB

题目描述

在很久很久以前,曾经有两个国家和睦相处,无忧无虑的生活着.

一年一度的评比大会开始了,作为和平的两国,一个朋友圈数量最多的永远都是最值得他人的尊敬,所以现在就是需要你求朋友圈的最大数目.两个国家看成是 AB 两国,现在是两个国家的描述:

  • A 国:每个人都有一个友善值,当两个 A 国人的友善值 a,ba,b,如果 (axorb) mod 2=1(axorb)mod2=1,那么这两个人都是朋友,否则不是;
  • B 国:每个人都有一个友善值,当两个 B 国人的友善值 a,ba,b,如果 (axorb) mod 2=0(axorb)mod2=0 或者 (aorb)(aorb) 化成二进制有奇数个 11,那么两个人是朋友,否则不是朋友.

A、B 两国之间的人也有可能是朋友,数据中将会给出 A、B 之间「朋友」的情况.

对于朋友的定义,关系是是双向的.

在 AB 两国,朋友圈的定义:一个朋友圈集合 SS,满足 S⊂A∪BS⊂A∪B,对于所有的 i,j∈Si,j∈S,ii 和 jj 是朋友.

输入格式

本题包含多组数据.

  • 第一行一个整数 TT,表示输入数据总数.
  • 对于每组数据:
    • 第 11 行 33 个整数 A,B,MA,B,M,分别表示 A 国人数,B 国人数,AB 两国之间是朋友的对数.
    • 第 22 行 AA 个整数 aiai​,表示 A 国第 ii 个人的友善值.
    • 第 33 行 BB 个整数 bibi​,表示 B 国第 ii 个人的友善值.
    • 第 44 到第 3+M3+M 行,每行两个整数 x,yx,y 表示 A 国的第 xx 个人和 B 国第 yy 个人是朋友.

输出格式

  • 输出 TT 行,每行输出一个整数,表示最大朋友圈的数目.

输入输出样例

输入 #1

1
2 4 7
1 2
2 6 5 4
1 1
1 2
1 3
2 1
2 2
2 3
2 4

输出 #1

5

说明/提示

样例解释

最大朋友圈包含 A 国第 1,2人和 B 国第 1,2,3人.

数据范围

对于 100% 的数据,1≤T≤6,1≤ai,bi<231

本题共有两类数据,保证所有测试点均满足其中至少一类的限制:

  • 第一类:1≤A≤20000,1≤B≤20000
  • 第二类:1≤A≤15,1≤B≤30000

评分:

0-20:

编程水平较弱,CSP-J复赛大约可得50-120分, 不建议报考CSP-S

20-100:

编程水平一般,CSP-J复赛大约可得三等奖-二等奖,建议尝试报考CSP-S

100-200:

编程水平较强,建议报考CSP-S,S组复赛大约可得80分

200-300:

编程水平强,建议报考NOI

300-350:

编程水平很强,和开挂一样,建议报考NOI

350-400

666,这个入是挂

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

挂壁式空气净化器哪个品牌的质量好?排名top3优秀产品测评分析

随着挂壁式空气净化器市场的不断扩大&#xff0c;各类品牌与型号琳琅满目。但遗憾的是&#xff0c;一些跨界网红品牌过于追求短期效益&#xff0c;导致产品在净化效果与去除异味方面表现平平&#xff0c;使用体验不佳&#xff0c;甚至可能带来二次污染风险&#xff0c;影响人体…

贴代码框架PasteForm特性介绍之image

简介 PasteForm是贴代码推出的 “新一代CRUD” &#xff0c;基于ABPvNext&#xff0c;目的是通过对Dto的特性的标注&#xff0c;从而实现管理端的统一UI&#xff0c;借助于配套的PasteBuilder代码生成器&#xff0c;你可以快速的为自己的项目构建后台管理端&#xff01;目前管…

C++异常: cv::Exception 解决

原因是C中文件路径错误&#xff0c;\ 号在字符串中表示转义字符&#xff0c;"C:\Users\14421\Desktop\123.png" "C:Usersd21DesktopS.png" &#xff0c;所以应该改为 C:\\Users\\14421\\Desktop\\123.png 或者 C:/Users/14421/Desktop/123.png 即可解决问…

libphone desktop编译

linphone-desktop 在ubuntu20.04 下编译 linphone 介绍 Linphone是一款遵循GPL的开源网络视频电话系统&#xff0c;支持多种平台如Windows、Linux、Android等。它基于SIP协议&#xff0c;提供语音、视频通话及即时文本消息功能。核心功能包括SIP用户代理、音频视频Codec支持、…

高精度计算题目合集

高精度计算题目合集 1168&#xff1a;大整数加法 1168&#xff1a;大整数加法 1168&#xff1a;大整数加法 高精度加法原理&#xff1a; a&#xff0c;b&#xff0c;c 都可以用数组表示。这些都是基于c语言的算术运算符形成的运算。 c 3 ( c 1 c 2 ) % 10 c_3(c_1c_2)\%1…

【Python】爬虫实战:高效爬取电影网站信息指南(涵盖了诸多学习内容)

本期目录 1 爬取思路 2 爬虫过程 2.1 网址 2.2 查看网页代码 3 爬取数据 3.1 导入包 3.2 爬取代码 01 爬取思路 \*- 第一步&#xff0c;获取页面内容\*- 第二步&#xff1a;解析并获取单个项目链接 \*- 第三步&#xff1a;获取子页面内容 \*- 第四步&#xff1a;解析…

【bug】使用transformers训练二分类任务时,训练损失异常大

使用transformers训练二分类任务时&#xff0c;训练损失异常大 问题分析 问题 training_loss异常大&#xff0c;在二分类损失中&#xff0c;收敛在1~2附近&#xff0c;而eval_loss却正常&#xff08;小于0.5&#xff09; 分析 参考&#xff1a; Bug in gradient accumulation…

uni-app 认识条件编译,了解多端部署

一. 前言 在使用 uni-app 进行跨平台开发的过程中&#xff0c;经常会遇到需要针对不同平台或不同环境进行条件编译的情况。条件编译是一种在编译过程中根据指定条件选择不同代码路径的技术&#xff0c;可以帮助我们在不同平台或环境下编写不同的代码&#xff0c;以适应不同的平…

HarmonyOS Next原创项目

学友市集 HarmonyOS毕设,项目完整,代码原创,可接毕设 项目展示 项目简介 学友集市是一款基于HarmonyOS Next开发的二手交易平台,适配HarmonyOS5.0&#xff0c;采用前后端分离架构&#xff0c;致力于为用户提供安全、便捷、高品质的二手商品交易服务。平台整合了华为云认证服…

现代密码学

概论 计算机安全的最核心三个关键目标&#xff08;指标&#xff09;/为&#xff1a;保密性 Confidentiality、完整性 Integrity、可用性 Availability &#xff0c;三者称为 CIA三元组 数据保密性&#xff1a;确保隐私或是秘密信息不向非授权者泄漏&#xff0c;也不被非授权者使…

深度学习实战人脸识别

文章目录 前言一、人脸识别一般过程二、人脸检测主流算法1. MTCNN2. RetinaFace3. CenterFace4. BlazeFace5. YOLO6. SSD7. CascadeCNN 三、人脸识别主流算法1.deepface2.FaceNet3.ArcFace4.VGGFace5.DeepID 四、人脸识别系统实现0.安装教程与资源说明1. 界面采用PyQt5框架2.人…

51c自动驾驶~合集31

我自己的原文哦~ https://blog.51cto.com/whaosoft/12121357 #大语言模型会成为自动驾驶的灵丹妙药吗 人工智能&#xff08;AI&#xff09;在自动驾驶&#xff08;AD&#xff09;研究中起着至关重要的作用&#xff0c;推动其向智能化和高效化发展。目前AD技术的发展主要遵循…

2023年3月GESPC++一级真题解析

一、单选题&#xff08;每题2分&#xff0c;共30分&#xff09; 题目123456789101112131415答案BAACBDDAADBCDBC 1.以下不属于计算机输入设备的有&#xff08; &#xff09;。 A &#xff0e;键盘 B &#xff0e;音箱 C &#xff0e;鼠标 D &#xff0e;传感器 【答案】 …

深度学习实验十二 卷积神经网络(3)——基于残差网络实现手写体数字识别实验

目录 一、模型构建 1.1残差单元 1.2 残差网络的整体结构 二、统计模型的参数量和计算量 三、数据预处理 四、没有残差连接的ResNet18 五、带残差连接的ResNet18 附&#xff1a;完整的可运行代码 实验大体步骤&#xff1a; 先前说明&#xff1a; 上次LeNet实验用到的那…

第10章JavaScript的应用

10.1 JavaScript概述 10.1.1 JavaScript简介 10.1.1.1 简单性 10.1.1.2 动态性 10.1.1.3 跨平台性 10.1.1.4 安全性 10.1.1.5 基于对象的语言 10.1.2 JavaScript入门案例 10.1.3 JavaScript放置的位置 10.1.3.1 head标记中的脚本 代码 <!DOCTYPE html> <ht…

Linux操作系统:进程控制_进程的创建、终止、等待

一、进程创建 这一块我们在前篇都已经讲过&#xff0c;第一部分就简单带大家回顾一下之前的知识。 1.1 fork函数初识 在linux中fork函数时非常重要的函数&#xff0c;它从已存在进程中创建一个新进程。新进程为子进程&#xff0c;而原进程为父进程。 #include<unistd.h>…

MySQL数据库学习(持续更新ing)

1. 什么是数据库&#xff1f;什么是数据库管理系统&#xff1f;什么是SQL&#xff1f;他们之间的关系是什么&#xff1f; 数据库&#xff1a;Database&#xff0c; 简称DB。按照一定格式存储数据&#xff0c;一些文件的组合。 数据库管理系统&#xff1a;DataBaseManagement&…

电脑自动关机时间如何定?Wise Auto Shutdown 设置关机教程

在日常使用电脑的过程中&#xff0c;有时我们需要让电脑在特定的时间自动关机&#xff0c;比如在下载大文件完成后、执行长时间的任务结束时&#xff0c;或者只是单纯想在某个预定时间让电脑自动关闭以节省能源。这时候&#xff0c;Wise Auto Shutdown 这款软件就能派上大用场了…

【LeetCode热题100】队列+宽搜

这篇博客是关于队列宽搜的几道题&#xff0c;主要包括N叉树的层序遍历、二叉树的锯齿形层序遍历、二叉树最大宽度、在每个数行中找最大值。 class Solution { public:vector<vector<int>> levelOrder(Node* root) {vector<vector<int>> ret;if(!root) …

【数据结构】二叉树(2)

目录 1. 二叉树的遍历 前序遍历 中序遍历 后序遍历 2. 计算二叉树中的节点个数 3. 计算二叉树中叶子节点个数 4. 计算二叉树的深度 5. 计算二叉树第k层节点个数 6. 二叉树基础练习 7. 二叉树的创建 8. 二叉树的销毁 9. 层序遍历 10. 判断二叉树是否为完全二叉树 1…