zoukankan      html  css  js  c++  java
  • 【网易】牛客网2019校招真题(编程题)

    【网易】被3整除

    【题解】打表找规律,n为3的倍数和3的倍数余2的都是可以的,3的倍数余1的数是不可以的。

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int main()
     4 {
     5     int l,r,sum1,sum2;
     6     scanf("%d%d",&l,&r);
     7     l--;
     8     if(l%3==0)sum1=l/3*2;
     9     else if(l%3==2)sum1=((l+1)/3*2)-1;
    10     else sum1=(l-1)/3*2;
    11     if(r%3==0)sum2=r/3*2;
    12     else if(r%3==2)sum2=((r+1)/3*2)-1;
    13     else sum2=(r-1)/3*2;
    14     printf("%d
    ",sum2-sum1);
    15 }
    View Code

    【网易】迷路的牛牛

    【题解】简单模拟题。分类讨论即可。

    【代码】

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int main()
     4 {
     5     int n;
     6     char s[1005];
     7     scanf("%d",&n);
     8     scanf("%s",s);
     9     char now='N';
    10     for(int i=0;i<n;i++)
    11     {
    12         if(now=='N')
    13         {
    14             if(s[i]=='L')now='W';
    15             else now='E';
    16         }
    17         else if(now=='W')
    18         {
    19             if(s[i]=='L')now='S';
    20             else now='N';
    21         }
    22         else if(now=='S')
    23         {
    24             if(s[i]=='L')now='E';
    25             else now='W';
    26         }
    27         else
    28         {
    29             if(s[i]=='L')now='N';
    30             else now='S';
    31         }
    32     }
    33     printf("%c
    ",now);
    34 }
    View Code

    【网易】俄罗斯方块

    【题解】记录一下每一列的方块的个数,最后取个最小值。

    【代码】

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int main()
     4 {
     5     int n,m,a[1005];
     6     scanf("%d%d",&n,&m);
     7     int x;
     8     memset(a,0,sizeof(a));
     9     for(int i=1;i<=m;i++)
    10     {
    11         scanf("%d",&x);
    12         a[x]++;
    13     }
    14     int ans=0x3f3f3f3f;
    15     for(int i=1;i<=n;i++)
    16     {
    17         //printf("%d
    ",a[i]);
    18         ans=min(ans,a[i]);
    19     }
    20     printf("%d
    ",ans);
    21 }
    View Code

    【网易】安置路灯

    【题解】贪心。每放置一个路灯,连续3个位置都能照亮,所以遇到一个“.”放一个路灯,后面两个位置即可跳过。

    【代码】

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 char s[1005];
     4 int main()
     5 {
     6     int T;
     7     scanf("%d",&T);
     8     while(T--)
     9     {
    10         int n,i=0,ans=0;
    11         scanf("%d",&n);
    12         scanf("%s",s);
    13         while(i<strlen(s))
    14         {
    15             if(s[i]=='.')
    16             {
    17                 ans++;
    18                 i+=3;
    19             }
    20             else i++;
    21         }
    22         printf("%d
    ",ans);
    23     }
    24 }
    View Code

    【网易】丰收

    【题解】将每一堆苹果做一个前缀和,可以得出从左往右数前i堆苹果的总数sum[i],对于每一次询问,只需查找第一个大于等于q的sum,考虑时间需要用二分查找(自己手写或者lower_bound都可)。

    【代码】

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 const int maxn=1e5+5;
     4 int a[maxn],sum[maxn];
     5 int main()
     6 {
     7     int n;
     8     scanf("%d",&n);
     9     for(int i=1;i<=n;i++)
    10     {
    11         scanf("%d",&a[i]);
    12         sum[i]=sum[i-1]+a[i];
    13     }
    14     int T;
    15     scanf("%d",&T);
    16     while(T--)
    17     {
    18         int q;
    19         scanf("%d",&q);
    20         int p=lower_bound(sum+1,sum+1+n,q)-sum;
    21         printf("%d
    ",p);
    22     }
    23 }
    View Code

    【网易】表达式求值

    【题解】水题。总共6种情况,比较一下即可。

    【代码】

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int main()
     4 {
     5     int a,b,c;
     6     scanf("%d%d%d",&a,&b,&c);
     7     int d=(a+b)*c;
     8     int e=a+b*c;
     9     int f=a*b+c;
    10     int g=a*(b+c);
    11     int h=a+b+c;
    12     int j=a*b*c;
    13     printf("%d
    ",max(h,max(j,max(d,max(e,max(f,g))))));
    14 }
    View Code

    【网易】牛牛的闹钟

    【题解】水题。化成分钟比较好算,所需决定起床时间=到教室时间-起床时间,然后把闹钟的时间从大到小排个序,这样只要找到第一个小于等于所需决定起床时间即可。

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int a[105];
     4 bool cmp(int a,int b)
     5 {
     6     return a>b;
     7 }
     8 int main()
     9 {
    10     int n,h,m,x;
    11     scanf("%d",&n);
    12     for(int i=0;i<n;i++)
    13     {
    14         scanf("%d%d",&h,&m);
    15         a[i]=h*60+m;
    16     }
    17     sort(a,a+n,cmp);
    18     scanf("%d",&x);
    19     scanf("%d%d",&h,&m);
    20     int res=h*60+m-x;
    21     for(int i=0;i<n;i++)
    22     {
    23         if(a[i]<=res)
    24         {
    25             printf("%d %d
    ",a[i]/60,a[i]%60);
    26             return 0;
    27         }
    28     }
    29 }
    View Code
  • 相关阅读:
    OCM_第十四天课程:Section6 —》数据库性能调优_各类索引 /调优工具使用/SQL 优化建议
    OCM_第十三天课程:Section6 —》数据库性能调优 _结果缓存 /多列数据信息采集统计/采集数据信息保持游标有效
    OCM_第十二天课程:Section6 —》数据库性能调优_ 资源管理器/执行计划
    使用NuGet时的一个乌龙
    .net调用存储过程碰到的一个问题
    数据库的备份与还原
    创建link server链接服务器碰到的问题及解决办法
    如何管理好项目的DLL
    项目中Enum枚举的使用
    .NET开发知识体系
  • 原文地址:https://www.cnblogs.com/z1014601153/p/11157513.html
Copyright © 2011-2022 走看看