牛客小白月赛39
1.A—憧憬
题解:数学题目,详细见代码。
AC代码如下:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
int a[n][4];
for(int i=0;i<n;i++)
{
cin>>a[i][0]>>a[i][1]>>a[i][2]>>a[i][3];
}
int x1,x2,y1,y2;
cin>>x1>>y1>>x2>>y2;
int x11=x2-x1,y11=y2-y1;
for(int i=0;i<n-1;i++)
{
for(int j=i+1;j<n;j++)
{
int x=a[j][0]-a[i][2],y=a[j][1]-a[i][3];
int x22=a[j][2]-x-a[i][0];
int y22=a[j][3]-y-a[i][1];
if(y22*x11==y11*x22)
{
cout<<"YES"<<endl;
return 0;
}
}
}
cout<<"NO"<<endl;
return 0;
}
2.B—欢欣
题意:给一个字符串要求查找第一个QAQ这个字符串的位置,直接一个find查找。
AC代码如下:
#include <bits/stdc++.h>
using namespace std;
int main()
{
string s;
cin>>s;
cout<<s.find("QAQ")+1<<endl;
}
3.E—迷惘
AC代码如下:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
long long sum=0;
cin>>n;
while(n--)
{
int a;
cin>>a;
int cnt=0,k[40];
while(a)
{
k[cnt]=a%2;
a>>=1;
cnt++;
}
int i;
for(i=0;i<cnt;i++)
{
if(k[i]!=0)
break;
}
long long y=0;
for(int j=i;j<cnt;j++)
{
y=y*2+k[j];
}
sum+=y;
}
cout<<sum<<endl;
}