【超好懂的比赛题解】第四届SCPC中南民族大学程序设计竞赛(同步赛)

57 篇文章 0 订阅
28 篇文章 0 订阅

title : 第四届SCPC中南民族大学程序设计竞赛(同步赛)
date : 2022-6-1
tags : ACM,题解,练习记录
author : Linno


第四届SCPC中南民族大学程序设计竞赛(同步赛)

题目链接:https://ac.nowcoder.com/acm/contest/35624

补题进度:13/14

A-Funny哥卖锅盔

按题意模拟一下,注意加粗的字都是很重要的判断跳出的条件。

//#pragma GCC optimize("Ofast", "inline", "-ffast-math")
//#pragma GCC target("avx,sse2,sse3,sse4,mmx")
#include<bits/stdc++.h>
#define inf 0x3f3f3f3f
#define int long long
using namespace std;
const int N=2e5+7;
const int mod=1e9+7;

//int read(){	int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') f=f*-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;}
//void write(int x){if(x>9) write(x/10);putchar(x%10+'0');}

int n,m;
string str1,str2;
int stk[N];
void Solve(){
	cin>>n>>m;
	cin>>str1;
	cin>>str2;
	int idx=0,top=0,flag=0;
	for(int i=0;i<str2.length();++i){
		if(str2[i]==stk[top]){
			--top;
			continue;
		}else{
			while(idx<n&&top<=m&&str2[i]!=str1[idx]){
				stk[++top]=str1[idx];
				++idx;
				continue;
			}
			if(idx==n||top>m){
				flag=1;
				break;
			}
			++idx;
		}
	}
	if(flag||n!=str2.length()) cout<<"That's not Funny at all!\n";
	else cout<<"Don't you think that's Funny?\n";
}

signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
//  freopen("in.cpp","r",stdin);
//  freopen("out.cpp","w",stdout);
	int T=1;
//	cin>>T;
//	clock_t start,finish;
//	start=clock();
	while(T--){
		Solve();
	}
//	finish=clock();
//	cerr<<((double)finish-start)/CLOCKS_PER_SEC<<endl;	return 0;
}

B-穿越到异世界的我居然在写数学题?

经典题了,枚举一下中间的点,那么这个点连上原点表示的斜率也确定了,看他能在右上角的区域移动出多少条直线,翻过来再做一遍,最后加上x轴y轴的方案即可。

#include<bits/stdc++.h>
#define rep(i,x,y) for(int i=x; i<=y; ++i)

using namespace std;
int n,m;
long long ans;

int gcd(int a,int b)
{
    return !b?a:gcd(b,a%b);
}

int main()
{
    scanf("%d%d",&n,&m),++n,++m;
    rep(i,1,n-1) rep(j,1,m-1) ans+=(gcd(i,j)-1ll)*(n-i)*(m-j)*2;
    ans+=n*(n-1ll)*(n-2ll)/6*m+m*(m-1ll)*(m-2ll)/6*n;
    printf("%lld\n",ans);
    return 0;
}

C-南湖的瓜

也就是找两个权值最大的连通块,直接跑bfs就行了。

//#pragma GCC optimize("Ofast", "inline", "-ffast-math")
//#pragma GCC target("avx,sse2,sse3,sse4,mmx")
#include<bits/stdc++.h>
using namespace std;
const int N=507;
const int mod=1e9+7;

//int read(){	int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') f=f*-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;}
//void write(int x){if(x>9) write(x/10);putchar(x%10+'0');}

int xx[]={0,0,1,-1},yy[]={1,-1,0,0};
int n,m,ans[N],res,vis[N][N];
char mp[N][N];
inline void dfs(int x,int y){
	vis[x][y]=1;
	if(mp[x][y]=='*') ++res;
	for(int d=0;d<4;++d){
		int nx=x+xx[d],ny=y+yy[d];
		if(nx<1||nx>n||ny<1||ny>m||mp[nx][ny]=='#'||vis[nx][ny]) continue;
		dfs(nx,ny);
	}
} 

