首页 > 其他分享 >新手选拔赛:多测写挂了!

新手选拔赛:多测写挂了!

时间:2023-04-05 19:11:20浏览次数:40  
标签:return 多测 int cin long vector 选拔赛 新手 include


这道题首先先把所有的 关键词用map读入 然后用vector 去存string 和出现的次数 cnt 进行排序
之后读入目标字符串 用stl string自带的查找判断前缀 如果是前缀那么必为0

#include <bits/stdc++.h>
using namespace std;
struct node{
	string s;
	int cnt;
	bool operator<(const node& A){
		if(cnt!=A.cnt)
			return cnt>A.cnt;// 从大到小排序!!
		else return s<A.s;
	}
};
vector<node> ve;
map<string,int> mp;
int n;
int main()
{

	cin>>n;
	for(int i=1;i<=n;i++)
	{
		string s1;
		cin>>s1;
		mp[s1]++;
	}
	for(auto [x,y]:mp)
	{
		ve.push_back({x,y});
	}
	sort(ve.begin(),ve.end());
	int t;
	cin>>t;
	while(t--)
	{
		string s1;
		cin>>s1;
		int o=5;
		for(int i=0;i<ve.size();i++)
		{
			if(ve[i].s.find(s1)==0)//因为是前缀!!
			{
				cout<<ve[i].s<<'\n';
				o--;
			}
			if(o==0) break;

		}
		if(o==5) cout<<"-"<<'\n';
		cout<<'\n';
	}
}


这道题就是课上讲过的字符串哈希中的数组哈希 用一个vector去存数组然后把这个数组的哈希值存入map里面去然后进行判断即可 大水题

#include <bits/stdc++.h>
using namespace std;
int n,k;
unsigned long long p=99999999971;
int base=137;
unsigned long long hash1(const vector<unsigned long long> &s)
{
	unsigned long long  res=0;
//	for(int i=0;i<k;i++)
//		res=(res*base+(s[i])%p);
	for(auto x:s)
	{
		res=(res*base+(x)%p);
	}
		return res; 
}
int main()
{
	map<unsigned long long,int> a;
	cin>>n>>k;
	vector<unsigned long long> v(k);
	for(int i=1;i<=n;i++)
	{
		for(int i=0;i<k;i++)
		{
			cin>>v[i];
		}
		sort(v.begin(),v.end());
		a[hash1(v)]++;
	}
	int ans=0;
	for(auto [x,y]:a)
	{
		ans=max(y,ans);
	}
	cout<<ans;
}


这道题有意思这个是一个记忆化搜索 可仔细想想先去遍历 经过x,y的所有路径若之后的东西又经过x,y 那么,可由x,y行进的所有路径都被遍历了一遍那么就无了!

#include  <bits/stdc++.h>
using namespace std;
int n,m;
int x11,y11,x22,y22;
long long f[1001][1001];
int st[1001][1001];
int fx[3],fy[3];
int mod=998244353;
long long dfs(int x,int y)
{
	if(f[x][y]!=-1)
		return f[x][y];
	f[x][y]=0;//第一次遍历到赋值为0,由这个去往下走之后所有由它经过的路径都是可以的
	if(x==x22&&y==y22)
		return f[x][y]=1;//由终点不可能往下继续走了
	for(int i=1;i<=2;i++)
	{
		int a=x+fx[i];
		int b=y+fy[i];
		if(a<=n&&a>=1&&b<=m&&b>=1&&st[a][b])
		{
			f[x][y]=(f[x][y]+dfs(a,b))%mod;
		}
	}
	return f[x][y];
}
int main()
{
	cin>>n>>m;
	cin>>x11>>y11>>x22>>y22;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			cin>>st[i][j];
		}
	}
	if(x11<x22)
	{
		fx[1]=1,fy[1]=0;
	}else fx[1]=-1,fy[1]=0;
	if(y11<y22)
	{
		fx[2]=0,fy[2]=1;
	}else fx[2]=0,fy[2]=-1;
	memset(f,-1,sizeof(f));
	dfs(x11,y11);
	cout<<f[x11][y11];
}


这道题主要就是注意main也是一个函数在函数中开大数组会爆栈的!!所以得开到外面去或用vector 自动默认为堆

