首页 > 其他分享 >牛客周赛:26

牛客周赛:26

时间:2023-12-31 20:33:35浏览次数:27  
标签:取模 26 周赛 int 取反 偶数 牛客 zero 数组

A、小红的整数操作

跳转原题点击此:A题地址

1、题目大意

  给定一个数组和一个数k,问你通过对任意数组中的数加上若干次k,使得最终数组中相同的数最多,问你最多数是多少。

2、题目解析

  因为要加上若干个k,使得最终数组的相同数最多。所以,我们只需要找到每个数对k取模的结果,最后这个取模的结果的数最多的就是答案。因为无论加上多少个k,对k取模后,加上的若干个k都会被消除。我们只需要找到模的差异即可。
  比如给出的案例中,1、3、5对k(k为2)取模的结果就是1,而2、4取模的结果为0。所以最多相同的数就是3。

3、具体代码

#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

const int N = 1e5+10;

int T;
int n, k;

void solve()
{
	cin >> n >> k;
	vector<int> a(n + 1, 0);
	vector<int> b(k + 1, 0); // 注意,b数组要开k个大小
	for(int i = 1; i <= n; i++)
		cin >> a[i];
	int ans = 0;
	for(int i = 1; i <= n; i++)
	{
		int tmp = a[i] % k;
		b[tmp] ++;
		ans = max(ans, b[tmp]);
	}
	cout << ans << endl;
}

int main()
{
	solve();

	return 0;
}

 

B、小红的01串

跳转原题点击此:B题地址

1、题目大意

  有一个01串,可以对一个长度为2的字串取反(0变为1,1变为0),问你经过若干次操作后,所有的字符能否一样。

2、题目解析

  我们发现,当有偶数个0或者1时,可以通过有限个操作将这偶数个0和1变为相反的数。如果想要将第i和第j的元素相反,此时只需要对\(i\sim j\)这个区间的字符依次取反即可,此时我们发现,这个区间中只有i和j经过了1次反转,而其他字符经过了两次反转没变
  案例、10101,想要将2和4的0(0为偶数个)变为1,只需要依次对(2,3),(3,4)取反即可,这时3取反两次没变,而2、4则取反了。

3、具体代码

#include<bits/stdc++.h>

using namespace std;

const int N = 2e5+10;

int T;
int n;
int f[N];

void solve()
{
	string s;
	int zero = 0, one = 0;
	cin >> s;
	for(auto t : s)
	{
		if(t == '0')
			zero ++;
		else
			one ++;
	}
	// 因为可以通过若干次的操作,将偶数个的0/1变为1/0。
	if(zero % 2 == 0 || one % 2 == 0)
		cout << "Yes\n";
	else
		cout << "No\n";
}

int main()
{
	cin >> T;
	while (T--)
	{
		solve();
	}

	return 0;
}

 

后面就不会了,emmm

标签:取模,26,周赛,int,取反,偶数,牛客,zero,数组
From: https://www.cnblogs.com/Tom-catlll/p/17937948

相关文章

  • 牛客挑战赛72 总结
    A题意:给定一个数组,问有多少\(i\in[2,n-1],a[i-1]>a[i]<a[i+1]\)。做法:模拟。B题意:按顺序将\(n\)个数加入集合,维护前\(6\)大的数。对于每个数求出它会将第几个数踢出前\(6\)或者不踢出任何其他数。做法:模拟。可以使用priority_queue实现。但是要注意priority_queue默......
  • ABC267 复盘
    ABC267复盘At链接LG链接[ABC267A]Saturday思路解析用一个map存下每个日期代表的数字,拿\(6\)减去即可code#include<bits/stdc++.h>usingnamespacestd;map<string,int>mp;voidinit(){ mp["Monday"]=1; mp["Tuesday"]=2; mp["Wednesda......
  • 26.selenium 多浏览器处理
    目录 多浏览器测试介绍多浏览器测试实现多浏览器测试背景 用户使用的浏览器(firefox,chrome,IE等)web应用应该能在任何浏览器上正常的工作,这样能吸引更多的用户来使用多浏览器测试概述 是跨不同浏览器组合验证网站或web应用程序功能的过程是......
  • macOS Monterey 12.6.9 (21G726) 正式版发布,ISO、IPSW、PKG 下载
    macOSMonterey12.6.9(21G726)正式版发布,ISO、IPSW、PKG下载本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。另外也支持在Windows和Linux中创建可引导介质。2023年9月12日,Apple为macOS和iOS......
  • macOS Monterey 12.6.9 (21G726) Boot ISO 原版可引导镜像
    macOSMonterey12.6.9(21G726)BootISO原版可引导镜像本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。另外也支持在Windows和Linux中创建可引导介质。2023年9月12日,Apple为macOS和iOS等旧......
  • 学期:2023-2024-1 学号:20231426 《计算机基础与程序设计》第十四周学习总结
    作业信息这个作业属于哪个课程2022-2023-1-计算机基础与程序设计这个作业要求在哪里2022-2023-1计算机基础与程序设计作业这个作业的目标通过教材内容了解文件,网络作业正文https://www.cnblogs.com/hhaxx/p/17933978.html教材学习内容总结《计算科学概论......
  • 12月26日总结
    一、简介今天是《Net高级调试》的第十五篇文章,这个系列的文章也快结束了,但是我们深入学习的脚步还不能停止。上一篇文件我们介绍了C#中一些锁的实现逻辑,并做到了眼见为实的演示给大家它们底层是如何实现的,今天这篇文件就主要介绍一些如何查找和解决在项目调试中遇到的......
  • 2023.12.26——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习;我了解到的知识点:1.软件案例分析明日计划:学习......
  • 26_二叉搜索树的最小绝对差
    530.二叉搜索树的最小绝对差给你一个二叉搜索树的根节点root,返回树中任意两不同节点值之间的最小差值。差值是一个正数,其数值等于两值之差的绝对值。示例1:输入:root=[4,2,6,1,3]输出:1示例2:输入:root=[1,0,48,null,null,12,49]输出:1【思路】题目要求在二叉......
  • 代码随想录算法训练营第十五天 | 层序遍历 ,226.翻转二叉树,101.对称二叉树
    一、二叉树层序遍历题目链接:LeetCode102.二叉树的层序遍历LeetCode107.二叉树的层序遍历IILeetCode199.二叉树的右视图LeetCode637.二叉树的层平均值LeetCode429.N叉树的层序遍历LeetCode515.在每个树行中找最大值LeetCode116.填充每个节点的下一个右侧节......