10.14 西山居笔试

1.面试者约多个区间,问需要多少面试官:发现答案上界就是最大重叠数,差分
2.棋盘马从(0,0)跳到目标点要几步:bfs
3.要打败n个人,每个人有强度s[i]。每天可以选择休息获取y强度,当y≥s[i]时可以击败一个人,然后清空当前强度并且y加1:二进制枚举,dp(另:直接暴力每次选最小的点,都能过90%)

有不懂的可以在评论区讨论,私信也行
全部评论
🐮,第三题代码能贴出来吗
点赞 回复 分享
发布于 2023-10-14 21:41 江苏
同求第三题代码。贪心只能过10%😭
点赞 回复 分享
发布于 2023-10-14 22:09 天津
大佬,请问你平时怎么刷题的,太强了吧😭
点赞 回复 分享
发布于 2023-10-14 23:39 江苏
第二题bfs不用贪心不会超时吗,我还想着用优先队列求,这题我一看跟a*有点像就怕了。第三题我先预处理一个进攻顺序和敌人的矩阵,然后写了一个数位dp那样带二进制mask的dfs
点赞 回复 分享
发布于 2023-10-16 11:49 广东
第二题BFS会超时的希望看一下第三题的code 我是贪心混分过了90的
点赞 回复 分享
发布于 2023-10-16 15:23 上海
这是海笔吗,为什么做完了现在还没回应
点赞 回复 分享
发布于 2023-10-19 09:26 浙江
佬!想看看第三题的代码
点赞 回复 分享
发布于 2023-10-26 10:11 湖北

相关推荐

不愿透露姓名的神秘牛友
03-15 11:40
已编辑
xxx xxx 0 硕士985
点赞 评论 收藏
分享
许愿顺顺利利
牛客740257869号:两个百分之18 hh
点赞 评论 收藏
分享
第一题import java.util.*;public class test {    public static void main(String[] args) {        Scanner in=new Scanner(System.in);        int n=in.nextInt();        int k=in.nextInt();        int[] a=new int[100005];        int ai;        int st=100005,ed=0;        for(int i=0;i<n;i++){             ai=in.nextInt();             a[ai]=1;             if(i==0) st=ai;             if(i==n-1) ed=ai;        }        int moreDay=k-n,ans=0,kDay=0;        TreeMap<Integer,Integer> kDayMap=new TreeMap<>();        for(int i=st-1;i<=ed+1;i++){            if(a[i]==0&&a[i+1]==1) {                ans++;                if(i<=st) continue;                kDay++;                if(kDayMap.containsKey(kDay)){                    kDayMap.put(kDay,kDayMap.get(kDay)+1);                }else kDayMap.put(kDay,1);//                System.out.println("day:"+i+"kDay:"+kDay);                kDay=0;            }            else if(a[i]==1&&a[i+1]==0) {                ans++;            }            else if(a[i]==0) kDay++;        }        Set<Integer> kDaySet=kDayMap.keySet();//        System.out.println(kDaySet+"/"+ans+"/"+moreDay);        for(int key:kDaySet){//            System.out.println(key);//            System.out.println(kDayMap.get(key));            int value=kDayMap.get(key);            if(key*value<=moreDay){                moreDay-=key*value;                ans-=value*2;            }else {                ans-=(moreDay/key)*2;                moreDay=0;            }            if(moreDay==0) break;//            System.out.println("key:"+key+" value:"+value+" moreday:"+moreDay+" ans:"+ans);        }        System.out.println(ans);//        System.out.println(moreDay);//        System.out.println(kDayMap);        in.close();    }}第二题来不及做打表#牛客创作赏金赛#
查看2道真题和解析 投递小米集团等公司8个岗位 牛客创作赏金赛
点赞 评论 收藏
分享
评论
3
6
分享

创作者周榜

更多
牛客网
牛客企业服务