void Solve(){
	cin>>n>>m;
	for(int i=1;i<=n;++i){
		for(int j=1;j<=m;++j){
			cin>>mp[i][j];
		}
	}
	int fi=0,se=0;
	for(int i=1;i<=n;++i){
		for(int j=1;j<=m;++j){
			if(mp[i][j]=='*'&&!vis[i][j]){
				res=0;
				dfs(i,j);
				if(res>fi){
					se=fi;fi=res;
				}else if(res>se) se=res;
			}
		}
	}
	cout<<fi+se<<"\n";
}

signed main(){
//	ios::sync_with_stdio(0);
//	cin.tie(0);cout.tie(0);
//  freopen("in.cpp","r",stdin);
//  freopen("out.cpp","w",stdout);
	int T=1;
//	cin>>T;
//	clock_t start,finish;
//	start=clock();
	while(T--){
		Solve();
	}
//	finish=clock();
//	cerr<<((double)finish-start)/CLOCKS_PER_SEC<<endl;	return 0;
}

D-Brave tower

二分加上状态转移,注意二分的边界。

//#pragma GCC optimize("Ofast", "inline", "-ffast-math")
//#pragma GCC target("avx,sse2,sse3,sse4,mmx")
#include<bits/stdc++.h>
#define inf 0x7f7f7f7f
#define int long long
using namespace std;
const int N=2e5+7;
const int mod=1e9+7;

//int read(){	int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') f=f*-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;}
//void write(int x){if(x>9) write(x/10);putchar(x%10+'0');}

int n,mp[N][5],dp[N][5];

bool check(int x){
	for(int i=2;i<=n;++i) dp[i][1]=dp[i][2]=dp[i][3]=0;
    dp[1][1]=dp[1][2]=dp[1][3]=1;
	for(int i=2;i<=n;++i){
		for(int j=1;j<=3;++j){
			for(int k=1;k<=3;++k){
				if(dp[i-1][j]&&abs(mp[i][k]-mp[i-1][j])<=x){
					dp[i][k]=1;
				}
			}
		}
		if(!dp[i][1]&&!dp[i][2]&&!dp[i][3]) return false;
	}
	return true;
}

void Solve(){
	cin>>n;
	for(int i=1;i<=n;++i){
		cin>>mp[i][1]>>mp[i][2]>>mp[i][3];
	}
	int L=0,R=inf,M;
	while(R-L>1){
		M=(L+R)/2;
		if(check(M)) R=M;
		else L=M;
	}
    if(check(L)) R=L;
	cout<<R<<"\n";
}

signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
//  freopen("in.cpp","r",stdin);
//  freopen("out.cpp","w",stdout);
	int T=1;
//	cin>>T;
//	clock_t start,finish;
//	start=clock();
	while(T--){
		Solve();
	}
//	finish=clock();
//	cerr<<((double)finish-start)/CLOCKS_PER_SEC<<endl;	return 0;
}

E-小吉祥的考验

记忆化搜索也T了,只能换成DP做法,每个格子显然都是由上面或者左边的格子转移过来的,dp[i][j][x][y]表示格子[i,j]中特殊格子1使用状态为x,特殊格子2的使用状态为y使的最大得分。

//#pragma GCC optimize("Ofast", "inline", "-ffast-math")
//#pragma GCC target("avx,sse2,sse3,sse4,mmx")
#include<bits/stdc++.h>
#define inf 0x3f3f3f3f
#define int long long
using namespace std;
const int N=505;
const int mod=1e9+7;

