蚂蚁9.15笔试

没有竞赛难度的题,整体难度适中吧
1:反向求解即可
2.入门树形dp遍历遍即可
3.状压前缀和。稍后上代码


1.简单统计即可

public class first {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt(),k = 0;
        StringBuilder s = new StringBuilder();
        while (n>0){
            if((n&1)==1)
                s.append((char)(k+'a'));
            n = n>>1;
            k++;
        }
        System.out.println(s);
    }
}
2.简单统计,不过要输出-1这种可能,题目貌似没说
public class second {
    static Map<Integer, List<Integer>> m = new HashMap<>();
    static long res = 0;
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        for (int i = 0; i < n-1; i++) {
            int x = sc.nextInt(),y = sc.nextInt();
            buildTree(x, y);
            buildTree(y, x);
        }
        dfs(1, new boolean[n+1], 1);
        System.out.println(res);
    }

    private static void dfs(int root, boolean[] flag,int parent) {
        flag[root] = true;
        List<Integer> list = m.get(root);
        res += root-parent;
        for (Integer integer : list) {
            if(flag[integer])continue;
            dfs(integer,flag,root);
        }
    }

    private static void buildTree(int x, int y) {
        List<Integer> list = m.get(x);
        if(list==null)list = new ArrayList<>();
        list.add(y);
        m.put(x,list);
    }
}
3.前缀和状压即可
public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s = br.readLine();
        int n = s.length();
        long res = 0;int p = 0;
        int[] ces = new int[1<<26];ces[0] = 1;
        for (int i = 0; i < n; i++) {
            int i1 = s.charAt(i) - 'a';
            p^=1<<i1;
            for (int j = 0; j < 26; j++) {
                res+=ces[p^(1<<j)];
            }
            ces[p]++;
        }
        System.out.println(res);
    }




#蚂蚁笔试##蚂蚁2023秋招笔试凉了啊#
全部评论
有没有已经收到蚂蚁面试通知的同学,我笔试途中就收到hr电话约面了。。。
2 回复 分享
发布于 2022-09-15 23:00 广东
%%%
1 回复 分享
发布于 2022-09-15 21:22 辽宁
楼主,第二题,计算 每个节点应有的编号减去其父节点的编号 之和,为啥才过90,是哪里错了?
1 回复 分享
发布于 2022-09-15 20:45 四川
m
点赞 回复 分享
发布于 2022-09-15 21:31 广东
请问大家还有题目链接吗?想测试一下代码
点赞 回复 分享
发布于 2022-09-15 21:28 辽宁
m
点赞 回复 分享
发布于 2022-09-15 21:28 湖北
m,等大佬上代码
点赞 回复 分享
发布于 2022-09-15 21:23 江苏
m
点赞 回复 分享
发布于 2022-09-15 21:20 江苏
已交卷 蹲个代码
点赞 回复 分享
发布于 2022-09-15 21:20 浙江
m
点赞 回复 分享
发布于 2022-09-15 21:20 上海
状压dp后没想到前缀和前缀和求排列组合不也是On^2吗?求解惑
点赞 回复 分享
发布于 2022-09-15 21:08 江苏
大,大佬
点赞 回复 分享
发布于 2022-09-15 20:54 浙江
点赞 回复 分享
发布于 2022-09-15 20:53 天津
等楼主答案
点赞 回复 分享
发布于 2022-09-15 20:44 江苏
m
点赞 回复 分享
发布于 2022-09-15 20:41 海南
m
点赞 回复 分享
发布于 2022-09-15 20:41 陕西
马克
点赞 回复 分享
发布于 2022-09-15 20:39 四川
M
点赞 回复 分享
发布于 2022-09-15 20:36 北京
点赞 回复 分享
发布于 2022-09-15 20:32 福建
m
点赞 回复 分享
发布于 2022-09-15 20:32 北京

相关推荐

od现在都成这样了&nbsp;就业市场真是crazy
牛客473059135号:没事,我有个朋友是985本硕学计算机的,被华为卡目标院校了简历挂,不过不是od虽然人家拿到一堆别的offer了就挺搞笑的属于是……
点赞 评论 收藏
分享
评论
10
40
分享

创作者周榜

更多
牛客网
牛客企业服务