Codeforces Round #496 (Div. 3)(A,B,C,D,E1,E2)题解

R语言分布式滞后非线性模型DLNM实战:空气污染与健康数据的动态效应可视化与政策启示 本文详细介绍了R语言中分布式滞后非线性模型(DLNM)的应用,特别关注空气污染与健康数据的动态效应可视化。通过dlnm包实现PM2.5等污染物的滞后效应分析,提供从数据预处理、模型构建到结果可视化的完整流程,并探讨了其在公共卫生政策制定中的实际应用价值。 阅读详情

题目链接:http://codeforces.com/contest/1005

A题题意:Tanya每次爬不定数目的楼梯,每走一步喊一次,求出每次爬的数目。

A题题解:没碰见1就把上一次的数存进去最后输出即可。

AC代码:

#include<bits/stdc++.h>
using namespace std;
#define _for(i,a,b) for(int i=a;i<=b;i++)
const int maxn = 1e5+7;
typedef long long ll;
int n,m,a[maxn];
vector<int> S;
int main(int argc, char const *argv[])
{
	cin>>n;
	int now=1;
	_for(i,1,n)
	{
		cin>>m;
		if(m==1)
		{
			S.push_back(now);
			now=1;
		}
		else now = m;
	}
	S.push_back(now);
	cout<<S.size()-1<<endl;
	int l = S.size()-1;
	_for(i,1,l)cout<<S[i]<<" ";
	return 0;
}

B题题意:给两个字符串,每次可以选择删除其中一个的第一个字符,求最少删除次数使得两字符串相同。

B题题意:前面只要不相等就得删除 所以直接从后面一起遍历,第一个不相同的前面的所有字符都需要删除。

AC代码:

/*
* @Author: 王文宇
* @Date:   2018-07-09 23:44:46
* @Last Modified by:   王文宇
* @Last Modified time: 2018-07-09 23:49:13
*/
#include<bits/stdc++.h>
using namespace std;
#define _for(i,a,b) for(int i=a;i<=b;i++)
const int maxn = 2e5+7;
typedef long long ll;
int n,m,a[maxn];
char s1[maxn],s2[maxn];
int main(int argc, char const *argv[])
{
	cin>>s1>>s2;
	int l1 = strlen(s1);
	int l2 = strlen(s2);
	int ans = 0;
	int ok = 0;
	if(l1<=l2)
	{
		for(int i=1;i<=l1;i++)
		{
			if(s1[l1-i]!=s2[l2-i])
			{
				ans+=l1-i+1;
				ans+=l2-i+1;
				ok = 1;
				break;
			}
		}
		if(!ok)ans+=l2-l1;
	}
	else
	{
		for(int i=1;i<=l2;i++)
		{
			if(s1[l1-i]!=s2[l2-i])
			{
				ans+=l1-i+1;
				ans+=l2-i+1;
				ok = 1;
				break;
			}
		}
		if(!ok)ans+=l1-l2;		
	}
	cout<<ans<<endl;
	return 0;
}

C题题意:给定N个数,删除其中的数字使得每一个数都能在序列里找到一个数求和后是2的倍数。

C题题解:n<=120000,每个数最大是1e9,那么对于每个数预处理出每个2的倍数与他的差标记,然后遍历每个数找不到标记的就说明该数应该删除,复杂度是o(n*32),需要注意爆ll。

AC代码:

/*
* @Author: 王文宇
* @Date:   2018-07-09 23:51:28
* @Last Modified by:   王文宇
* @Last Modified time: 2018-07-10 00:12:06
*/
#include<bits/stdc++.h>
using namespace std;
#define _for(i,a,b) for(int i=a;i<=b;i++)
const int maxn = 120007;
typedef long long ll;
int n,a[maxn];
vector<ll> E[maxn];
map<ll,int> Q;
int main(int argc, char const *argv[])
{
	cin>>n;
	_for(i,1,n)
	{
		int x;
		cin>>x;
		a[i]=x;
		Q[x]++;
		ll k = 1;
		_for(j,1,31)
		{
			ll now = k-x;
			if(k>x)E[i].push_back(now);
			k*=2;
			//cout<<k<<endl;
		}
	}
	int ans = 0;
	_for(i,1,n)
	{
		//cout<<1<<endl;
		int ok = 0;
		int l = E[i].size()-1;
		_for(j,0,l)
		{
			ll k = E[i][j];
			if(Q[k]>0)
			{
				if(a[i]==k)
				{
					if(Q[k]>1)
					{
						ok=1;
						break;
					}
				}
				else
				{
					ok = 1;
					break;
				}
			}
		}
		//cout<<i<<endl;
		if(ok==0)ans++;
	}
	cout<<ans<<endl;
	return 0;
}

