牛客算法周周练6 题解
A:打表找规律可得(k+1)*(1<<h),套用公式即可。
MY CODE:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int h,k;
cin>>h>>k;
int ans=k+1;
for(int i=1;i<=h;i++)
ans*=2;
cout<<ans;
return 0;
}B:显而易见,其实就是要输出gcd(a,b),和N一点关系也没有。
MY CODE:
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long a,b,n;
cin>>a>>b>>n;
cout<<__gcd(a,b);
return 0;
}C:最开始以为是博弈论,但后来发现没有那么高深,我们可以先筛一下因子,之后不停的除上这个因子,只到除不尽为止,之后加上计数器最后判断一下是偶即可。
MY CODE:
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int num=0;
for(int i=2;i<=n;i++)
{
while(n%i==0)
{
n/=i;
num++;
}
}
if(num%2==0)
cout<<"Johnson";
else
cout<<"Nancy";
}D:最小生成树模板题还带出模板的?
代码真的懒得给了。
E:只要加入此段代码即可,没啥可说的,啊
int sum=0;
for(int i=1;i<=maxL;i++)
if(cnt[i])
sum++;
return sum;好水啊
查看7道真题和解析
