`
lovnet
  • 浏览: 6672224 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

HYSBZ 1079(着色方案)

 
阅读更多

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.


分享到:
评论

相关推荐

    Creo零件外观库零件着色配色方案

    把前面中文删除放到默认目录覆盖即可, 另外一种配色方案在 https://download.csdn.net/download/jh1513/12505947,,, 相关使用方法见我博客搜索 "Creo/ProE自定义零件外观库保存使用

    地图着色(MFC)

    一个用MFC编写的C++程序,利用不同的算法得到不同的文字着色方案,再利用文字着色方案与着色函数相关联,对相应区域着色。

    graph_coloring.zip_matlab 图着色_图着色_图着色 matlab_节点着色_贪心

    基于matlab的图着色程序,算法为贪心算法,将节点按照度从大到小排序,排序后先给度大的着色。

    M着色问题 M着色问题 M着色问题

    M着色问题 M着色问题 M着色问题 M着色问题 M着色问题 M着色问题 M着色问题 M着色问题 M着色问题 M着色问题 M着色问题 M着色问题 M着色问题 M着色问题 M着色问题 M着色问题 M着色问题 M着色问题

    新版UltraEdit14.20语法着色 使用方案

    新版UltraEdit14.20语法着色 使用方案 及使用说明 有人问到,为什么语法没着色,特意奉上

    图的着色问题.zip

    图的着色问题图论和计算机科学的一个经典问题. 给定一个无向图 G, 为图 ... 一个合法的图着色方案必须要满足条件: 任意两相邻节点 的颜色不同. 问题是, 我们希望找到使用颜色数尽可能少的着色方案.

    地图着色贪心算法代码

    地图着色的算法,能够实现地图的输入,并形成着色方案,用贪心算法实现,值得参考

    WebH5视频滤镜的百搭解决方案-WebGL着色器.docx

    WebH5视频滤镜的百搭解决方案-WebGL着色器.docx

    史上最全的VS配色方案

    史上最全的VS配色方案

    10304平面域着色

    平面上有一点P,它是n个域D1、D2、……,Dn的共同交点, 现取k种颜色对这n个域进行着色,要求相邻两个域着的颜色不同,求着色方案数。 这里,2,1。

    地图着色问题 图论 四着色

    地图四着色问题,对于相邻矩阵,利用堆栈实现地图颜色的测试,解决回溯问题

    OpenGL 低级着色语言与高级着色语言

    OpenGL 低级着色语言与高级着色语言

    GCP(图着色问题)_GCP模拟退火_gcp_图着色问题_SA_

    利用模拟退火算法解决GCP图着色问题,matlab编写

    threejs 着色器之书threejs 着色器之书

    threejs 着色器之书threejs 着色器之书threejs 着色器之书threejs 着色器之书threejs 着色器之书threejs 着色器之书threejs 着色器之书threejs 着色器之书threejs 着色器之书threejs 着色器之书threejs 着色器之书...

    四色问题地图着色

    用四种颜色给地图上的不同地区着色。要求相邻地区不能是相同颜色。这个代码最后能得到一种着色方案。

    论文研究 - 基于涂抹的着色概述

    因此,随着分割算法和深度学习的发展,发明了许多计算机辅助的着色算法,包括用户指导的着色,半自动着色和自动着色。 在本调查报告中,我们将仅着重于用户指导的着色中基于涂抹的着色,并回顾其发展。 我们将讨论...

    韦尔奇.鲍威尔着色

    本程序的功能:输入一个图,用韦尔奇.鲍威尔着色理论对其进行着色。(顶点均按顺序用数字1,2,3...表示)

    平面域着色

    平面上有一点P,它是n个域D1、D2、……,Dn的共同交点, 现取k种颜色对这n个域进行着色,要求相邻两个域着的颜色不同,求着色方案数。

    图的m着色问题

    用这些颜色为图G的各顶点着色,每个顶点 着一种颜色。是否有一种着色法使G中每条边的2个顶点着不同颜色。这个问题是 图的m可着色判定问题。若一个图最少需要m种颜色才能使图中每条边连接的2个 顶点着不同颜色,则称...

    JAVA可着色接口Colorable

    可着色对象的每个类必须实现Colorable接口。设计一个扩展GeometricObject类并实现Colorable接口的名为Square的类。实现howToColor方法,显示消息“给所有的四条边着色”。 画出包含Colorable、Square和...

Global site tag (gtag.js) - Google Analytics