D题题意:给定一个数字序列,可以将他们任意分段,但是分后有前缀0的将删去前缀0,求最多能分成多少个整除3的数。

D题题解:因为不能有前缀0,所以从后往前分,如果当前这个数能整除3,那么肯定他自己一段,然后不能整除3的判断就可以了,因为3个连续的数肯定能分成一段能整除3的数。

AC代码:

/*
* @Author: 王文宇
* @Date:   2018-07-10 00:16:02
* @Last Modified by:   王文宇
* @Last Modified time: 2018-07-10 00:32:16
*/
#include<bits/stdc++.h>
using namespace std;
#define _for(i,a,b) for(int i=a;i<=b;i++)
const int maxn = 200006;
typedef long long ll;
int n,a[maxn];
char s[maxn];
int main(int argc, char const *argv[])
{
	cin>>s;
	int l = strlen(s)-1;
	int ans = 0;
	int x=0;
	int y=0;
	for(int i=l;i>=0;i--)
	{
		int now= s[i]-'0';
		if(now%3==0)
		{
			x=0;
			y=0;
			ans++;
			now = 0;
			continue;
		}
		else if(now%3==1)
		{
			if(y>=1)
			{
				ans++;
				y=0;
				continue;
			}
			else if(x<2)
			{
				x++;
			}
			else
			{
				x=0;
				ans++;
				continue;
			}
		}
		else
		{
			if(y==2)
			{
				y=0;
				ans++;
				continue;
			}
			else if(x>=1)
			{
				x=0;
				ans++;
				continue;
			}
			else y++;
		}
	}
	cout<<ans<<endl;
	return 0;
}

E题题意:给一个数组,问有多少个区间满足中位数是m的(该题中位数m偶数的取左边 即2 4的中位数是2)E1和E2的区别就是E1是1-N的数,E2是任意的,包括相同的数。

E题题解:将数组中<=m的数设为1,>m的设为-1,那么前缀和>=0的就是中位数<=m的情况,那么再设一次<=m-1的尾1,>m-1的为-1,这时候前缀和>=0的就是中位数<m的情况,两者差就是中位数等于m的情况。求各个的结果用树状数组去维护即可。

AC代码:

/*
* @Author: 王文宇
* @Date:   2018-07-10 02:14:27
* @Last Modified by:   王文宇
* @Last Modified time: 2018-07-10 04:24:16
*/
#include<bits/stdc++.h>
using namespace std;
#define _for(i,a,b) for(int i=a;i<=b;i++)
const int maxn = 200006;
typedef long long ll;
int n,m,a[maxn],sum[maxn];
int lowbit(int x)
{
	return x=x&(-x);
}
struct node
{
	int m,c[maxn*3];
	int init(int now)
	{
		m=now;
		_for(i,1,m)c[i]=0;
	}
	void insert(int x)
	{
		while(x<=m)
		{
			c[x]++;
			x+=lowbit(x);
		}
	}
	ll getnum(int x)
	{
		ll ans = 0;
		while(x>0)
		{
			ans+=c[x];
			x-=lowbit(x);
		}
		return ans;
	}
}now;
ll getans(int s)
{
	_for(i,1,n)
	{
		if(a[i]<=s)sum[i]=1;
		else sum[i]=-1;
		sum[i]=sum[i-1]+sum[i];
	}
	now.init(2*n+1);
	now.insert(n+1);
	ll ans = 0;
	_for(i,1,n)
	{
		ans+=now.getnum(sum[i]+n+1);
		now.insert(sum[i]+n+1);
	}
	return ans;
}
int main(int argc, char const *argv[])
{
	cin>>n>>m;
	_for(i,1,n)cin>>a[i];
	cout<<getans(m)-getans(m-1)<<endl;
	return 0;
}

