深信服笔试题解

第一题 题意难理解。。。。反过来接雨水就完事了

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int maxn=1e5+100;
int T,n,m;
int A[maxn];
int R[maxn];


int main()
{
    int w,l;
    while(cin>>w>>l)
    {
        for(int i=1;i<=l;i++)
        {
            cin>>A[i];
            A[i]=100-A[i];
        }
        R[l+1]=0;
        for(int i=l;i>=1;i--)
            R[i]=max(R[i+1],A[i]);
        int res=0;
        for(int i=1;i<=l;i++)
        {
            res+=w*(R[i]-A[i]);
        }
        cout<<res<<endl;
    }
}

第二题 暴搜就完事了

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int maxn=1e5+100;
int T,n,m;
int  A[maxn];
int sx,sy;
int ex,ey;
int vis[11][11];
int dr[][2]={-1,0,1,0,0,-1,0,1};
int res;
void dfs(int x,int y,int cnt)
{
    if(x==ex&&y==ey)
    {
        if(cnt==n*m-1)
            res++;
        return ;
    }
    for(int i=0;i<4;i++)
    {
        int xx=x+dr[i][0];
        int yy=y+dr[i][1];
        if(!(xx>=0&&xx<n&&yy>=0&&yy<m)) continue;
        if(vis[xx][yy]) continue;
        vis[xx][yy]=1;
        dfs(xx,yy,cnt+1);
        vis[xx][yy]=0;
    }
}

int main()
{
    while(cin>>n>>m)
    {
        cin>>sx>>sy;
        cin>>ex>>ey;
        res=0;
        memset(vis,0,sizeof(vis));
        vis[sx][sy]=1;
        dfs(sx,sy,0);
        cout<<res<<endl;
    }
}
#深信服##笔试题目#
全部评论
求问测量高度是木块的高度,还是水的深度,按你的代码理解是水的深度呢,,,,我是按木块高度写的,
点赞 回复
分享
发布于 2020-09-10 18:16
简单来说是测量的是水的深度,100减去测量高度才是石块的高度 另外可以理解左边的是靠闸门,封闭的,右边靠出水口
点赞 回复
分享
发布于 2020-09-10 18:39
淘天集团
校招火热招聘中
官网直投
看来前后端题目不一样
点赞 回复
分享
发布于 2020-09-10 19:27
楼主你第一题通过了么?按我理解好像不对。。。。
点赞 回复
分享
发布于 2020-09-10 19:51
第1题18%,凉凉
点赞 回复
分享
发布于 2020-09-10 22:13

相关推荐

10 4 评论
分享
牛客网
牛客企业服务