【2014年鄞州区】小幸福(e.pas/c/cpp)

2020第十一届蓝桥杯C++省赛B组真题和题解 (10月第二场) 第十一届蓝桥杯C++省赛B组真题和题解(更新中...)欢迎使用Markdown编辑器试题I: 平面切分题目思路:题解:新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 阅读详情

题目描述:

有n个小朋友,他们商量在保证作业做完的前提下去玩。第i个小朋友的可以玩耍时间为Si~ Ti。这里Si~Ti
表示的是时间段,比如Si=2,Ti=4,那么意味着这位小朋友在时刻1不能玩,时刻2、3、4可以去玩,时刻4以后都不能出去玩。如果在某个时刻,在一起玩的小朋友个数不少K个,那么这一时刻就是幸福的。现在你要求出所有幸福的时刻长度。

输入

三行 第一行:n k  (n个小朋友,一起玩的小朋友达到k个为幸福)
第二行:S1 S2 ... Sn
第三行:T1 T2 ... Tn

输出

一行:幸福时刻的长度

样例输入
4 3
1 2 2 4
5 2 4 6

样例输出
2

数据范围限制

50% n<=1000 1<=Si<=Ti<=1000
100% n<=100000 1<=Si<=Ti<=1000000000

提示

时刻                1  2  3  4  5  6
第一个小朋友玩耍时间:X  X  X  X  X
第二个小朋友玩耍时间:   X
第三个小朋友玩耍时间:   X  X  X
第四个小朋友玩耍时间:         X  X  X
第2分钟和第4分钟一起玩耍的小朋友达到了3个所以是幸福的时刻,幸福时刻长度为2。

50分思路:

这题50分思路还是计较简单的, 直接用一个数组把所有时刻的人数存入,最后再判断,每个时刻如果大于k,那ans++。

代码:

#include<bits/stdc++.h>
using namespace std;
int n,k,s[1000001],t[1000001],ans,bz[1000001];
int main()
{
	freopen("e.in","r",stdin);
	freopen("e.out","w",stdout);
	cin>>n>>k;
	for(int i=1;i<=n;i++)
		cin>>s[i];
	for(int i=1;i<=n;i++)
		cin>>t[i];
	for(int i=1;i<=n;i++)
		for(int j=s[i];j<=t[i];j++)
			if(bz[j]==-1) continue;
			else
			{
				bz[j]++;
				if(bz[j]>=k) bz[j]=-1,ans++;
			}
	cout<<ans;
	fclose(stdin);
	fclose(stdout);
	return 0;
}

加了线段数优化的代码:

#include<bits/stdc++.h>
using namespace std;
int sum[10000005]={};
int n,k;
int main()
{
	freopen("e.in","r",stdin);
	freopen("e.out","w",stdout);
	scanf("%d%d",&n,&k);
	for(int i=1;i<=n;i++)
	{
		int x;
		scanf("%d",&x);
		sum[x]++;
	}
	int o=-1;
	for(int i=1;i<=n;i++)
	{
		int x;
		scanf("%d",&x);
		if(x>o)o=x;
		sum[x+1]--;
	}
	int cnt=0,s=0;
	for(int i=0;i<=o;i++)
	{
		cnt+=sum[i];
		if(cnt>=k)
			s++;
	}
	printf("%d\n",s);
	return 0;
}

100分思路:

这是50分做法的改编,将一个个的时间,改成以变化为分隔的时间段,大大加速了时间。

把每次变化(也就是s和t数组)合在一起排序,加上标记,每次变化,人数就变化,当人数满足幸福是,加上这次变化到下次变化前这个时间段。

核心代码:


	if(bj[i]==0) re++;
	if(bj[i]==1) re--;
	if(re>=k) ans+=a[i+1]-a[i]; //1<=i<=2*n

再加上快排,标记,我们就能开始打代码。

代码:

