B 入门mex
按题意即可
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int a[N];
int ans=0;
int main()
{
int n,k;
cin>>n>>k;
for(int i=0;i<n;i++)
cin>>a[i];
sort(a,a+n);
for(int i=0;i<n;i++)
if(a[i]==ans && ans<k)ans++;
cout<<ans;
}
x&y=a则a&x和a&y也为a,所以只用判断(s-a)&a是否等于a即可
#include<bits/stdc++.h>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
long long a,s;
cin>>a>>s;
if(s-2*a>=0){
if(((s-2*a)&a)==0)
cout<<"Yes\n";
else
cout<<"No\n";
}
else
cout<<"No\n";
}
return 0;
}
E完全平方数
注意sqrt以及转数据类型
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,sum=0,con=0;
float m;
int s;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>s;
m=sqrt(s);
if(m-(int)m==0)
sum++;
}
cout<<sum;
return 0;
}
J 找最大值
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,sum=0,con=0;
int max1=-99999;
int s;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>s;
if(s%2!=0)
{
if(s>max1)
max1=s;
}
}
cout<<max1;
return 0;
}
K 替换大师
替换符号
依次判定输入的符号
#include<bits/stdc++.h>
using namespace std;int n,sum=0,con=0;
int max1=-99999;
int i;
char s;
void ac()
{
i++;
cin>>s;
if(s==')')
{
return ;
}
if(s==',')
{
s='.';
}
cout<<s;
ac();
}
int main()
{
cin>>n;
for( i=0;i<n;i++)
{
cin>>s;
if(s=='(')
{
cout<<'(';ac();
}
cout<<s;
}
// cout<<max1;
return 0;
}
L 泰拉瑞亚
a,b两种属性可以分开考虑,回旋镖可以不用完
如果b>a的最小的则直接用
最后再算用几次a中最大的即可
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e5+5;
int a[N],b[N];
signed main()
{
int sum=0;
int n,h;
cin>>n>>h;
for(int i=0;i<n;i++)
{
int y;
cin>>a[i]>>b[i];
}
sort(a,a+n,greater());
sort(b,b+n);
for(int i=0;i<n;i++)
{
if(b[i]>a[0]&&h>0)
h-=b[i],sum++;
}
if(h<0)
{
cout<<sum;
return 0;
}
sum+=h/a[0];
if(h%a[0]) sum++;
cout<<sum;
return 0;
}