AntV G6避坑指南:折叠树状图那些意想不到的BUG(附解决方案) 本文深入剖析了在React项目中使用AntV G6实现折叠树状图时,从图标错乱、数据同步到状态管理的常见BUG与解决方案。文章基于实战经验,详细解读了G6的内部机制,提供了从环境配置、自定义节点绘制到事件处理与性能优化的完整避坑指南,帮助开发者彻底解决折叠展开功能的疑难杂症。 阅读详情

相关推荐

Pytorch.nn.Linear 解析(数学角度)

pytorch.nn.Linear 是一个类,下面是它的一些初始化参数 in_features : 输入样本的张量大小 out_features : 输出样本的张量大小 bias : 偏置 它主要是对输入数据做一个线性变换。 y=xAT+b y=xA^T+b y=xAT+b 这里A是权重矩阵,b是偏置。他们都是根据 in_features 生成 测试代码: m = torch.nn.Linea...

Medlen 1万+

Codeforces Round #496 (Div. 3) A B C D题解

A. Tanya and Stairways description:谭妮亚每次上一次楼梯时,在每次走上一个台阶之后都会从1到当前的阶梯数报数。请根据她的报数规律推断出,她一共上了多少个楼梯,每个楼梯的阶梯数是多少。 link:http://codeforces.com/contest/1005/problem/A 思路:定义全局变量,初始均为零,这样利于统一处理数组的最后一个数字。 AC c...

Light2Chasers的博客 346

AIGC大模型应用教学平台

该平台采用最新的AI推理加速芯片,提供30Tops算力和32GB存储,能够运行常见的大语言模型如ChatGLM2、Llama2、Baicuan、Mistral等,也可以运行文生图扩散模型Stable Diffusion,提供大模型微调、量化、转换和加速推理服务。在此基础上,平台还提供常见的生成式AI应用,包括AIGC知识抽取增强(RAG)、AIGC绘画、AIGC会话聊天、数字虚拟人等应用,以便学生能够掌握最新的生成式AI模型微调、提示工程和智能体应用技能。

中智讯的博客 1207

Codeforces Round #496 (Div. 3) A,B,C,D,E1,F

昨天晚上睡不着,起床,开了一套cf, 题目链接:https://codeforces.com/contest/1005 5题滚粗。都是些简单题。。只是记录下刷题记录 E题可能有点难想。。。 A. Tanya and Stairways 题意:上楼梯,每上一楼梯则喊出一个数,例如:12341234 当重新从1开始喊时代表开始新的台阶。 问走过台阶的个数和输出高度 找到一个递减计入答案即...

ccsu_deer 592

C语言面试,8道一定会遇到的----关于指针的笔试题详解

C语言面试,8道一定会遇到的----关于指针的笔试题详解

m0_55322924的博客 463

VS code平台调试AutoLISP程序教程

VS code平台调试AutoLISP程序教程

BearElder的博客 3183

Codeforces Round #496 (Div. 3) (A+B+C+D+E1+F)

A题 题目链接 (签到) 题意:给定一个序列,问可以分成多少段,满足从1开始,遇到1或末尾元素结束。 比如 1 2 | 1 2 3 | 1 分成3段 1 | 1 | 1 | 1 分成4段 思路:直接找每个1,当前1的下标减去上一个1的下标就是一段的长度。 #include<iostream> #include<algorithm> #include<cstdio> #include<stdlib.h> #include<string.h> #inc

矮纸斜行闲作草 297

RK3588S之CPU--benchmark(一)

本章会基于RK3588S来介绍有关CPU常用的benchmark工具及测试过程

文艺小少年的博客 1499

CodeForces 496 D. Tennis Game【思维】

题意:已知n次回合比赛结果,任意一方有 t 回合胜利就结束一盘比赛,s盘定胜负。 数据分析:1 ≤ n ≤ 105 思路:对于一个确定的t,至多有1个s。那么对应一个t,我们可以去寻找s。复杂度是O(n^2) 。 TLE的操作,那么要进行优化。 如何优化? 预处理 我们事先预处理出,每个人赢第k回合,所进行的回合数  以及 每个人到第k盘,所赢的回合数。 有点小绕 对应于

Haipai1998的博客 413

Jetson AGX Orin和Drive AGX Orin相机的关联分析和编程指南

