牛客周赛 Round 78 A-C

A.时间表查询!

链接:https://ac.nowcoder.com/acm/contest/100671/A

来源:牛客网

题目描述

今天是2025年1月25日,今年的六场牛客寒假算法基础集训营中,前两场比赛已经依次于 20250121、20250123 举行;而后四场比赛将依次于 20250126、20250206、20250208、20250211 举行。

小歪想知道第 x 场比赛是否已经举行,你能帮帮他吗?

输入描述:

复制代码
一个整数 x(1≦x≦6) 代表询问的场次。

输出描述:

复制代码
如果第 x 场比赛已经举行,输出 YES;否则,输出 NO。

示例1

输入

复制代码
1

输出

复制代码
YES

说明

复制代码
第一场比赛已经于2025年1月21日举行。

示例2

输入

复制代码
6

输出

复制代码
NO

说明

复制代码
第六场比赛将于2025年2月11日举行。

代码:

cpp 复制代码
#include <bits/stdc++.h>
#define ll long long
#define endl "\n"
using namespace std;
int main()
{
	int x;
	cin>>x;
	if(x==1||x==2) 
		cout<<"YES";
	else 
		cout<<"NO";
	return 0;
} 

B.一起做很甜的梦!

链接:https://ac.nowcoder.com/acm/contest/100671/B

来源:牛客网

题目描述

梦境是由我们的记忆碎片重组后再次演绎的结果。对于一个拥有 n 段记忆的人,我们可以使用 1∼n 这 n 个整数来表示每一段记忆。将这 n 段记忆打乱后重新组合,就得到了一个梦。

作为牛客星球的首席梦境研究员,牛可乐在研究中发现:如果一个梦境中任意连续的 k 段记忆(其中 1<k<n)都无法完整还原出一段真实经历时(即不构成一个++排列++ ),这个梦就会特别甜美。这种恰到好处的记忆重组方式,让梦境与现实保持着微妙的距离,创造出令人陶醉的朦胧美感。

现在,牛可乐想请你帮忙设计一些这样的甜美梦境,来继续他的天才研究。

\hspace{15pt}长度为 nnn 的++排列++是由 1∼n 这 n 个整数、按任意顺序组成的数组,其中每个整数恰好出现一次。例如,{2,3,1,5,4} 是一个长度为 555 的排列,而 {1,2,2}\ 和 {1,3,4} 都不是排列,因为前者存在重复元素,后者包含了超出范围的数。

输入描述:

复制代码
在一行上输入一个整数 n(3≦n≦2×1e5)代表记忆的段数。

输出描述:

复制代码
在一行上输出 n 个整数,代表你为一个有着 n 段记忆的人设计的甜美梦境。

如果存在多种可能的甜美梦境,你可以输出任意一种。系统会自动判定你的设计是否符合要求。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。

示例1

输入

复制代码
4

输出

复制代码
2 4 1 3

说明

复制代码
在这个样例中,任意连续的 kkk 段记忆:
{2,4} ;
{4,1} ;
{1,3} ;
{2,4,1} ;
{4,1,3} ;
都不构成一个排列,所以这是一个甜美的梦境。

示例2

输入

复制代码
4

输出

复制代码
3 1 4 2

说明

复制代码
当然,梦的形状千奇百怪,我们有数不清的设计方案。

思路:

其实只要1不在2前面就行。

代码:

cpp 复制代码
#include <bits/stdc++.h>
#define ll long long
#define endl "\n"
using namespace std;
int main()
{
	int n;
	cin>>n;
    for(int i=2;i<=n;i++) cout<<i<<" ";
    cout<<1;
	return 0;
} 

C.翻之

链接:https://ac.nowcoder.com/acm/contest/100671/C

来源:牛客网

题目描述

对于给定的 n 行 m 列的矩阵,每一个元素要么是 '0',要么是 '1'。

每一轮,你可以进行一次以下操作:

选择一行的元素,将其全部反置,即 '0' 变为 '1','1' 变为 '0'。

请你帮助小歪判断,若能进行任意多轮操作(也可以不进行操作),至多能使得多少列的元素均为 1'。你只需要输出这个最大值。

输入描述:

复制代码
第一行输入两个正整数 n,m(1≦n,m≦3×1e3) 代表矩阵的行数和列数。
此后 n 行,每行输入一个长度为 m 、仅由 ‘0’和 ‘1’ 构成的字符串,代表矩阵每一行中的元素。

输出描述:

复制代码
输出一个整数,表示至多能使得多少列的元素均为 ‘1’。

示例1

输入

复制代码
3 4
1111
1111
1111

输出

复制代码
4

说明

复制代码
在这个样例中,不需要进行操作,所有列的元素均为 ‘1’。

示例2

输入

复制代码
3 2
01
10
11

输出

复制代码
1

说明

复制代码
在这个样例中,我们可以选择对第一行进行操作,使得第一行变为 "10",此时,第一列的元素均为 ‘1’。

思路:

求相同的列数的最大值即可。

代码:

cpp 复制代码
#include <bits/stdc++.h>
#define ll long long
#define endl "\n"
using namespace std;
int main()
{
	int n,m,ans = 0,mmax=1;
	cin >> n >> m;
	vector<string> v(n + 1),t(m+1,"");
	for(int i = 0;i < n; i++)
	{
		cin >> v[i];
	}
	for(int j = 0; j < m; j++)
	{
		for(int i=0;i<n;i++)
		{
			t[j]+=v[i][j];
		}
	}
	map<string,int>mp;
	for(int j=0;j<m;j++) {
		mp[t[j]]++;
	}
	auto it=mp.end();
	for(auto it=mp.begin();it!=mp.end();it++) {
		ans=max(ans,it->second);
	}
// 	it--;
	cout<<ans;
	/*
	1 0 1
	0 1 0
	1 0 1
	*/ 
	return 0;
} 
相关推荐
山居秋暝LS35 分钟前
目标跟踪之sort算法(3)
python·算法·目标跟踪·sort
{⌐■_■}2 小时前
【Validator】自定义字段、结构体补充及自定义验证,go案例讲解ReportError和errors.As在其中的使用
开发语言·golang·xcode
python算法(魔法师版)4 小时前
C++游戏开发深度解析
开发语言·c++·c
siy23335 小时前
[c语言日寄]assert函数功能详解
c语言·开发语言·笔记·学习·算法
不停留5 小时前
贪心算法-跳跃游戏
前端·javascript·数据结构·算法·贪心算法
Ning_.6 小时前
LeetCode 349题解:两个数组的交集
数据结构·算法·leetcode
xiao--xin6 小时前
LeetCode100之全排列(46)--Java
java·算法·leetcode·回溯
滨HI06 小时前
18. 四数之和【力扣】——两层循环后的双指针法
数据结构·c++·算法·leetcode·职场和发展
像污秽一样7 小时前
AI刷题-蛋糕工厂产能规划、优质章节的连续选择
数据结构·c++·算法·dp·队列
皮皮虾我们跑8 小时前
Java中的泛型
java·开发语言