int read(){	int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') f=f*-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;}
void write(int x){if(x>9) write(x/10);putchar(x%10+'0');}

struct node{int x,y,sc,stp,lim1,lim2;};
bool operator <(node A,node B){
	return A.sc<B.sc;
}

int n,m,k,ans=-1,key[N][N],mp[N][N];
int dp[N][N][2][2];

void Solve(){
	n=read();m=read();
	for(int i=1;i<=n;++i){
		for(int j=1;j<=m;++j){
			mp[i][j]=read();
		}
	}
	k=read();
	for(int i=1,op,x,y;i<=k;++i){
		op=read();x=read();y=read();
		key[x][y]=op;
	}
	//bfs();
	memset(dp,-0x3f,sizeof(dp));
	dp[0][1][0][0]=dp[1][0][0][0]=0;
	for(int i=1;i<=n;++i){
		for(int j=1;j<=m;++j){
			if(key[i][j]==1){
				dp[i][j][1][0]=(max(dp[i-1][j][0][0],dp[i][j-1][0][0])+mp[i][j])/2;
				dp[i][j][1][1]=(max(dp[i-1][j][0][1],dp[i][j-1][0][1])+mp[i][j])/2;
				//dp[i][j][0][1]=dp[i][j][0][0]=-inf;
			}else if(key[i][j]==2){
				dp[i][j][0][1]=max(dp[i-1][j][0][0],dp[i][j-1][0][0])+(i+j-1)*mp[i][j]; 
				dp[i][j][1][1]=max(dp[i-1][j][1][0],dp[i][j-1][1][0])+(i+j-1)*mp[i][j];
				//dp[i][j][1][0]=dp[i][j][0][0]=-inf;
			}else{
				dp[i][j][0][0]=max(dp[i-1][j][0][0],dp[i][j-1][0][0])+mp[i][j];
				dp[i][j][0][1]=max(dp[i-1][j][0][1],dp[i][j-1][0][1])+mp[i][j];
				dp[i][j][1][0]=max(dp[i-1][j][1][0],dp[i][j-1][1][0])+mp[i][j];
				dp[i][j][1][1]=max(dp[i-1][j][1][1],dp[i][j-1][1][1])+mp[i][j];
			}
		}
	}
	//cout<<dp[n][m][0][0]<<" "<<dp[n][m][0][1]<<" "<<dp[n][m][1][0]<<" "<<dp[n][m][1][1]<<" !!\n";
	ans=max(max(dp[n][m][0][0],dp[n][m][0][1]),max(dp[n][m][1][0],dp[n][m][1][1]));
	if(ans<=0) puts("gusha!");
	else write(ans),putchar('\n');
}

signed main(){
//  freopen("in.cpp","r",stdin);
//  freopen("out.cpp","w",stdout);
	int T=1;
//	cin>>T;
//	clock_t start,finish;
//	start=clock();
	while(T--){
		Solve();
	}
//	finish=clock();
//	cerr<<((double)finish-start)/CLOCKS_PER_SEC<<endl;	return 0;
}

F-阿毛与王爷

简单来说就算要x异或一个最小的数使得二进制下1的位数为n。我们分类讨论要加多少个1或者减去多少个1,我们从小到大按位确定y的二进制位,最终如果大于x的话无解,否则直接把y输出来即可。

//#pragma GCC optimize("Ofast", "inline", "-ffast-math")
//#pragma GCC target("avx,sse2,sse3,sse4,mmx")
#include<bits/stdc++.h>
#define inf 0x3f3f3f3f
#define int long long
using namespace std;

//int read(){	int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') f=f*-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;}
//void write(int x){if(x>9) write(x/10);putchar(x%10+'0');

int n,x,a[105],b[105],p,cnt=0,res=0;

void Solve(){
	cin>>n>>x;
	int tmp=x;
	if(n>63){
		cout<<"Chuola!\n";
		return;
	}
	while(x){
		a[cnt++]=(x&1ll);
		if(x&1ll) ++p; //计算有多少个1 
		x>>=1;
	}
	if(p>n){ //当前1位比结果多,取最后p-n位个1异或掉即可 
		int idx=0; 
		for(int i=0;i<=63;++i){
			if(a[i]&1ll){
				b[i]=1;
				++idx;
			}
			if(idx==p-n) break;
		}
	}else if(p<n){  //当前1位比结果少,从后面补上n-p个1即可 
		int idx=0;
		for(int i=0;i<=63;++i){
			if(!(a[i]&1ll)){
				b[i]=1;
				++idx;	
			}
			if(idx==n-p) break;
		}
	}
	for(int i=0;i<=63;++i) if(b[i]) res|=(1ll<<i);
	if(res>tmp){
		cout<<"Chuola!\n"; //y比x还要大 
	}else{
		cout<<"Piaoliangdehenna!\n";
		cout<<res<<"\n";
	}
}

signed main(){
//	ios::sync_with_stdio(0);
//	cin.tie(0);cout.tie(0);
//  freopen("in.cpp","r",stdin);
//  freopen("out.cpp","w",stdout);
	int T=1;
//	cin>>T;
//	clock_t start,finish;
//	start=clock();
	while(T--){
		Solve();
	}
//	finish=clock();
//	cerr<<((double)finish-start)/CLOCKS_PER_SEC<<endl;	return 0;
}

G-Secure, Contain, Protect

待补。

H-雨声里的相遇

可以转成k进制后用一个栈来存字符串,如何判一下回文递增。

//#pragma GCC optimize("Ofast", "inline", "-ffast-math")
//#pragma GCC target("avx,sse2,sse3,sse4,mmx")
#include<bits/stdc++.h>
//#define inf 0x3f3f3f3f
//#define int long long
using namespace std;
const int N=2e5+7;
const int mod=1e9+7;

//int read(){	int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') f=f*-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;}
//void write(int x){if(x>9) write(x/10);putchar(x%10+'0');}

inline int md(char x){
	if(x>='0'&&x<='9') return x-'0';
	else return x-'A'+10;
}

inline char dm(int x){
	if(x<10) return (char)(x+'0');
	else return (char)(x-10+'A');	
}

int n,s;
char stk[N];

void Solve(){
	cin>>n>>s;
	int cnt=0; //十进制表示下的数 
	for(int i=2;i<=n;++i){
		int tmp=s,top=0,flag=1;
		while(tmp){
			stk[++top]=dm(tmp%i);
	//		cout<<stk[top]<<"~~\n";
			tmp/=i;
		}
	//	printf("%s",stk+1);
	//	cout<<" "<<s<<" "<<i<<"\n";
		for(int j=1;j<=top/2;++j){
			if(stk[j]!=stk[top-j+1]){
				flag=0;
				break;
			}
		}
		for(int j=1;j<(top+1)/2;++j){
			if(stk[j]>=stk[j+1]){
				flag=0;
				break;
			}
		}
		if(flag){
			cout<<i<<" ";
			for(int j=1;j<=top;++j) cout<<stk[j];
			cout<<"\n";
			++cnt;
		}
	}
	if(!cnt) cout<<"guomienasai\n";
}

signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
//  freopen("in.cpp","r",stdin);
//  freopen("out.cpp","w",stdout);
	int T=1;
//	cin>>T;
//	clock_t start,finish;
//	start=clock();
	while(T--){
		Solve();
	}
//	finish=clock();
//	cerr<<((double)finish-start)/CLOCKS_PER_SEC<<endl;	return 0;
}

