这是一个算法问题,我有解决方案,但它有性能问题.
问题描述
有n个变量和m个要求.需求表示为(x <= y),这意味着第x个变量必须小于或等于第y个变量.为每个变量分配小于10的非负数.请计算符合所有要求的不同分配数量.当且仅当在这两个分配中为至少一个变量分配不同的数字时,两个分配是不同的.通过1007模块化答案.
输入格式:
输入的第一行包含两个整数n和m.然后跟随m行,每行包含2个空格分隔的整数x和y,这意味着需求(x <= y).
输出格式:
将答案输出一行.
约束:
0 <n <14
0 <m <200
0 <= x,y <n
样本输入:
6 7
1 3
0 1
2 4
0 4
2 5
3 4
0 2
样本输出:
1000
以下是我的解决方案.当n = 13且m = 199时,获得结果需要太长时间,但可接受的时间是5秒.
那么有谁能想到更好的方法来进一步优化这个?谢谢.
我目前的解决方案
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication81
{
class Program
{
const int N = 10;
static List<Condition> condition = new List<Condition>();
static void Main(string[] args) …Run Code Online (Sandbox Code Playgroud)