通过适当的相机接口和连接,以及使用适当的软件开发环境,开发人员可以在这些平台上实现相机功能。Jetson AGX Orin和Drive AGX Orin是NVIDIA推出的两款强大的计算平台,用于自动驾驶和人工智能应用。Jetson AGX Orin和Drive AGX Orin平台提供了强大的计算能力,使开发人员能够实现复杂的相机功能和算法。以上只是一些示例,Jetson AGX Orin和Drive AGX Orin平台提供了丰富的开发资源和工具,可用于实现各种复杂的相机应用。显示图像在一个窗口中。

CyberLynxO的博客 1121

【Docker】一招解决超时镜像超时报错:`ERROR: Get https://registry-1.docker.io/v2/`

Docker 镜像拉取超时或失败并不是 Docker 本身的缺陷,而是网络环境和默认配置在特定场景下的限制所导致的结果。通过本文的分析可以看到,问题的核心往往集中在三个方面:网络访问延迟、DNS 解析速度以及客户端默认超时时间。针对这些问题,最直接、有效的做法是使用国内镜像加速器,这不仅能够显著提升拉取速度,还能保证在企业内网或家庭网络中更加稳定

博客 1027

数学题,计算连续的数中能整除三(方法巧妙)

D. Polycarp and Div 3time limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputPolycarp likes numbers that are divisible by 3.He has a huge number ss. Polyc...

weixin_42165786的博客 585

OpenCode + Oh My OpenCode:打造你的终极AI编程团队(OpenCode新手入门指南)

本文详细介绍了开源终端AI编程助手 OpenCode 的完整配置教程 🖥️,从安装、AI模型配置到增强插件 Oh My OpenCode 的部署一应俱全。支持 Claude、ChatGPT、Gemini 多模型切换 🤖,还能实现多AI智能体协作开发。步骤清晰适合新手 📝,想在终端用AI写代码的开发者不要错过 ✨

XiaoqiangClub的博客 1万+

Codeforces Round #496 (Div. 3) C D E1 E2 F

Codeforces Round #496 (Div. 3) Problem A 题意: 思路: Problem B 题意: 思路: Problem C 题意: 给出n个数,询问最少删除几个数使得剩下的每一个数总能找到对应的另一个数使得两个数的和是2x2^x2x(x为非负整数) 思路: 枚举每个数形成 202^020~小于2*1e9的最大的2x2^x2x所需的另一个数,只要存在...

shadiao.的博客 359

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

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

pscad IEEE标准系统搭建说明

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

Codeforces Round #496 (Div. 3)

A. 统计1的个数即可,注意最后一个数必定是某个台阶的最后一级也就是级数即可。 #include&lt;cstdio&gt; #include&lt;iostream&gt; #include&lt;algorithm&gt; #include&lt;cstring&gt; #include&lt;vector&gt; using namespace std; int main() { ...

HumveeA6的博客 372

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

寒假训练第三天-Codeforces Round #496 (Div. 3)

寒假训练第三天-Codeforces Round #496 (Div. 3) 前言:最近家里事情太多了,模拟赛就放到了晚上,也没有太多时间补题,这场比赛就A了4道,前3道题35分钟写完,然后卡D,调了有一个小时才ac,就先把前四道的题解写一下吧,周日会把这些天没补的题都补出来 题目链接-https://codeforces.com/contest/1005 A-Tanya and Stairways 题意:给你一个序列,求这个序列有几段递增的区间(递增的区间相邻元素差值为1且从1开始)长度。 题解:遍历记录

Siyue1999的博客 253

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Codeforces Round #283 (Div. 2)C、D、E题解

C. Removing Columns https://codeforc.es/contest/496/problem/C 从前往后标记那些前面已经确定字典序合法的行,对于字典序不合法又没被标记的直接删除该列。 1 #define bug(x) cout<<#x<<" is "<<x<<endl 2 #define IO s...

weixin_30907935的博客 159

Codeforces Round 496 (Div. 3)

我们对于求解满足要求的区间数量首先分析,要求是恰好中位数是m的区间数,如果直接求解这样的区间数量是难以解决的,但是我们利用前缀和的思维我们可以简单求解出中位数大于等于m的区间个数,[l,r]对于这个区间只要。最短路径树,我们可以直接按照dijkstra的方式求解即可因为我们要的是根节点到其他的点的路径的最小值,所以不同于最小生成树,同时考虑存起来每一个点的前驱节点。题目是判断是否是存在2的幂次,可以简单得到对于x如果y是对应数,那么对于y,x也是他的对应数。