#include<bits/stdc++.h>
using namespace std;
int n,k,a[200010],bj[200010],re,ans; 
void qsort(int i,int j)
{
	int l=i,r=j,mid=a[(i+j+1)/2];
	while(i<=j)
	{
		while(a[i]<mid) i++;
		while(a[j]>mid) j--;
		if(i<=j)
		{
			a[0]=a[i];
			a[i]=a[j];
			a[j]=a[0];
			bj[0]=bj[i];
			bj[i]=bj[j];
			bj[j]=bj[0];
			i++; j--;
		}
	}
	if(l<j) qsort(l,j);
	if(i<r) qsort(i,r);
}
int main(){
	freopen("e.in","r",stdin);
	freopen("e.out","w",stdout);
	scanf("%d%d",&n,&k);
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i]);
		bj[i]=0;
	}
	for(int i=1;i<=n;i++){
		scanf("%d",&a[n+i]);
		a[n+i]+=1;
		bj[n+i]=1;
	}
	qsort(1,2*n);
	for(int i=1;i<=2*n;i++){
		if(bj[i]==0) re++;
		if(bj[i]==1) re--;
		if(re>=k) ans+=a[i+1]-a[i];
	}
	printf("%d",ans);
	fclose(stdin);
	fclose(stdout);
	return 0;
}

写博不易,请发现问题的大佬提出。

代码保证正确,请留赞再走。

第十三届蓝桥杯模拟赛——第8题 问题描述 n 个小朋友正在做一个游戏,每个人要分享一个自己的小秘密。 每个小朋友都有一个 1 到 n 的编号,编号不重复。 为了让这个游戏更有趣,老师给每个小朋友发了一张卡片,上面有一个 1 到 n 的数字,每个数字正好出现一次。 每个小朋友都将自己的秘密写在纸上,然后根据老师发的卡片上的数字将秘密传递给对应编号的小朋友。如果老师发给自己的数字正好是自己的编号,这个秘密就留在自己手里。 小朋友们拿到其他人的秘密后会记下这个秘密,老师会再指挥所有小朋友将手中的秘密继续传递,仍然根据老师发的卡片上的数字将秘密. 阅读详情

相关推荐

2020CSP第二轮 优秀的拆分(power)

题目描述 一般来说,一个正整数可以拆分成若干个正整数的和。例如,1 = 1,10 =1 + 2 + 3 + 4 等。对于正整数 ???? 的一种特定拆分,我们称它为“优秀的”,当且仅当在这种拆分下,???? 被分解为了若干个不同的 2 的正整数次幂。注意,一个数 ???? 能被表示成 2 的正整数次幂,当且仅当 ???? 能通过正整数个 2 相乘在一起得到。例如,10 = 8 + 2 = 2^3 + 2^1 是一个优秀的拆分。但是,7 = 4 + 2 + 1 =2^2 + 2^1 + 2^0 就不是一个优秀

zhy_Learn的博客 4602

2020-03-28 纪中六年级A组比赛