I-花海

凸多边形可以剖分成n-2个三角形来计算面积,三角形的面积就是叉乘除2即可。

//#pragma GCC optimize("Ofast", "inline", "-ffast-math")
//#pragma GCC target("avx,sse2,sse3,sse4,mmx")
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+7;
const int mod=1e9+7;

//int read(){	int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') f=f*-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;}
//void write(int x){if(x>9) write(x/10);putchar(x%10+'0');}

struct P{
	double x,y;
	P(double x=0,double y=0){x=x,y=y;}
	inline void in(){scanf("%lf%lf",&x,&y);};
}p[N];

inline double Cro(P a,P b){return a.x*b.y-a.y*b.x;} //叉积 

void Solve(){
	int n;
	scanf("%d",&n);
	for(int i=1;i<=n;++i){
		scanf("%lf%lf",&p[i].x,&p[i].y);
	}
	P v1,v2;
	double ans=0;
	for(int i=3;i<=n;++i){
		v1.x=p[i-1].x-p[1].x;
		v1.y=p[i-1].y-p[1].y;
		v2.x=p[i].x-p[1].x;
		v2.y=p[i].y-p[1].y;
		//cout<<v1.x<<" "<<v1.y<<" "<<v2.x<<" "<<v2.y<<"!!\n"; 
		ans+=abs(Cro(v1,v2)/2);
		//cout<<ans<<"\n";
	}
	printf("%.3lf",ans);
}