qq_73575281的博客 422

Codeforces Round #496 (Div. 3) ABCDE1

http://codeforces.com/contest/1005id:threeh20A数1出现的个数,水题B从尾部遍历记录后缀一样部分的长度C用map记录哪些数字出现过,并且出现了几次。然后对于每一个数字,用2^0-2^32这32个数字去减,看剩下的数字在map中存不存在。要注意如果剩下的数字和本来这个数字一样,那么map的值应该&gt;1 才可以Ddp[i]记录前i个中能够分割出能被三整除...

三水的鱼塘♂ 281

Codeforces Round #496 (Div. 3)【未完结】

2022.3.5 题目地址:https://codeforces.com/contest/1005 目录A. Tanya and Stairways【找规律】B. Delete from the Left【模拟】C. Summarize to the Power of Two【哈希表】 A. Tanya and Stairways【找规律】 #include<bits/stdc++.h> using namespace std; const int N=1e5+10; int n,a[N].

辉小歌的博客 543

Codeforces Round #496 (Div. 3) ABCDE1

1 //B. Delete from the Left 2 #include <iostream> 3 #include <cstdio> 4 #include <cstring> 5 #include <algorithm> 6 #include <set> 7 #include <map> ...

weixin_30614109的博客 103

Codeforces Round #496 (Div. 3) ABCDE

A. Tanya and Stairways 题意 给你一个序列,序列是按照1−a,1−b,1−c...1−a,1−b,1−c...1-a,1-b,1-c...的顺序出现的,输出所有的a,b,c…. 做法 直接遍历,出现1的前一位就要输出,特判最后一位 A. Tanya and Stairways 代码 #include&lt;iostream&gt; #include&lt;st...

lajiyuan的博客 248

Polycarp and Div 3【Codeforces Round #496 (Div. 3)【D题】】【贪心】

    应该说是今天凌晨的吧,第一次打Code Forces,懵懵懂懂的,不过感觉还是良好,做了几道签到题。难题还是没有那个水准去做......Polycarp likes numbers that are divisible by 3.He has a huge number ss. Polycarp wants to cut from it the maximum number of numb...

既然弱小,就只顾变强就是了 1094

Codeforces Round #496 (Div. 3) B.Delete from the Left(思维)

题目链接:http://codeforces.com/contest/1005/problem/B       题意是给你两个字符串,对两个字符串进行删除操作,只能从最左端一个一个删,然后问一共需要删多少个能使两个字符串相同。       思路就是因为删除操作是从最左端开始删除的,所以我们倒着比较,如果两个字符串的最右端的字符不相等的话,那么就只能将两个字符串全部都删除才符合操作。如果从最右端开始...

Charles_Zaqdt的博客 299

Codeforces Round #496 (Div. 3) E2 - Median on Segments (General Case Edition)(思维+用bit 位求前缀合)

这题看了别人的博客,看的我一脸懵逼。 思路:很巧秒的转换,我们把&lt;= m 数记为-1, &gt;m的数 记为1, 求其前缀和,  我们将问题转变成求以&gt; m 的数作为中位数的区间个数, 答案就变为ans(m-1) - ans(m ),我们可以用上面求得的前缀用bit就能求出答案。 我特么还不知道是这样写的么,我是不知道怎么用前缀。然后纠结了半天,是咱的基础不好。 所以重点是怎么...

尘的博客 236

codeforces div2 496

C 题意:给你 n*m 的字符串矩阵,要求删除最少的列,使得每一行的字典序大于其前面一行。 思路:我们可以从0到n-1依次判断是否需要删除该列。对于某一列,只有当出现了 某个位置小于其前面的位置,并且前面保留的列不能决定其大小,才考虑删掉。可以对每个位置设一个标志,表示这个位置是否已经被“决定了”。 #include #define SPEED_UP iostream::sync_with_

slowlight93的专栏 465
上一篇: Codeforces Round #495 (Div. 2) (ABCE) 题解
下一篇: The Tower of Babylon (UVA-437)
sortmin
博客等级 码龄9年 45粉丝 178原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值