第一题 1287. 小X与队列 (queue) 题目描述   小X正和同学们做列队的练习。   有n名同学排成一路纵队,编号为i的同学排在从前往后数第i个位置上,即:初始时的队列为1, 2, 3, ..., n。   接下来小X会发出若干条指令,每条指令形如“请编号为x的同学排到最前面来”。(例如:若当前时刻的队列为5, 4, 3, 2, 1,发出一条x=2的指令后,队列变成了2, 5, 4, 3...

dongzheren2008的博客 774

C++爱心代码

我做了个爱心送给大家!

yayayaxxx的博客 9639

鄞州 计算机 测试,鄞州区中小学生计算机程序设计竞赛(2014)上机复赛试题(小学组)...

比赛时间:2014年10月15日下午13:00—16:00 地点:鄞州中学题目一览试题名称最大数上楼梯做游戏挖掘机小幸福英文代号abcde程序名a.pasb.pascd.pase.pas输入文件名a.inb.inc.ind.ine.in输出文件名a.outb.outc.outd.oute.out内存限制256MB256MB256MB256MB256MB时限1S1S1S1S1S注意:一、关于竞赛...

weixin_42253260的博客 595

2018年宁波市鄞州区小学生计算机程序设计复赛题

2018年宁波市鄞州区小学生计算机程序设计复赛题;题目还是比较灵活和有难度的,后面两题背包。

2017宁波市第32届中小学生程序设计竞赛(小学组)复赛试题及数据

宁波市第 32届中小学生程序设计竞赛 复赛试题(小学组) 比赛时间:2017年3月 26日14:00-16:30 中文题目名称 最佳交换 买玩具 炸僵尸 梦里的难题

幸福时刻 “粤港澳”复赛训练

这是我认为较伤脑子的题目了 老师提醒了才做出来(⊙o⊙)

imxix的博客 1006

从零开始,用Cadence Virtuoso手把手仿真一个1.5V LDO(附完整电路与仿真脚本)

本文详细介绍了如何使用Cadence Virtuoso从零开始仿真一个1.5V LDO,包括环境准备、电路导入、Testbench构建、核心仿真类型分析以及高级调试技巧。通过完整的电路与仿真脚本,帮助读者掌握LDO设计与仿真的关键技术,提升电路设计能力。

weixin_31309419的博客 443

会跳动的爱心代码c++

y_1>-1.5;y_1-=0.1){x_1

cyr0702的博客 3万+

CAB单片机开发指南

CAB单片机开发使用指南,IDE安装及烧录注意事项

Zoebuxiangtian的博客 1558

OpenClaw + Qwen 模型集成飞书完整教程

1、环境要求:- **操作系统**: Windows- **Node.js**: v18+ (推荐 v20+)- **飞书账号**: 需要企业管理员权限(创建应用用)或者个人飞书账号创建个人应用- **网络**: 能访问 GitHub 和飞书开放平台2、安装Node.js下载完成后验证是否安装成功,cmd窗口输入“node --version”,显示版本号即为安装成功(如下图所示)3、获取大模型APIKEY(这里以Qwen为例)

qq_29609427的博客 475

RZOJ P2110【鄞州2020区赛复赛真题】足球联赛分数

int n;cin>>n;//初始为0,开够大//用char也行i<n;i<n;i++){j<n;j++){if(s[i][j]=='W'){//主队胜利a[i]+=3;else if(s[i][j]=='D'){//双方平局else if(s[i][j]=='L'){//客场胜利a[j]+=3;i<n;if(i!//最后不加空格。

fdfddfr的博客 228

硬件工程师八大细分岗位详解:从芯片到整机的技术分工与职业选择

硬件工程作为电子系统设计的核心领域,涉及从芯片级到整机级的完整技术链条。其基本原理是通过电路设计、信号处理和功率管理等技术,将电子元件集成为功能完备的硬件系统。随着产品复杂度提升,硬件工程师岗位出现高度专业化分工,这种细分不仅提升了技术深度,更优化了团队协作效率。在工程实践中,信号完整性和电源完整性成为高速数字设计的两个关键技术挑战,直接影响系统稳定性。本文基于行业热词"硬件工程师"和"信号完整性",深入解析八大细分岗位的技术差异,帮助从业者明确职业发展方向,构建系统化的硬件设计思维。

weixin_33811539的博客 450

习题:小幸福(离散化)

小幸福【题目描述】有 n 个小朋友,他们商量在保证作业做完的前提下出去玩。第 i 个小朋友的可以玩耍时间为 Si~Ti。这里 Si~Ti 表示的是时间段,比如 Si=2,Ti=4,那么意味着这位小朋友在时刻 1 不能玩, 时刻 2、3...

weixin_34015860的博客 530

【算能】TPU 指令集架构深度解析

TPU指令集以领域专用性与数据流驱动为核心,通过精简指令集、硬件固化逻辑与高并行架构,实现张量计算的极致性能。开发者通常无需直接编写指令,但理解其设计原理对性能调优(如内存布局优化、指令调度)至关重要。算能TPU通过开放指令描述与编译器工具链,为垂直行业提供了更高灵活性的定制空间,而谷歌TPU则依赖编译器的全自动化优化,更适合大规模标准模型部署。未来,随着稀疏计算、光子计算等技术的引入,TPU指令集将进一步向高能效与高泛化性演进。

浩瀚之水的专栏 1182

【AI编程干货】Vibe Coding 技巧(适用于AI编程IDE)

用 AI 写代码这件事门槛低,谁都能对着对话框输入几句话让它生成代码,但生成的东西能不能用、出了问题能不能兜住,这中间的差距比想象中大得多。 我从去年开始把 AI 编码工具作为主力开发手段,中间经历过项目失控、代码雪崩、反复返工,慢慢摸索出一套相对稳定的工作方式。这篇把核心的五个习惯拆开聊聊,都是实际项目里验证过的。

blues_C的博客 621

小幸福

以前每天上班都是10点半下班 然后一般到10:55的时候外公就会准时打电话给我,然后问我到哪里了。其实每次这个时候我都已经走到家门口附近。以前觉得外公打电话给我很烦,总是影响到我工作。我对昆明这么熟悉,而且家附近治安真的很好,随时有警察在巡逻,半夜两三点也很安全,路上都是卖烧烤的。从来没有觉得危险是什么。后来我发现我错了,当你用相同的方式去关心别人的时候,你才会发现每天那一通通的电话意味着什么。每

编程小栈 884

PX4从放弃到精通(二十七):固定翼姿态控制

固件版本 PX4 1.13.2欢迎交流学习,可加左侧名片。

超维空间科技的博客 6885

简单的小幸福

在被数据库狠虐了一阵(没好好听课的后果)后,在食堂吃到了4块钱的披萨,超大一块!感觉有盘子的三分之一了。里面还有大虾,味道也不错\ *O* / 还尝试了乌龙波霸,也是意外的好喝、 幸福感爆表啊啊啊!最后,困扰我的SQL问题也终于解决啦,原来就是用一下case when就能把同一种属性的数据并列出来。

NancyDeng的博客 349

华为od面试手撕真题【分解质因数】

华为od面试手撕真题【分解质因数】

MISAYAONE的博客 1127

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【USACO 2020 US Open Bronze】Cowntact Tracing 题解

题目描述 由于高传染性的牛传染病 COWVID-19 的爆发,Farmer John 非常担忧他的奶牛们(编号为 1…N)的健康。最近,Farmer John 对他的所有奶牛进行了检测,发现有一部分奶牛对该疾病的检测结果呈阳性。利用牛棚内的视频监控,他得以查看最近的奶牛之间的互动行为,结果发现奶牛们互相打招呼时,她们会握蹄,不幸的是这是一种会将疾病从一头奶牛传播给另一头奶牛的行为。Farmer J...

zhy_Learn的博客 2866

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【2011.10.29模拟】24点游戏题解

题目描述 24点游戏是一个非常有意思的游戏,很流行,玩法很简单:给你4张牌,每张牌上有数字(其中A代表1,J代表11,Q代表12,K代表13),你可以利用数学中的加、减、乘、除以及括号想办法得到24,例如: ((A* K)-J) * Q等价于((1 * 13)-11) * 12=24 加减乘不用多说了,但除法必须满足能整除才能除!这样有一些是得不到24点的,所以这里只要求求出不超过24的最大值。 输入 输入第一行N(1<=N<=5)表示有N组测试数据。每组测试数据输入4行,每行一个整数(1到13

zhy_Learn的博客 2768

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

最长不下降子序列及输出序列

文章目录引入FirstSecondThird思路利用序列的单调性朴素时间二分优化:代码:输出序列:例题: 引入 回忆一下,以前学动态规划是的最长不下降子序列,我们是如何地推的呢??? First 2n2^n2n暴力,判断每个是否选择输出最大值。 Second 记忆化搜索,时间复杂度待定。 Third n2n^2n2动态规划,代码如下。 #include<bits/stdc++.h> using namespace std; int a[1010],n,f[1010],ans; int main(

zhy_Learn的博客 2450
上一篇: 【2017年常州市】小X与队列 (queue)
下一篇: 二叉树知识拓展
A_F_O
博客等级 码龄7年 52粉丝 1453原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值