首页 > 其他分享 >0217-0224校赛部分题解

0217-0224校赛部分题解

时间:2024-02-17 09:04:23浏览次数:28  
标签:__ string int 题解 元素 0224 cin printf 校赛

SMU Winter 2024 Round #3 (Div.2)

对于自己比较有价值的题目是
D题 https://codeforces.com/gym/102897/problem/D?mobile=true
J题 https://codeforces.com/gym/102897/problem/J
K题 https://codeforces.com/gym/102897/problem/K
E题 https://codeforces.com/gym/102897/problem/K

D题
题目看似很长一大串,非常吓人,但实际上只需要抓住两个关键词:回文字符串被分割 后 的最长长度,我们要记住,单个字符就是一个回文字符串。那么问题就很好解决了,只需要统计总共出现过几个字母就行啦

点击查看代码
#include <bits/stdc++.h>
using namespace std;
int sum;
void solve()
{
	string s;
	cin>>s;
	sum+=s.size();
}


signed main()
{
	int t;
	cin>>t;
	while(t--)
	{
		solve();
	}
	cout<<sum;
	return 0;
	 	
}

J题
这题其实就是在统计出现过的字符种类数,但是每种可能出现多次,那么我们便可以想到一个不存在重复元素的容器set容器,介绍一些set的基础操作,set 的含义是集合,它是一个有序的容器,里面的元素都是排序好的,支持插入,删除,查找等操作,就像一个集合一样。
s.begin() 返回指向第一个元素的迭代器
s.end() 返回指向最后一个元素的迭代器
s.clear() 清空所有元素
s.empty() 检查集合是否为空 若空返回true
s.insert() 在集合中插入元素
s.size() 集合中的元素数目

点击查看代码
#include <bits/stdc++.h>
using namespace std;
int lj(string&str)
{
	set<char> q;
	for(char c:str){
		if(c!='.') q.insert(c);
	}
	return q.size();
}

void solve()
{
	int n,sum=0; 
	cin>>n;
	while(n--)
	{
		string s;
		cin>>s;
		sum+=lj(s);
	}
	cout<<sum<<endl;
}

int main()
{
	int  t;
	cin>>t;
	while(t--)
	{
		
		solve();
		
	}
  return 0;
}

E题
这一题就是输出图案就行,但是注意‘/’要使用转义字符就是在printf里输入两个//

点击查看代码
#include <bits/stdc++.h>
using namespace std;

int main()
{
	string s;
	cin>>s;
	printf(" __      _____\n");
	printf("|  | ___/ ____\\____\n");
	printf("|  |/ /\\   __\\/ ___\\\n");
	printf("|    <  |  | \\  \\___\n");
	printf("|__|_ \\ |__|  \\___  >\n");
	printf("     \\/           \\/");
 return 0;
}

标签:__,string,int,题解,元素,0224,cin,printf,校赛
From: https://www.cnblogs.com/swjswjswj/p/18017693

相关文章

  • 关于thrift python接口和java通信出现问题解决
    真的无语,搞了一个下午。使用thrift出现错误,先说一下遇到第一个错误,如下图:那时候代码是这叼样```if__name__=='__main__':handler=MessageServiceHandler()processor=MessageService.Processor(handler)transport=TSocket.TServerSocket(None,"9090"......
  • P3157 [CQOI2011] 动态逆序对 题解
    题目链接:动态逆序对常见经典题,理解一个数对逆序对贡献计算即可。对于一个数而言,它在一个序列中的逆序对有两部分贡献,一部分为前面比它严格大的数,另一部分为后面比它严格小的数,有道二莫题也是基于此去考虑的。考虑最开始知道了总逆序数,每次删除一个数逆序数会减少两部分值,显然就......
  • 选课 题解
    题目描述大学里实行学分。每门课程都有一定的学分,学生只要选修了这门课并考核通过就能获得相应的学分。学生最后的学分是他选修的各门课的学分的总和。每个学生都要选择规定数量的课程。其中有些课程可以直接选修,有些课程需要一定的基础知识,必须在选了其它的一些课程的基础上才......
  • 洛谷 P4065 题解
    模拟赛T1,纪念一下第一次场切紫。(话说场上这么多人切是不是都找到原了,就我这么傻想了半天)正难则反,很容易的将题目转化为选择若干种颜色,使这些颜色在原数组中的位置连续。设$pre_i$为颜色$i$最早出现的位置,$suf_i$为颜色$i$最晚出现的位置。假设通过选择若干颜色得到的位......
  • P10149 [Ynoi1999] XM66F题解
    题解首先,问题是静态的区间查询问题,一眼莫队。那么我们就需要考虑所需要维护的内容在区间扩增或者缩减时的变化如何快速维护。我们可以先写出对于区间\([l,r]\)来说,满足\(l\lei<j<k\ler\)的有序三元组\((i,j,k)\)数量的表达式,方便拆式子:\[\sum\limits_{i=l}^{r}......
  • 启动vue-element-admin遇到问题解决方案
    概述从https://github.com/PanJiaChen/vue-element-admin下载代码,按照文档执行,期间遇到一些列问题。1#clonetheproject2gitclonehttps://github.com/PanJiaChen/vue-element-admin.git34#entertheprojectdirectory5cdvue-element-admin67#insta......
  • 出现8080端口占用问题解决
    查到占用端口号并关闭netstat-aon|findstr8080出现:TCP0.0.0.0:80000.0.0.0:0LISTENING23296TCP[::]:8000[::]:0LISTENING23296tasklist|findstr"23296"出现:java.exe......
  • CF739A Alyona and mex 题解
    题目简单构造,首先我们知道一个区间\([l,r]\)内的最大答案为为这个区间的长度\(len\),因为其中可以包括\([0,r-l+1]\)这些数。所以\(ans=min(len_i)\)。考虑如何满足这个条件,设最小长度为\(len_{min}\),我们可以轮流输出\([0,len_{min}]\),因为\(len_{min}\)是最小长度,所......
  • 树状数组-三色二叉树 题解
    题目在这里————————————————————————————————三色二叉树首先题面写的很清楚了是一道树状数组题因为这题的输入方式很特别按二叉树序列所以在输入上要特殊处理如下voidread(intx){//读入+存图以左右子树为形式如l[x]=y即y为x左子树......
  • [Vijos P1448] 校门外的树 题解
    题目描述校门外有很多树,学校决定在某个时刻在某一段种上一种树,保证任一时刻不会出现两段相同种类的树,现有两种操作:k==1,读入l,r表示在l到r之间种上一种树,每次操作种的树的种类都不同;k==2,读入l,r表示询问l到r之间有多少种树。注意:每个位置都可以重复种树。......