微众3题AC代码

第一题:100%

  • 思路:交了四发91%,最后加个发红包打发小朋友就100%了。。
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int m = in.nextInt();
        int a = in.nextInt();
        int b = in.nextInt();
        int c = Math.min(a, b);
        int ans = 0;
        if (m % n == 0)
            System.out.println(0);
        else {
            if (m < n)
                System.out.println((n - m) * c);
            else {
                for (int i = n; i > 0; i--) { // 发红包
                    if (m % i == 0) {
                        break;
                    } else {
                        ans += a;
                    }
                }
                System.out.println(Math.min(ans, (n - m % n) * b)); // 还需要购买的礼物数
            }
        }
    }
}

第二题:100%

  • 思路:数据小就直接暴力模拟了。。
import java.util.Arrays;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int t = in.nextInt();
        while (t-- > 0) {
            String str = in.next();
            int len = str.length();
            int[] nums = new int[26];
            int cnt = 0, op = 0;
            for (int i = 0; i < len; i++)
                nums[str.charAt(i) - 'a']++;
            for (int i = 0; i < 26; i++)
                cnt += nums[i] & 1;
            while (true) {
                Arrays.sort(nums);
                op++;
                if (cnt == 1 || cnt == 0)
                    break;
                boolean flag = false;
                for (int i = 25; i >= 0; i--) {
                    if (nums[i] > 0 && nums[i] % 2 == 0) {
                        nums[i]--;
                        cnt++;
                        flag = true;
                        break;
                    }
                }
                if (!flag) {
                    if (nums[25] > 0) {
                        nums[25]--;
                        cnt--;
                    }
                }
            }
            System.out.println((op & 1) == 1 ? "Cassidy" : "Eleanore");
        }
    }
}

第三题:100%

  • 思路:贪心即可。。
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        Node[] nodes = new Node[n];
        for (int i = 0, a, b; i < n; i++) {
            a = in.nextInt();
            b = in.nextInt();
            nodes[i] = new Node(a, b);
        }
        Arrays.sort(nodes, new Comparator<Node>() {
            public int compare(Node o1, Node o2) {
                if (o1.b != o2.b)
                    return o2.b - o1.b;
                return o2.a - o1.a;
            }
        });
        int ans = 0, cnt = 1;
        for (int i = 0; i < n; i++) {
            if (cnt > 0) {
                cnt--;
                ans += nodes[i].a;
                cnt += nodes[i].b;
            }
        }
        System.out.println(ans);
    }
}
class Node {
    int a, b;
    public Node(int a, int b) {
        this.a = a;
        this.b = b;
    }
}
#微众笔试##微众银行##笔试题目#
全部评论
tql 感谢大佬
点赞 回复
分享
发布于 2020-04-08 22:52
太强了,感觉我凉了
点赞 回复
分享
发布于 2020-04-08 23:09
淘天集团
校招火热招聘中
官网直投

相关推荐

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