2024年东北师范CCPC

A.Paper Watering

在这里插入图片描述
思路:题目说有平方和开方两种操作,如果这个数是平方数,那么它开方之后就只能开方,如果平方的话就重复了,反之就有开方和平方两种操作。
代码如下

//A
#include<iostream>
#include<algorithm>
#include<cmath>
#define int long long
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
using namespace std;
int n,sum=0,k;
signed main()
{
	cin>>n>>k;
	if(k==0||n==1)
	{
		cout<<1<<endl;
		return 0;
	}
	sum+=k;
	while(k--)
	{
		int t=sqrt(n);
		if(t==1)
		{
			sum++;
			break;
		}
		sum++;
		if(t*t!=n)
		{
			sum+=k;
		}
		n=t;
	}
	cout<<sum+1<<endl;
	return 0;
}

B.nIM gAME

在这里插入图片描述
思路:这个题是个博弈题,我们可以发现想让brz赢就要让他取石子,1,2,3
都是偶数,因为这个题要求异域和,但是两人都足够聪明所以brz不可能赢
代码如下

//D
#include<iostream>
#include<algorithm>
#include<cmath>
#define int long long
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
using namespace std;
int n,t;
signed main()
{
	cin>>t;
	while(t--)
	{
		cin>>n;
		cout<<"lose"<<endl;
	}
	return 0;
}

E.Checksum

在这里插入图片描述
思路:因为k的范围就20所以就可以暴力枚举k有几个1,然后把A中1的个数加入,再转成二进制,看d与b是否相等
代码如下

#include <bits/stdc++.h>
#define int long long 
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
using namespace std;
const int N = 1e5+5;
int a[N],b[N];
void solve ()
{
	string ans="99999999999999";//定义一个很大的string,用于判断
	int n,k;cin>>n>>k;
	string s;cin>>s;int cnt=0;
	for (int i=0;i<s.size();i++) 
	{
		if (s[i]=='1') cnt++;
	}
	for (int i=0;i<=k;i++)
	{
		string t;
		int now=cnt+i;
		int sss=0;
		while (now&&sss<k)//转化成二进制
		{
			t+=(now%2)+'0';
			sss++;
			now>>=1;
		}
		for (int i=t.size();i<k;i++)
		t+="0";//如果长度不够就补0
		reverse(t.begin(),t.end());//反转过来
		int pos=count(t.begin(),t.end(),'1');
		if (pos==i)
		{
			ans=min(ans,t);
		}
	}
	if (ans=="99999999999999") cout<<"None"<<'\n';
	else cout<<ans<<'\n';
}

signed main ()
{
	IOS;
	int T =1;
	cin>>T;
	while(T--) solve ();
	return 0;
}
  • 17
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值