解题报告: ABC 165C
Posted tlx-blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解题报告: ABC 165C相关的知识,希望对你有一定的参考价值。
题目链接:AT5260 [ABC165C] Many Requirements
(ABC) 的 (C) 考场上都没写出来,枯了。
以为复杂度是 (O(n^m)) 过不去,然而只有 (O(C_m^n q))。
爆搜即可......
(Code:)
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
#define read(x) scanf("%d",&x)
int n,m,q;
int ans=0;
int a[55],b[55],c[55],d[55];
int rt[15];
void dfs(int th)
{
if(th==n)
{
int now=0;
for(int i=1;i<=q;i++)
{
if(rt[b[i]]-rt[a[i]]==c[i]) now+=d[i];
}
ans=max(ans,now);
return;
}
for(int i=rt[th];i<=m;i++)
{
rt[th+1]=i;
dfs(th+1);
}
return;
}
int main()
{
read(n),read(m),read(q);
for(int i=1;i<=q;i++) read(a[i]),read(b[i]),read(c[i]),read(d[i]);
for(int i=1;i<=m;i++)
{
rt[1]=i;
dfs(1);
}
printf("%d
",ans);
return 0;
}
以上是关于解题报告: ABC 165C的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode --- 944. Delete Columns to Make Sorted 解题报告
Codeforces Round #394 (Div. 2) 解题报告