signed main(){
//	ios::sync_with_stdio(0);
//	cin.tie(0);cout.tie(0);
//  freopen("in.cpp","r",stdin);
//  freopen("out.cpp","w",stdout);
	int T=1;
//	cin>>T;
//	clock_t start,finish;
//	start=clock();
	while(T--){
		Solve();
	}
//	finish=clock();
//	cerr<<((double)finish-start)/CLOCKS_PER_SEC<<endl;	return 0;
}

J-一个人挺好

//#pragma GCC optimize("Ofast", "inline", "-ffast-math")
//#pragma GCC target("avx,sse2,sse3,sse4,mmx")
#include<bits/stdc++.h>
//#define inf 0x3f3f3f3f
//#define int long long
using namespace std;
const int N=2e6+7;
const int mod=1e9+7;

//int read(){	int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') f=f*-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;}
//void write(int x){if(x>9) write(x/10);putchar(x%10+'0');}
char s[N];
void Solve(){
	int n,m;
	cin>>n>>m;
	if((m-n)%2==0){
		int i;
		for(i=0;i<n-1;i+=2){
			s[i]='1';
			s[i+1]='0';
			//s+="10";
		}
		for(i=i;i<m;++i){
			s[i]='1';
			//s+="1";
		}
		cout<<s;
	}else{ //要消除奇数个,显然不可能 
		cout<<"-1\n"; 
	}
}

signed main(){
//	ios::sync_with_stdio(0);
//	cin.tie(0);cout.tie(0);
//  freopen("in.cpp","r",stdin);
//  freopen("out.cpp","w",stdout);
	int T=1;
//	cin>>T;
//	clock_t start,finish;
//	start=clock();
	while(T--){
		Solve();
	}
//	finish=clock();
//	cerr<<((double)finish-start)/CLOCKS_PER_SEC<<endl;	return 0;
}

K-啵啵小狗自动机(easy version)

数据范围很小,我们算一下 i 2 − ( i − 1 ) 2 > n i^2-(i-1)^2>n i2(i1)2>n,只需要暴力枚举50个数就可以了。

//#pragma GCC optimize("Ofast", "inline", "-ffast-math")
//#pragma GCC target("avx,sse2,sse3,sse4,mmx")
#include<bits/stdc++.h>
#define inf 0x3f3f3f3f
#define int long long
using namespace std;
const int N=2e5+7;
const int mod=1e9+7;

//int read(){	int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') f=f*-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;}
//void write(int x){if(x>9) write(x/10);putchar(x%10+'0');}
bool Solve(){
	int n;
	cin>>n;
	for(int i=1;i<=55;++i){
		for(int j=1;j<i;++j){
			if(i*i-j*j==n) return 1;
		}
	}
	return 0;
}

signed main(){
//	ios::sync_with_stdio(0);
//	cin.tie(0);cout.tie(0);
//  freopen("in.cpp","r",stdin);
//  freopen("out.cpp","w",stdout);
	int T=1;
//	cin>>T;
//	clock_t start,finish;
//	start=clock();
	while(T--){
		if(Solve()) cout<<"YES\n";
		else cout<<"NO\n";
	}
//	finish=clock();
//	cerr<<((double)finish-start)/CLOCKS_PER_SEC<<endl;	return 0;
}

L-啵啵小狗自动机(hard version)

按上面不等式我们需要 O ( n 2 ) O(n^2) O(n2)枚举50000个数才能得出答案,显然是不可行的,但是我们把表打出来后观察规律,可以发现 n m o d    4 ! = 2 n \mod 4 !=2 nmod4!=2就是YES,否则NO。

