首页 > 其他分享 >浙江理工大学2023acm队淘汰赛

浙江理工大学2023acm队淘汰赛

时间:2023-02-25 22:01:50浏览次数:34  
标签:10 理工大学 int 2023acm cin long 淘汰赛 猫猫 include

浙江理工大学2023淘汰赛部分题目的理解

这里仅提供代码及思路,网站链接如下:
链接>http://47.96.116.66/contest.php?cid=5372<
难度梯度:A B C L D E F K I G H——/) /)
有错误的话请联系我,我也想知道 ฅ(• - •)ฅ

痛!请勿在比赛中使用endl(虽然我不会)

问题 A: ACMer猫猫

题面:

你说的对,但是ICPC是由ACM自主研发的一款全新开放世界冒险游戏。游戏发生在一个被称作PTA的幻想世界,在这里,你将扮演一位名为ACMer的神秘角色,在自由的旅行中邂逅性格各异、能力独特的同伴们, 和他们一起击败强敌,找回失散的亲人——同时,逐步发掘PTA的真相。
刚刚成为成为ACMer的猫猫获得了一个由 A, C, M三个字符组成的字符串,它想知道有多少个长度为3的 ACM子串。

思想:枚举

代码:

点击查看代码
#include <bits/stdc++.h>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <unordered_map>
#include <queue>
#pragma GCC optimize(2)
typedef long long LL;
using namespace std;
const int N = 1e5 + 10,maxn = 1e6 + 10;
char a[maxn];
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int n;
	cin >> n;
	int res=0;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		if(i>=3&&a[i-2]=='A'&&a[i-1]=='C'&&a[i]=='M')
		{
			res++;
		}
	}
	cout<<res;
}

问题 B: 猫猫本

题面:

猫猫在《猫猫本》上写了n个由2个小写字母组成的字符串。现在猫猫想知道每写一个新的字符串后,《猫猫本》上有多少字符串和新添加的字符串是相似的。猫猫认为,当且仅当只有一个位置相同两个字符串是相似的。例如aa和ab,ab和cb是相似的;但是aa和aa,aa和cc是不相似的。

思想:容斥\哈希\map

点击查看代码
#include <bits/stdc++.h>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <unordered_map>
#include <queue>
#pragma GCC optimize(2)
typedef long long LL;
using namespace std;
const int N = 1e5 + 10,maxn = 1e6 + 10;
int a[N],b[N];
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int n;
	cin >> n;
	for(int i = 1;i <= n; i++){
		string s;
		cin>>s;
		int t1=s[0]-'a'+1;
		int t2=s[1]-'a'+1;
		cout<<a[t1]+b[t2]-2*b[t1*131+t2]<<"\n";
		a[t1]++;
		b[t2]++;
		b[t1*131+t2]++;
	}
	return 0;
}

问题 C: 猫猫game

题面:

猫猫一个人在实验室玩游戏。
游戏规则是这样的:每轮游戏会给猫猫两个整数 n,m,猫猫在区间 [1,n] 内,随机取m个整数。该操作进行\(2023^{2023}\)次。如果每次这m个数中,一定存在一个整数是另一个整数的倍数,则猫猫回答Yes,否则回答No。请你告诉猫猫每轮游戏的结果。

思想:鸽巢原理,真的不是找质数(赛时我在干这个蠢事)

样本大至正无穷,相当于取遍样本。下面解释为什么找质数是错误的,注意到《每个》,若n=10,取56789;这时候质数是2357,显然前面的数字更多更符合题意。其次,当n比较大时,一个数的质数个数是\(\frac{X}{lnX}\)级别的,而一个数的一半是\(\frac{X}{2}\)。显然前者小于后者。
下面证正确思想:m>(n+1)/2。每次取一半的时候都是满足题意的,n为偶数时是不影响的,n为奇数时变成n+1(自己理解下吧)

代码:

点击查看代码
#include <bits/stdc++.h>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <unordered_map>
#include <queue>
#pragma GCC optimize(2)
typedef long long LL;
using namespace std;
const int N = 1e5 + 10,maxn = 1e6 + 10;
void solve(){
	int n,m;
	cin>>n>>m;
	if(m>(n+1)/2){
		puts("Yes");
	} else {
		puts("No");
	}
}
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int t;
	cin >> t;
	while( t-- ){
		solve();
	}
	return 0;
}

标签:10,理工大学,int,2023acm,cin,long,淘汰赛,猫猫,include
From: https://www.cnblogs.com/codeshany/p/zstu_2023tts.html

相关文章

  • “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛
    A点对最大值对于每个点AC代码:typedefpair<int,int>P;constintN=1e6+10;intn,x;vector<P>G[N];intdp[N];//dp[i]:i子树价值最大链intans;voidadd(intu,......
  • C/C++数据结构课程设计[长春理工大学计算机科学技术学院2022秋季学期]
    C/C++数据结构课程设计[长春理工大学计算机科学技术学院2022秋季学期]长春理工大学计算机科学技术学院2022秋季学期数据结构课程设计一、目的:巩固数据结构与算法课内......
  • 浙江理工大学入队200题——17F
    问题F:零基础学C/C++185——行列转换题目描述对于一个n*m的稀疏矩阵,按照行、列、值得格式读入K个元素(其他位置的值为0),再输出这些数输入第一行3个整数,表示n、m、k,每2......
  • 浙江理工大学入队200题——19L
    问题L:习题8-3数据交换题目描述输入10个整数,将其中最小的数与第一个数交换,把其中最大的数与最后一个数交换。把交换后的数分行输出,每个数占一行。用函数和指针实现......
  • 浙江理工大学入队200题——19N
    问题N:习题8-17字符串比较题目描述自己写一个函数实现字符串比较,指定函数原型如下:intStrCmp(char*s1,char*s2);若s1和s2完全一样,则返回0,否则返回二者第一个不......
  • 浙江理工大学入队200题——19K
    问题K:习题8-2字符串排序输出题目描述输入3个字符串,按有小到大的顺序输出。输入分三行进行输入,每行一个字符串。(以回车结束每一行的输入)输出输出排序后的三个字......
  • 浙江理工大学入队200题——18I
    问题I:LC-显示器2297题目描述你的一个朋友刚买了一台新电脑。到目前为止,他曾经使用过的最强大的计算机是袖珍计算器。现在,看着他的新电脑,他有点失望,因为他非常喜欢他......
  • 浙江理工大学入队200题——18H
    问题H:超级跳跳跳1281题目描述如今,一种叫做“超级跳跳跳!”的国际象棋游戏在ZSTU很受欢迎。也许你是一个好孩子,对这个游戏知之甚少,所以我现在介绍给你。游戏可由两个或......
  • 浙江理工大学入队200题——18F
    问题F:两倍1006题目描述作为算术能力计划的一部分,您的学生将被随机生成2到15个唯一正整数的列表,并要求确定每个列表中有多少项是同一列表中其他项的两倍。您将需要一......
  • 浙江理工大学入队200题——18G
    问题G:醉酒的狱卒1014题目描述某个监狱的大厅里有n个牢房,每个牢房彼此相邻。每个牢房都有一个囚犯,每个牢房都被锁上了。一天晚上,狱卒感到无聊并决定玩游戏。第一轮比赛......