0821赛后总结

tips:部分题貌似不在洛谷,故用了另一个网站

T1孤独的数列

孤独的数列icon-default.png?t=N7T8http://60.190.201.182:4080/p/1038

 一道暴力模拟题,但是忘了位或而且用了二分模拟(主要是对位或的特性不了解(以为是线性增长),故死的安详)

AC代码

​#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5;
int a[N],n,t,ans;
bool check(int x){
	int p; 
	for(int i=1;i+x-1<=n;i++){
		int cnt=a[i];
		for(int k=1;k<x;k++){
			cnt=cnt|a[i+k];
		}
		if(i==1)	p=cnt;
		else if(cnt!=p)return false;
	}
	return 1;
}
signed main(){
	cin>>t;
	while(t--){
		memset(a,0,sizeof a);
		cin>>n;
		for(int i=1;i<=n;i++)	cin>>a[i];
		for(int  i=1;i<=n;i++){
			if(check(i)){
				ans=i;	
				break;
			}
		}
		printf("%d\n",ans);
	}
	return 0;
}

T2五颜六色

五颜六色icon-default.png?t=N7T8http://60.190.201.182:4080/p/1039考试的时候就没想法,写的时候也是一头雾水的,简直无语

AC代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,k,ans=1;
const int N=5e5+5;
const int INF=1e9+7;
int dis[N];
vector<int>v[N],w[N];
void dfs(int x,int fa){
	dis[x]=k;
	for(int i=0;i<w[x].size();i++)	if(dis[w[x][i]])	dis[x]--;
	for(int i=0;i<v[x].size();i++){
		if(v[x][i]==fa)	continue;
		dfs(v[x][i],x); 
	}
}                                            
signed main(){
	cin>>n>>k;
	for(int i=1;i<n;i++){
		int x,y;
		cin>>x>>y;
		v[x].push_back(y);
		v[y].push_back(x);  
	}
	for(int i=1;i<=n;i++){
		for(int j=0;j<v[i].size();j++){
			w[i].push_back(v[i][j]);
			for(int l=0;l<v[v[i][j]].size();l++){
				int z=v[v[i][j]][l];
				if(i==z) continue;
				w[i].push_back(z);
			}
		}
	}
	dfs(1,0);
	for(int i=1;i<=n;i++)	ans=ans*dis[i]%INF;
	cout<<ans;
	return 0;
}

T3获取字符串

洛谷CF1898Eicon-default.png?t=N7T8https://www.luogu.com.cn/problem/CF1898E考试的时候花了2个小时也没做出来,服了。

一直以为是模拟,后来才发现是一道贪心,删了后面的数也不影响,无后继性,可以贪心

AC代码
 

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+9;
int t,n,m;
string a,b;
bool solve(){
	queue<int>q[309];
	for(int i=0;i<n;i++)q[a[i]].push(i);
	for(int i=0;i<m;i++){
		if(q[b[i]].size()==0)	return 0;
		else{
			for(char c='a';c<b[i];c++){
				while(q[c].size()&&q[c].front()<q[b[i]].front()){
					q[c].pop();
				}
			}
			q[b[i]].pop();
		}
	}
	return true;
}
int main(){
	cin>>t;
	while(t--){
		cin>>n>>m>>a>>b;
		if(solve())cout<<"YES"<<endl;
		else cout<<"NO"<<endl;
	}
	return 0;
}

T4仙人掌方块

洛谷CF1749Eicon-default.png?t=N7T8https://www.luogu.com.cn/problem/CF1749E比赛时看了一眼就没做,到现在也没写出来。据说要双端队列;

我就是一个冲刺csp-j一等奖的蒟蒻,为什么要作省选+(CF1749E)和省选-(CF1898E)的题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值