广联达笔试8-19

单选题

30道单选和三道编程题总分一样,都是60分。
30道单选做了45分钟左右,里面求程序执行结果的题有不少,考的也比较全面。
记录一题懵逼的题:思路先回到大一学的《离散数学》,又回到研一学的《凸优化》,但还是没有头绪,怒抄之。
在互为对偶的两个问题中,若一个问题可行且具有无界解,则另一个问题()
A. 有多重最优解
B. 有无界解
C. 有唯一最优解
D. 无可行解

第一题

思路:双指针
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String s1 = input.nextLine();
        String s2 = input.nextLine();
        
        int res = 0, len = s1.length();
        int idx1 = 0, idx2 = 0;

        while (idx1 < len && idx2 < len) {
            if (s1.charAt(idx1) == s2.charAt(idx2))
                res += 20;

            if (s1.charAt(idx1) != s2.charAt(idx2)) {
                if (res >= 10)
                    res -= 10;
                else res = 0;
            }
            idx1++;
            idx2++;
        }
        System.out.println(res);
    }
}

第二题

草草读了一下题就返回第一题,然后接着第三题去了。现在也不知道第二题讲的什么,只模模糊糊地记得魔法士,真正的粉丝,看到魔法士就


第三题

典型的背包问题。
思路:动态规划。
难点:在于 dp 数组中下标为浮点数时的转化。
考虑到最后求的是 最大取悦值,跟另一个变量,也就是电量关系不太大,猜测测试用例可能都是两位小数,索性直接乘了一百全当成整数算,没想到竟然过了。
有点投机取巧。
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        int C = input.nextInt() * 100;

        float[] c = new float[n];
        int[] w = new int[n];
        int[] tmp = new int[n];

        for (int i = 0; i < n; i++) {
            c[i] = input.nextFloat();
            w[i] = input.nextInt();
            tmp[i] = (int) (c[i] * 100);
        }

        int[] dp = new int[C + 1];
        for (int i = 0; i < n; i++)
            for (int j = C; j >= tmp[i]; j--)
                dp[j] = Math.max(dp[j - tmp[i]] + w [i], dp[j]);

        System.out.println(dp[C]);
    }
}



#笔试题目##广联达#
全部评论
补个第二题
1 回复 分享
发布于 2020-08-19 23:27
大佬我第一题感觉很简单啊,为啥我才AC9%啊 a = input() b = input() ans = 0 for i in range(len(a)):     if a[i] == b[i]:         ans += 20     else:         ans -= 10         if ans < 0:             ans = 0 print(ans) 大佬我的问题出在哪里了呀😭
点赞 回复 分享
发布于 2020-08-20 12:37
*100是真的NB,学到了
点赞 回复 分享
发布于 2020-08-20 10:15
一样一样 第二题人晕晕的 就想着膜了
点赞 回复 分享
发布于 2020-08-20 08:06
C++用二维动态规划,也是*100,只过了64%,最后5分钟,无限尝试将100换成其他数也没用😭
点赞 回复 分享
发布于 2020-08-19 22:53
第二题呢,大佬
点赞 回复 分享
发布于 2020-08-19 22:37

相关推荐

08-18 15:52
Python
码农索隆:这孩子真实诚,说周一有急事啊
点赞 评论 收藏
分享
评论
4
22
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务