当前位置: 首页 > news >正文

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

P2476 [SCOI2008] 着色方案

题目描述

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

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

所有油漆刚好足够涂满所有木块,即∑i=1kci=n\sum_{i=1}^kc_i=ni=1kci=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 51k51≤ci≤31 \leq c_i \leq 31ci3
  • 对于100%100\%100%的数据,1≤k≤151 \leq k \leq 151k151≤ci≤51 \leq c_i \leq 51ci5

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考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

http://www.jsqmd.com/news/155336/

相关文章:

  • YOLO与Prometheus Alertmanager集成:智能告警分发
  • 常见服务器黑话/术语名称
  • 绕过夸克网盘直接下载文件_公益解析站
  • 夸克在线直链提取网站_夸克网盘直链解析网站
  • 昇腾 (Ascend) NPU 实战指南:在 GitCode Notebook 中玩转 CodeLlama
  • YOLO模型缓存失效策略:LRU与TTL的选择依据
  • 7款免费AI论文神器:开题报告大纲10分钟生成,效率提升300%!
  • YOLO模型异常检测机制:自动发现输入数据质量问题
  • LLM实战:如何高效实现内容自动标注与增强(附源码)
  • YOLO模型冷启动类加载优化:提前加载关键类文件
  • mmc.exe文件丢失损坏找不到 下载方法
  • YOLO模型冷启动依赖预加载:缩短初始化时间的技巧
  • 導出微博喜歡列表
  • springboot汽车资讯网站(11603)
  • 推荐阅读:AI编程工具V0:重塑前端开发的代码生成能力
  • 遊戲危機
  • YOLO目标检测中的长尾分布问题:少样本类别应对
  • 20236大模型学习终极指南:30节精品课程+104G资源包,零基础也能成为AI工程师_全方位大模型教程:从基础入门到实战应用,非常详细的大模型教程
  • 推荐阅读:Revolutionizing Development: The Rise of AI-Powered App Builders
  • YOLO在矿山安全监控的应用:矿车与工人行为分析
  • 程序员必看!大模型黑话全解析:LangChain、Embedding、RAG...收藏这篇就够了
  • springboot疫情下图书馆管理系统(11604)
  • 【OD刷题笔记】- 单词加密
  • 基于stm32单片机智能门禁人脸指纹RFID识别电子密码锁成品设计app(程序+实物)全套
  • 完整的PID和LQR四旋翼无人机Simulink、Matlab仿真:两个SLX文件一个M文件及...
  • YOLO目标检测中的光照变化适应:自适应增强技术
  • matlab/simulink的复合电源超级电容能量管理仿真策略电动汽车 基于模糊控制的能量控制策略
  • YOLO模型训练资源配额管理:防止滥用的限流策略
  • Voice Agent 实战:用 OpenAI Realtime API + Twilio 复刻一个“全双工”的 AI 电话客服
  • C#上位机OPC DA网口通讯协议:覆盖95%PLC连接,附编程课程与OPC服务器赠送指南