1 条题解

  • 0
    @ 2022-11-6 16:03:27

    C++ :

    #include <bits/stdc++.h>
    using namespace std;
    
    const int N = 11, Q = 51;
    
    int n, m, q, A[N];
    int a[Q], b[Q], c[Q], d[Q];
    int ans;
    
    void dfs(int dep, int pre) {
    	if (dep == n+1) {
    		int ret = 0;
    		for (int i = 0; i < q; ++i) {
    			if (A[b[i]] - A[a[i]] == c[i]) ret += d[i];
    		}
    		ans = max(ret, ans);
    		return;
    	}
    	for (int i = pre; i <= m; ++i) {
    		A[dep] = i;
    		dfs(dep+1, i);
    	}
    }
    
    int main() {
    	scanf("%d%d%d", &n, &m, &q);
    	for (int i = 0; i < q; ++i) {
    		scanf("%d%d%d%d", a+i, b+i, c+i, d+i);
    	}
    	dfs(1, 1);
    	printf("%d\n", ans);
    }
    
    
    • 1

    信息

    ID
    20980
    时间
    2000ms
    内存
    1024MiB
    难度
    (无)
    标签
    (无)
    递交数
    0
    已通过
    0
    上传者