//#pragma GCC optimize("Ofast", "inline", "-ffast-math")
//#pragma GCC target("avx,sse2,sse3,sse4,mmx")
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+7;

int read(){	int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') f=f*-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;}
void write(int x){if(x>9) write(x/10);putchar(x%10+'0');}

bool ans[N];

void Solve(){
	for(int i=1;i<=50001;++i){
		for(int j=0;j<i;++j){
			if((long long)i*i-(long long)j*j>100000ll) continue; 
			ans[i*i-j*j]=1;
		}
	}
	return;
}

signed main(){
//	ios::sync_with_stdio(0);
//	cin.tie(0);cout.tie(0);
//  freopen("in.cpp","r",stdin);
//    freopen("out.txt","w",stdout);
	int T=1,n;
	T=read();
//	clock_t start,finish;
//	start=clock();
//	Solve();
//	for(int i=1;i<=100;++i) cout<<i<<" "<<ans[i]<<"!!\n"; 
	
	while(T--){
		n=read(); 
        if(n%4!=2) puts("YES"); //cout<<"YES\n";
		else puts("NO"); //cout<<"NO\n";
	}
//	finish=clock();
//	cerr<<((double)finish-start)/CLOCKS_PER_SEC<<endl;	return 0;
}

M-南湖的瓜-续

范围在n之中,那么区间和%n==0肯定有解,转化成前缀和形式,如果某个前缀和%n在前面出现过,就说明这个区间满足。

//#pragma GCC optimize("Ofast", "inline", "-ffast-math")
//#pragma GCC target("avx,sse2,sse3,sse4,mmx")
#include<bits/stdc++.h>
#define inf 0x3f3f3f3f
#define int long long
using namespace std;
const int N=1e6+7;
const int mod=1e9+7;

//int read(){	int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') f=f*-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;}
//void write(int x){if(x>9) write(x/10);putchar(x%10+'0');}
int n,a[N],b[N],mp[N];

void Solve(){
	cin>>n;
	a[0]=b[0]=0;
	for(int i=1;i<=n;++i){
		cin>>a[i];
		a[i]+=a[i-1];
	}
	for(int i=1;i<=n;++i){
		b[i]=a[i]%n;
		if(mp[b[i]]){
			cout<<i-mp[b[i]]<<"\n";
			for(int j=mp[b[i]]+1;j<=i;++j){
				cout<<j<<" ";
			}
			return;
		}else mp[b[i]]=i;
	}
}

signed main(){
//	ios::sync_with_stdio(0);
//	cin.tie(0);cout.tie(0);
//  freopen("in.cpp","r",stdin);
//  freopen("out.cpp","w",stdout);
	int T=1;
//	cin>>T;
//	clock_t start,finish;
//	start=clock();
	while(T--){
		Solve();
	}
//	finish=clock();
//	cerr<<((double)finish-start)/CLOCKS_PER_SEC<<endl;	return 0;
}

N-小鲨鱼啦啦啦

签到。

	//#pragma GCC optimize("Ofast", "inline", "-ffast-math")
//#pragma GCC target("avx,sse2,sse3,sse4,mmx")
#include<bits/stdc++.h>
#define inf 0x3f3f3f3f
#define int long long
using namespace std;
const int N=2e5+7;
const int mod=1e9+7;

//int read(){	int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') f=f*-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;}
//void write(int x){if(x>9) write(x/10);putchar(x%10+'0');}
void Solve(){
	int n;
	cin>>n;
	if(n&1) cout<<"xiaoshayulalala......\n";
	else cout<<"Happy birthday,SCMZU!!!\n"; 
}

signed main(){
//	ios::sync_with_stdio(0);
//	cin.tie(0);cout.tie(0);
//  freopen("in.cpp","r",stdin);
//  freopen("out.cpp","w",stdout);
	int T=1;
//	cin>>T;
//	clock_t start,finish;
//	start=clock();
	while(T--){
		Solve();
	}
//	finish=clock();
//	cerr<<((double)finish-start)/CLOCKS_PER_SEC<<endl;	return 0;
}

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RWLinno

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值