Dp 神奇的状态转移……
Program fd;
const
mo=1000000007;
var
n,i,j:longint;
c,tot:array[1..15] of longint;
f:array[0..15,0..15,0..15,0..15,0..15,0..15] of int64;
function dfs(a1,a2,a3,a4,a5,last:longint):int64;
var
i,j:longint;
ans,q:int64;
a:array[1..5] of longint;
begin
if f[a1,a2,a3,a4,a5,last]>0 then exit(f[a1,a2,a3,a4,a5,last]);
a[1]:=a1;a[2]:=a2;a[3]:=a3;a[4]:=a4;a[5]:=a5;
ans:=0;
for i:=1 to 5 do
if (a[i]>0) then
begin
if (last=i+1) and (a[i]=1) then continue;
// if (last=i+1) then dec(a[i]);
dec(a[i]);
if i>1 then inc(a[i-1]);
q:=dfs(a[1],a[2],a[3],a[4],a[5],i);
inc(a[i]);
if i>1 then dec(a[i-1]);
if last=i+1 then ans:=(ans+(a[i]-1)*q) mod mo
else ans:=(ans+a[i]*q) mod mo;
// if (last=i+1) then inc(a[i]);
end;
f[a1,a2,a3,a4,a5,last]:=ans;
exit(ans);
end;
begin
read(n);
fillchar(tot,sizeof(tot),0);
for i:=1 to n do
begin
read(c[i]);
inc(tot[c[i]]);
end;
fillchar(f,sizeof(f),0);
for i:=1 to n do f[0,0,0,0,0,i]:=1;
writeln(dfs(tot[1],tot[2],tot[3],tot[4],tot[5],0));
end.
分享到:
相关推荐
把前面中文删除放到默认目录覆盖即可, 另外一种配色方案在 https://download.csdn.net/download/jh1513/12505947,,, 相关使用方法见我博客搜索 "Creo/ProE自定义零件外观库保存使用
一个用MFC编写的C++程序,利用不同的算法得到不同的文字着色方案,再利用文字着色方案与着色函数相关联,对相应区域着色。
基于matlab的图着色程序,算法为贪心算法,将节点按照度从大到小排序,排序后先给度大的着色。
M着色问题 M着色问题 M着色问题 M着色问题 M着色问题 M着色问题 M着色问题 M着色问题 M着色问题 M着色问题 M着色问题 M着色问题 M着色问题 M着色问题 M着色问题 M着色问题 M着色问题 M着色问题
新版UltraEdit14.20语法着色 使用方案 及使用说明 有人问到,为什么语法没着色,特意奉上
图的着色问题图论和计算机科学的一个经典问题. 给定一个无向图 G, 为图 ... 一个合法的图着色方案必须要满足条件: 任意两相邻节点 的颜色不同. 问题是, 我们希望找到使用颜色数尽可能少的着色方案.
地图着色的算法,能够实现地图的输入,并形成着色方案,用贪心算法实现,值得参考
WebH5视频滤镜的百搭解决方案-WebGL着色器.docx
史上最全的VS配色方案
平面上有一点P,它是n个域D1、D2、……,Dn的共同交点, 现取k种颜色对这n个域进行着色,要求相邻两个域着的颜色不同,求着色方案数。 这里,2,1。
地图四着色问题,对于相邻矩阵,利用堆栈实现地图颜色的测试,解决回溯问题
OpenGL 低级着色语言与高级着色语言
利用模拟退火算法解决GCP图着色问题,matlab编写
threejs 着色器之书threejs 着色器之书threejs 着色器之书threejs 着色器之书threejs 着色器之书threejs 着色器之书threejs 着色器之书threejs 着色器之书threejs 着色器之书threejs 着色器之书threejs 着色器之书...
用四种颜色给地图上的不同地区着色。要求相邻地区不能是相同颜色。这个代码最后能得到一种着色方案。
因此,随着分割算法和深度学习的发展,发明了许多计算机辅助的着色算法,包括用户指导的着色,半自动着色和自动着色。 在本调查报告中,我们将仅着重于用户指导的着色中基于涂抹的着色,并回顾其发展。 我们将讨论...
本程序的功能:输入一个图,用韦尔奇.鲍威尔着色理论对其进行着色。(顶点均按顺序用数字1,2,3...表示)
平面上有一点P,它是n个域D1、D2、……,Dn的共同交点, 现取k种颜色对这n个域进行着色,要求相邻两个域着的颜色不同,求着色方案数。
用这些颜色为图G的各顶点着色,每个顶点 着一种颜色。是否有一种着色法使G中每条边的2个顶点着不同颜色。这个问题是 图的m可着色判定问题。若一个图最少需要m种颜色才能使图中每条边连接的2个 顶点着不同颜色,则称...
可着色对象的每个类必须实现Colorable接口。设计一个扩展GeometricObject类并实现Colorable接口的名为Square的类。实现howToColor方法,显示消息“给所有的四条边着色”。 画出包含Colorable、Square和...