腾讯后台开发笔试9.20

第一题 ac90%  不知道为啥不是100%
t=int(input())
for i in range(t):
    n=int(input())
    s=input()
    for j in range(len(s)):
        if s[j]=='8': break
    if n-j>=11: print("YES")
    else: print("NO")
第二题 AC
n=int(input())
board=[]
for i in range(n):
    board.append(list(map(int,input().split())))
board.sort(key=lambda x:x[1])
i=0
j=n-1
res=0
while i<j:
    p=board[i][0]
    q=board[j][0]
    res=max(res,board[i][1]+board[j][1])
    if p-q==0:
        i+=1
        j-=1
    elif p<q:
        board[j][0]-=p 
        i+=1
    else:
        board[i][0]-=q 
        j-=1
print(res)
第三题 AC80%  0-1背包问题
#include<bits/stdc++.h>
using namespace std;
void help(int *num,int n){
    int sum=0;
    bool flag=true;
    int l=n/2;
    if(n%2==1){
        l++;
        flag=false;
    }
    for(int i=0;i<n;i++) sum+=num[i];
    int target=sum/2;
    vector<vector<bool>> dp;
    for(int i=0;i<=n;i++){
        vector<bool> tmp;
        for(int j=0;j<=target;j++){
            tmp.push_back(false);
        }
        dp.push_back(tmp);
    }
    for(int i=0;i<=n;i++) dp[i][0]=true;
    for(int i=1;i<=target;i++) dp[0][i]=false;
    for(int i=0;i<=n;i++){
        for(int j=min(l,i);j>0;j--){
            for(int s=1;s<=target;s++){
                if(s>=num[i-1] && dp[j-1][s-num[i-1]]) dp[j][s]=true;
            }
        }
    }
    if(flag){
        for(int s=target;s>0;s--){
        if(dp[l][s]){
            int a=s,b=sum-s;
            if (a<b) cout<<a<<" "<<b<<endl;
            else cout<<b<<" "<<a<<endl;
            break;
        }
    }
    }
    else{
        int res;
        for(int s=target;s>0;s--){
            if(dp[l][s]){
                res=sum-2*s;
                break;
            }
        }
        for(int s=target;s>0;s--){
            if(dp[l-1][s]){
                res=min(res,sum-2*s);
                break;
            }
        }
        int a=(sum-res)/2,b=(sum+res)/2;
        cout<<a<<" "<<b<<endl;
    }
    
    return;
}
int main(){
    int T,n;
    int num[105];
    scanf("%d",&T);
    for(int i=0;i<T;i++){
        scanf("%d",&n);
        for (int j=0;j<n;j++) scanf("%d",&num[j]);
        help(num,n);
    }
}
第四题AC
#include<bits/stdc++.h>
using namespace std;
void help(int *num,int n,int k){
    int pre=0;
    sort(num,num+n);
    int i=0,cnt=0;
    while(i<n && cnt<k){
        if(num[i]>pre){
            cout<<num[i]-pre<<endl;
            pre=num[i];
            i++;
            cnt++;
        }
        else{
            i+=1;
        }
    }
    for(int i=cnt;i<k;i++) cout<<0<<endl;
    
}
int main(){
    int n,k;
    scanf("%d %d",&n,&k);
    int num[100005];
    for(int i=0;i<n;i++) scanf("%d",&num[i]);
    help(num,n,k);
}
第五题 考异或数学知识 来不及推导了



#笔试题目##腾讯#
全部评论
01背包居然能a这么多!亏了!我想着它要求人数差小于1用背包a不了呢!😤
点赞 回复
分享
发布于 2019-09-20 22:16
第一题判断n是否为0,ac。
点赞 回复
分享
发布于 2019-09-20 22:04
淘天集团
校招火热招聘中
官网直投
c++第四题我就用个sort就永远case 0 哭了,难到头文件还能错?问题是给的用例跑成功了啊
点赞 回复
分享
发布于 2019-09-20 22:05
第三题限定了人数相差1就不会了。。。如果没有这个限制就和分两部分差值最小一样了,,,
点赞 回复
分享
发布于 2019-09-20 22:10
tql...
点赞 回复
分享
发布于 2019-09-20 22:17
大佬python、C++换着写,溜啊😂
点赞 回复
分享
发布于 2019-09-21 09:55
第一题只有60~,求大佬看看这是什么疾病~  public static void main(String[] args) {         Scanner in = new Scanner(System.in);         int size = in.nextInt();                  for(int i = 0;i < size;i++){             int num = in.nextInt();             String phone = in.next();             if(num < 11){                 System.out.println("NO");                 continue;             }else{                 for(int j = 0;j < (num-10);j++){                     char here = phone.charAt(j);                     System.out.println(here);                     if(here == '-'){                         j++;                         here = phone.charAt(j);                     }                     if(here == '8'){                         System.out.println("YES");                         continue;                     }                                          if(j == (num-11)){                         System.out.println("NO");                         break;                     }                 }             }                      }     }
点赞 回复
分享
发布于 2019-09-21 10:59

相关推荐

点赞 8 评论
分享
牛客网
牛客企业服务