美团笔试8.15第四题

现在在本地运行都能通过测试,不知道会不会超时和超内存,有问题可以指出来一起探讨
测试样例:5 2 2
4 2
3 3
5 4
5 3
1 5
输出:18

        public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		while(sc.hasNext()) {
			int n = sc.nextInt();
			int a = sc.nextInt();
			int b = sc.nextInt();
			int[][] arr = new int[n][2];
			for(int i=0; i<n; i++) {
				for(int j=0; j<2; j++) {
					arr[i][j] = sc.nextInt();
				}
			}
			findRes(arr, a, b, 0, 0, 0, 0);
			System.out.println(res);
			
		}
		sc.close();
	}
	static int res = 0;
	public static void findRes(int[][] arr, int a, int b, int ca, int cb, int sum, int index) {
		if(index == arr.length) {
			if(index==arr.length && ca==a && cb==b) {
				res = Math.max(res, sum);
			}
			return;
		}
		findRes(arr, a, b, ca+1, cb, sum+arr[index][0], index+1);
		findRes(arr, a, b, ca, cb+1, sum+arr[index][1], index+1);
		findRes(arr, a, b, ca, cb, sum, index+1);
	}     

#笔试题目##美团#
全部评论
我过了64% 用的dp
1 回复 分享
发布于 2020-08-15 20:59
dfs暴力法好像只能过18来着
1 回复 分享
发布于 2020-08-16 11:28
二维dp 82求一维dp方案,尝试了下失败了
点赞 回复 分享
发布于 2020-08-15 21:38
这个是超时的,我就是用的这个方法😅
点赞 回复 分享
发布于 2020-08-15 21:42
我只过了82% 超时了
点赞 回复 分享
发布于 2020-08-15 22:48
我当时一维dp写的状态压缩,如果有5个车,那么state=0表示没有车被用,state=11110表示只有第一个车没被用,但是我状态方程写错了,有大佬能贴一个代码吗?
点赞 回复 分享
发布于 2020-08-16 11:30

相关推荐

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