编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#557 #999. 蛋蛋 Accepted 100 201 ms 2912 K Python 3 / 769 B s230034010 2023-10-15 14:55:04
n = int(input())  
needs = list(map(int, input().split()))  

m = int(input())  
foods = [list(map(int, input().split())) for _ in range(m)]

ans = m + 1  
selected_foods = []

def backtrack(curr, selected, remains):
    global ans, selected_foods
    if len(selected) > ans:  
        return
    if all(remain <= 0 for remain in remains):  
        if len(selected) < ans:
            ans = len(selected)
            selected_foods = selected[:]
        return

    if curr == m:  
        return

    new_remains = [remains[i] - foods[curr][i] for i in range(n)]
    backtrack(curr+1, selected + [curr], new_remains)

    backtrack(curr+1, selected, remains)

backtrack(0, [], needs)

print(ans, *sorted([i+1 for i in selected_foods])) 
子任务 #1
Accepted
得分:100
测试点 #1
Accepted
得分:100
用时:34 ms
内存:2804 KiB

输入文件(1.in

1
50
1
50

答案文件(1.out

1 1

用户输出

1 1

系统信息

Exited with return code 0
测试点 #2
Accepted
得分:100
用时:34 ms
内存:2912 KiB

输入文件(2.in

3
100 200 300
3
99 199 299
2 2 2
1000 1000 1000

答案文件(2.out

1 3

用户输出

1 3

系统信息

Exited with return code 0
测试点 #3
Accepted
得分:100
用时:36 ms
内存:2816 KiB

输入文件(3.in

4
1 1 1 1
4
1 1 0 0
1 0 1 0
0 1 0 1
0 0 0 1

答案文件(3.out

2 2 3

用户输出

2 2 3

系统信息

Exited with return code 0
测试点 #4
Accepted
得分:100
用时:34 ms
内存:2820 KiB

输入文件(4.in

5
10 20 30 40 50
5
10 10 10 10 10
0 10 10 10 10
0 0 10 10 10
0 0 0 10 10
0 0 0 0 10

答案文件(4.out

5 1 2 3 4 5

用户输出

5 1 2 3 4 5

系统信息

Exited with return code 0
测试点 #5
Accepted
得分:100
用时:35 ms
内存:2860 KiB

输入文件(5.in

8
10 10 10 10 10 10 10 10
7
1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3
4 4 4 4 4 4 4 4
1
<62 bytes omitted>

答案文件(5.out

2 6 7

用户输出

2 6 7

系统信息

Exited with return code 0
测试点 #6
Accepted
得分:100
用时:28 ms
内存:2828 KiB

输入文件(6.in

4
100 200 300 400
3
50 50 50 50
200 300 200 300
900 150 389 399

答案文件(6.out

2 1 3

用户输出

2 1 3

系统信息

Exited with return code 0