当前位置:   article > 正文

百度松果菁英班入班考试题_百度松果菁英班入班测试

百度松果菁英班入班测试

1、

 

 

 

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int N=110;
  4. int a[N][N];
  5. int n,m;
  6. int x,y;
  7. int t;
  8. string s;
  9. int main()
  10. {
  11. cin>>n>>m;
  12. cin>>x>>y;
  13. cin>>t;
  14. while(t--)
  15. {
  16. int l,r;
  17. cin>>l>>r;
  18. a[l][r]=1;
  19. }
  20. cin>>s;
  21. for(int i=0;i<s.size();i++)
  22. {
  23. switch(s[i])
  24. {
  25. case 'U':
  26. while(1)
  27. {
  28. if(a[x-1][y]==1||x==1) break;//只要不超过边界或者碰到障碍物,就一直走
  29. x--;
  30. }
  31. break;
  32. case 'D':
  33. while(1)
  34. {
  35. if(a[x+1][y]==1||x==n) break;
  36. x++;
  37. }
  38. break;
  39. case 'L':
  40. while(1)
  41. {
  42. if(a[x][y-1]==1||y==1) break;
  43. y--;
  44. }
  45. break;
  46. case 'R':
  47. while(1)
  48. {
  49. if(a[x][y+1]==1||y==m) break;
  50. y++;
  51. }
  52. break;
  53. }
  54. }
  55. cout<<x<<" "<<y<<endl;
  56. return 0;
  57. }

2.MC0102房间打扫(难度:白银)
题目描述 

小码哥准备去打扫一件房间。这个房间可以简单地看成由n行n列,一共n*n个格子组成,每个格子的初始状态要么是干净的,要么是脏的。小码哥打扫房间的方式非常奇怪:如果他打扫了一个脏格子,这个格子就会变得很干净;反之亦然,如果打扫了一个干净的格子,就会变得很脏。

他想从n列的格子中选择几列进行打扫,希望打扫后完全干净的格子的行数尽可能多。注意:如果他选择了一列进行打扫,则它需要打扫这一列所有的格子;一行是干净,是指这一行所有的格子都是干净的。

小码哥并不是很擅长数学,于是希望你计算一下,如果他使用合理的打扫策略,完全打扫干净的行数最多可以有多少。

输入格式

第一行一个整数n(1<=n<=200),表示房间的大小。

接下来n行n列的01串,1表示干净的,0表示脏的。

输出格式

输出一个整数,表示最大可能的完全干净的行数。 

样例输入

5

10001

10001

10010

00101

10001 

样例输出


 

  1. #include<bits/stdc++.h>
  2. #include<map>
  3. using namespace std;
  4. const int N=1000;
  5. char a[N][N];
  6. map<string,int> mp;
  7. int main()
  8. {
  9. int n;
  10. cin>>n;
  11. for(int i=1;i<=n;i++)
  12. {
  13. string b="";
  14. for(int j=1;j<=n;j++)
  15. {
  16. cin>>a[i][j];
  17. b+=a[i][j];
  18. }
  19. mp[b]++;
  20. }
  21. int ans=0;
  22. for(map<string,int>::iterator it=mp.begin();it!=mp.end();it++)
  23. {
  24. if(ans<it->second)
  25. ans=it->second;
  26. }
  27. cout<<ans;
  28. return 0;
  29. }

3、数字统计

 

  1. #include<stdio.h>
  2. int isShenqi(int n){
  3. int a=n;
  4. int b;
  5. int sum=0;
  6. while(n>0)
  7. {
  8. b=n%10;
  9. n=n/10;
  10. sum=sum*10+b;
  11. }
  12. if(a%sum==0){
  13. return 1;
  14. }
  15. return 0;
  16. }
  17. int main()
  18. {
  19. int n,num=0;
  20. scanf("%d",&n);
  21. for(int i=n;i>0;i--){
  22. if(isShenqi(i)==1){
  23. num++;
  24. }
  25. }
  26. printf("%d",num);
  27. return 0;
  28. }

