0808网易笔试4杀

第一题
水题不解释
第二题
暴力不解释
第三题
#include<bits/stdc++.h>
using namespace std;
const int N=15;
int n,a[N],val[1<<N];

int main() {
    int T;
    for(scanf("%d",&T); T--;) {
        scanf("%d",&n);
        for(int i=0; i<n; ++i)scanf("%d",&a[i]);
        for(int S=0; S<(1<<n); ++S) {
            val[S]=0;
            for(int i=0; i<n; ++i)if(S>>i&1)val[S]+=a[i];
        }
        int ans=0;
        for(int S=1<<n; S; S--)
            for(int S2=S; S2; S2=(S2-1)&S)
                if(val[S2]==val[S^S2])ans=max(ans,val[S2]);
        printf("%d\n",val[(1<<n)-1]-ans*2);
    }
    return 0;
}


第四题
#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
#include<cmath>
#include<queue>
#include<algorithm>
#include<map>

using namespace std;
typedef long long ll;
const int INF=0x3f3f3f3f;
const int N=1000+10;
int f[N],n,m;
struct Edge
{
    int u,v,c;
    bool operator<(const Edge& b)
    {
        return c<b.c;
    }
} e[3000+300];

int Find(int x)
{
    return f[x]==x?x:f[x]=Find(f[x]);
}

int Kruscal()
{
    int mini=INF;
    for(int k=0; k<m; ++k)
    {
        int cnt=0,lowb=INF,upb=~INF;
        for(int i=1; i<=n; ++i)
            f[i]=i;
        for(int i=k; i<m; ++i)
        {
            int u=e[i].u,v=e[i].v,c=e[i].c;
            if(Find(u)!=Find(v))
            {
                f[Find(u)]=Find(v);
                cnt++;
                lowb=min(lowb,c);
                upb=max(upb,c);
                if(cnt==n-1)
                {
                    mini=min(mini,upb-lowb);
                    break;
                }
            }
        }
    }
    return mini==INF?-1:mini;
}

int main()
{
    scanf("%d%d",&n,&m);
    for(int i=0; i<m; ++i)
        scanf("%d%d%d",&e[i].u,&e[i].v,&e[i].c);
    sort(e,e+m);
    printf("%d\n",Kruscal());
    return 0;
}

#笔经##校招##网易#
全部评论
java 4A 素数,排列,平分价值,需求树
1 回复 分享
发布于 2020-08-08 16:39
大佬都是啥题啊
点赞 回复 分享
发布于 2020-08-08 16:30
第二题的输出格式是什么? 我一直调不出来
点赞 回复 分享
发布于 2020-08-08 16:30
楼主你好,请问你是实习、校招还是社招?
点赞 回复 分享
发布于 2020-08-08 16:31
大佬,是java岗的嘛
点赞 回复 分享
发布于 2020-08-08 16:34
第三题暴力穷举不超时嘛
点赞 回复 分享
发布于 2020-08-08 16:36
麻瓜了,卡在第三题1个小时,结果就过了40%
点赞 回复 分享
发布于 2020-08-08 16:40
第四题用prim算法应该就可以做出来
点赞 回复 分享
发布于 2020-08-08 16:42
第二题暴力超时了。
点赞 回复 分享
发布于 2020-08-08 16:44
看来大家的题不一样呀
点赞 回复 分享
发布于 2020-08-08 16:45
语言来不是一套卷,我就说输出都不一样。
点赞 回复 分享
发布于 2020-08-08 16:46
点赞 回复 分享
发布于 2020-08-08 16:47
点赞 回复 分享
发布于 2020-08-08 17:34
kruscal 不是求最小生成树的吗?为什么最后能求出 最大权值 - 最小权值 的最小值呢?
点赞 回复 分享
发布于 2020-08-08 19:02

相关推荐

10-30 22:18
已编辑
毛坦厂中学 C++
点赞 评论 收藏
分享
评论
3
10
分享
牛客网
牛客企业服务