尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

打卡信奥刷题(2606)用C++实现信奥题 P2476 [SCOI2008] 着色方案

打卡信奥刷题(2606)用C++实现信奥题 P2476 [SCOI2008] 着色方案
📅 发布时间:2026/6/20 21:56:12

P2476 [SCOI2008] 着色方案

题目描述

有nnn个木块排成一行,从左到右依次编号为111至nnn。

你有kkk种颜色的油漆,第iii种颜色的油漆足够涂cic_ici​个木块。

所有油漆刚好足够涂满所有木块,即∑i=1kci=n\sum_{i=1}^kc_i=n∑i=1k​ci​=n。

由于相邻两个木块涂相同色显得很难看,所以你希望统计任意两个相邻木块颜色不同的着色方案。

由于答案可能很大,请输出对109+710^9+7109+7取模的结果。

输入格式

第一行,一个整数kkk,表示颜色数量。

第二行kkk个整数c1,c2,…,ckc_1,c_2,\dots,c_kc1​,c2​,…,ck​,表示每种颜色能够涂木块的个数。

输出格式

一行一个整数,表示答案对109+710^9+7109+7取模的结果。

输入输出样例 #1

输入 #1

3 1 2 3

输出 #1

10

输入输出样例 #2

输入 #2

5 2 2 2 2 2

输出 #2

39480

输入输出样例 #3

输入 #3

10 1 1 2 2 3 3 4 4 5 5

输出 #3

85937576

说明/提示

  • 对于50%50\%50%的数据,1≤k≤51 \leq k \leq 51≤k≤5,1≤ci≤31 \leq c_i \leq 31≤ci​≤3;
  • 对于100%100\%100%的数据,1≤k≤151 \leq k \leq 151≤k≤15,1≤ci≤51 \leq c_i \leq 51≤ci​≤5。

C++实现

#include<bits/stdc++.h>#defineRGregister#defineILinline#defineFill(a,b)memset(a,b,sizeof(a))usingnamespacestd;typedeflonglongll;constintZsy(1e9+7);IL llInput(){RG ll x=0,z=1;RGcharc=getchar();for(;c<'0'||c>'9';c=getchar())z=c=='-'?-1:1;for(;c>='0'&&c<='9';c=getchar())x=(x<<1)+(x<<3)+(c^48);returnx*z;}intk,c[16],C[80][80],f[20][80],sum[16];ILvoidPrepare(){C[0][0]=1;for(RGinti=1;i<=75;++i){C[i][0]=1;for(RGintj=1;j<=75;++j)C[i][j]=(C[i-1][j]+C[i-1][j-1])%Zsy;}}intmain(RGintargc,RGchar*argv[]){Prepare();k=Input();for(RGinti=1;i<=k;++i)c[i]=Input(),sum[i]=sum[i-1]+c[i];f[1][c[1]-1]=1;for(RGinti=1;i<k;++i)for(RGintj=0;j<sum[i];++j){if(!f[i][j])continue;for(RGinta=1;a<=c[i+1];++a)for(RGintb=0;b<=a&&b<=j;++b){RGintret=1LL*f[i][j]*C[c[i+1]-1][a-1]%Zsy*C[j][b]%Zsy;ret=1LL*ret*C[sum[i]+1-j][a-b]%Zsy;(f[i+1][j+c[i+1]-a-b]+=ret)%=Zsy;}}printf("%d\n",f[k][0]);return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

相关新闻

  • LLM实战:如何高效实现内容自动标注与增强(附源码)
  • 推荐阅读:AI编程工具V0:重塑前端开发的代码生成能力
  • 遊戲危機

最新新闻

  • LPC21xx/22xx I2C从机发送模式状态机编程实战指南
  • 基于NXP MCUXpresso SDK的FOC电机控制实战:从硬件选型到参数调谐
  • 高耐火极限甲乙级防火防盗门芯层隔热阻燃材料性能试验分析
  • 嵌入式GUI开发实战:emWin集成VNC服务器与触摸驱动校准详解
  • 嵌入式GUI性能优化实战:emWin内存管理与驱动配置深度解析
  • 使用Frame Distributor Wizard高效配置DPAA PCD,加速网络数据处理

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号