4、项链

 

 

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int N=1e6+10;
  4. int a[N],b[N],vis[N];
  5. int ans,n;
  6. int main()
  7. {
  8. cin>>n;
  9. for(int i=1;i<=n;i++)
  10. cin>>a[i];
  11. sort(a+1,a+n+1);
  12. int l=1,r=n;
  13. int x=0;
  14. while(l<=r)
  15. {
  16. b[++x]=a[r];
  17. b[++x]=a[l];
  18. l++;
  19. r--;
  20. }
  21. for(int i=1;i<n;i++)
  22. {
  23. int p=b[i]-b[i+1];
  24. if(p<0) p=-p;
  25. ans+=p;
  26. }
  27. ans+=abs(b[n]-b[1]);
  28. cout<<ans;
  29. return 0;
  30. }

5、

 

  1. #include <stdio.h>
  2. int f(int a, int b, int C, int D) {
  3. if (a == 1) {
  4. return (C * b + D)%10;
  5. }
  6. if (a >= 2) {
  7. return f(a-1, f(a-1, b, C, D), C, D);
  8. }
  9. return 0;
  10. }
  11. int main() {
  12. int a, b, C, D;
  13. scanf("%d %d %d %d", &a, &b, &C, &D);
  14. int result = f(a, b, C, D);
  15. printf("%d",result);
  16. return 0;
  17. }

6、

 

 

  1. #include<iostream>
  2. using namespace std;
  3. const int N=1000;
  4. char a[N][N];
  5. int main()
  6. {
  7. int n;
  8. cin>>n;
  9. int t=n*n;
  10. //先进行初始化
  11. for(int i=1;i<=n;i++)
  12. for(int j=1;j<=n;j++)
  13. a[i][j]='0';
  14. while(t--)
  15. {
  16. for(int i=n;i>=1;i--)
  17. {
  18. for(int j=n;j>=1;j--)
  19. {
  20. if(j==1)
  21. {
  22. if(a[i][j]=='0'&&a[i-1][n]=='1')
  23. {
  24. a[i][j]='1';
  25. a[i-1][n]='0';
  26. }
  27. }
  28. else
  29. {
  30. if(a[i][j]=='0'&&a[i][j-1]=='1')
  31. {
  32. a[i][j]='1';
  33. a[i][j-1]='0';
  34. }
  35. }
  36. }
  37. }
  38. char x;
  39. cin>>x;
  40. if(x=='1') a[1][1]='1';
  41. int ans=0;
  42. for(int i=1;i<=n;i++)
  43. {
  44. int sum=0;
  45. for(int j=1;j<=n;j++)
  46. {
  47. if(a[i][j]=='1') sum++;
  48. }
  49. if(sum!=0) ans++;
  50. }
  51. cout<<ans<<" ";
  52. }
  53. return 0;
  54. }

7、

 

  1. #include<iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. int a,b,v1,c,d,v2;
  6. cin>>a>>b>>v1>>c>>d>>v2;
  7. int x1=a,y1=b-v1,x2=a+v1,y2=b;
  8. int x3=c,y3=d-v2,x4=c+v2,y4=d;
  9. int m1,n1;
  10. int m2,n2;
  11. m1=max(min(x1,x2),min(x3,x4));
  12. n1=max(min(y1,y2),min(y3,y4));
  13. m2=min(max(x1,x2),max(x3,x4));
  14. n2=min(max(y1,y2),max(y3,y4));
  15. if(m2>m1&&n2>n1)
  16. cout<<v1*v1+v2*v2-(m2-m1)*(n2-n1);//相交
  17. else
  18. cout<<v1*v1+v2*v2;//相离
  19. return 0;
  20. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/392604
推荐阅读
相关标签
  

闽ICP备14008679号