#include <bits/stdc++.h>
using namespace std;
int t,n;
int dist[100005];
struct node{
	int y,v;
	node(int a,int b)
	{
		y=a,v=b;
	}
};
int dijkstra(int s,int t,int dist[],vector<node> edge[])
{
	set<pair<int,int>>q;
	for(int i=1;i<=t;i++)
	{
		dist[i]=1<<30;
	}
	dist[s]=0;
	q.clear();
	for(int i=1;i<=t;i++)
		q.insert({dist[i],i});
	while(!q.empty())
	{
		int x=q.begin()->second;
		if(x==t||dist[x]>1<<30)
			break;
		q.erase(q.begin());
		for(auto i:edge[x])
		{
			if(dist[x]+i.v<dist[i.y])
			{
				q.erase({dist[i.y],i.y});
				dist[i.y]=dist[x]+i.v;
				q.insert({dist[i.y],i.y});
			}
		}
	}
	return dist[t];
}
void solve()
{
	cin>>n;

	vector<node> edge[n+1];
	for(int i=1;i<n;i++)
	{
		int x;
		cin>>x;
		edge[i].push_back({x,2});
		edge[i].push_back({i+1,1});
	}
	cout<<dijkstra(1,n,dist,edge)<<'\n';
}
int main()
{
	cin>>t;
	while(t--)
	{
		solve();
	}
}

注意如何改写即可

标签:return,多测,int,cin,long,vector,选拔赛,新手,include
From: https://www.cnblogs.com/--Lance/p/17290501.html

相关文章

  • Florr 从新手到大佬
    Florr从新手到大佬新手上路首先在这里,你会遇到一些简单的教程。按照教程完成,也可以参考链接里的内容。装备分为一下几种:Common 颜色:#7EEF6DUnuaual颜色:#FFE65DRare颜色:#4D52E3Epic颜色:#861FDELegendary颜色:#DE1F1FMythic颜色:#1FDBDEUltra颜色:#FF2B75Super颜色:#2BFFA3......
  • silverlight/Flash 跨域访问给新手的一点经验
      尝试向URI“http://www.luozhuang.com/web1/WebService.asmx”发出请求时出错。这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于SOAP服务。您可能需要与该服务的所有者联系,以发布跨域策略文件并确保该文件允许发送SOAP相关......
  • 超详细!新手如何创建一个Vue项目
    目录一、在官网下载Vue.js二、使用<script>标签直接引入本地的vue.js三、使用CDN引入Vue.js四、验证是否安装成功五、安装VueDevtools浏览器调试插件不同浏览器导入方法本篇仅以HBuilderX为例,其余开发软件同样适用这里两种方法,使用<script>标签直接引入本地的vue.js或使用CDN......
  • centos6.5安装流量监控工具iftop【杭州多测师】【杭州多测师_王sir】
    一、概述iftop可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等,详细的将会在后面的使用参数中说明。官方网站:http://www.ex-parrot.com/~pdw/iftop/二、依赖包安装yum install -y gcc flex byacc libpcap ncurses ncurses-devel libpcap-devel tcpd......
  • 新手如何使用Tiktok加速器做跨境电商?可以加速Tiktok网络的节点分享
    TikTok是一款全球性的视频应用程序,越来越多的跨境电商企业开始在TikTok上开展业务。然而,由于地理位置和网络原因,许多跨境电商企业在使用TikTok时会遇到卡顿、延迟等问题,影响了业务的正常运营。 为了解决这些问题,许多跨境电商企业开始使用TikTok加速器。那么,新手如何使用TikTok......
  • 类似京东无货源电商怎么做,新手怎么做无货源电商
    无货源电商怎么做,新手怎么做无货源电商,无货源电商平台有哪些,哪些平台可以做无货源电商,无货源电商有哪些优势,什么是无货源电商,无货源电商软件开发公司哪家好,无货源电商APP哪个好,有哪些电商平台适合做无货源,无货源电商APP开发,无货源电商软件开发,无货源电商小程序开发,无货源电商抖......
  • JAVA~适合新手和复习~基础七(线程)
    Java多线程编程一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。线程和进程关系:一个进程包括由操作系统分配的内存空......
  • 给智能手机和平板用户新手的三个建议
    智能机时代的大门已经开启,每年都会有数以百万计的人摒弃功能机而选择智能机,然而,这些新手们总是会不时遇到各种各样的问题,如程序安装、应用选择等等。如何才能避免一些常见错......
  • jmeter中通过PerfMon Metrics Collector插件监控CPU和内存等等显示ConnectException连
    一、问题定位1、jmeter中通过PerfMon Metrics Collector插件监控CPU和内存等等显示ConnectException连接超时2、定位到是因为服务器端没有启动serverAgent.sh代理,启动......
  • 西南民族大学2023天梯选拔赛
    L1-1谢谢卡尔!print("谢谢卡尔!\\(>_<)/")L1-2现在是,幻想时间!#include<bits/stdc++.h>usingnamespacestd;intmain(){doublea,b;cin>>a>>b;......