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

打卡信奥刷题(3134)用C++实现信奥题 P7552 [COCI 2020/2021 #6] Anagramistica

P7552 [COCI 2020/2021 #6] Anagramistica

题目描述

Biljana 喜欢出字谜游戏。

如果一个单词可以由另一个单词交换字母顺序得到,则称它们是「相似」的。

现在,她有n nn个单词。她希望选出一些单词,使得其中恰好有k kk对单词是「相似」的。请你帮她计算可行的方案数,对10 9 + 7 10^9 + 7109+7取模。

输入格式

第一行两个整数n nnk kk

接下来n nn行,每行一个字符串,表示一个单词。

输出格式

一行一个整数,表示可行的方案数,对10 9 + 7 10^9 + 7109+7取模。

输入输出样例 #1

输入 #1

3 1 ovo ono voo

输出 #1

2

输入输出样例 #2

输入 #2

5 2 trava vatra vrata leo ole

输出 #2

3

输入输出样例 #3

输入 #3

6 3 mali lima imal je sve ej

输出 #3

6

说明/提示

样例 1 解释

恰含有一对「相似」的单词的方案为ovo, ono, vooovo, voo


数据规模与约定

本题采用捆绑测试

Subtask分值数据规模与约定
1 1110 10101 ≤ n ≤ 15 1 \le n \le 151n15
2 2230 30300 ≤ k ≤ 3 0 \le k \le 30k3
3 3370 7070无附加约定

对于100 % 100\%100%的数据,1 ≤ n ≤ 2 × 10 3 1 \le n \le 2 \times 10^31n2×1030 ≤ k ≤ 2 × 10 3 0 \le k \le 2 \times 10^30k2×103,单词的长度不超过10 1010且仅含小写字母。


说明

本题分值按 COCI 原题设置,满分110 110110

题目译自 COCI2020-2021 CONTEST #6T3 Anagramistica

C++实现

#include<iostream>#include<algorithm>#include<cmath>#include<unordered_map>usingnamespacestd;typedeflonglongll;constll MOD=1000000007;constintN=2e3+100;intn,k,cnt[N],id;ll dp[N][N],c[N][N];string s;unordered_map<string,int>um;intmain(){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin>>n>>k;for(inti=1;i<=n;i++){cin>>s;sort(s.begin(),s.end());if(um.count(s))cnt[um[s]]++;elseum[s]=++id,cnt[id]=1;}for(inti=0;i<=n;i++){c[i][0]=1;for(intj=1;j<=i;j++)c[i][j]=(c[i-1][j]+c[i-1][j-1])%MOD;}dp[0][0]=1;//初始化for(inti=1;i<=id;i++){for(intj=0;j<=k;j++){dp[i][j]=dp[i-1][j];for(into=1;o<=cnt[i]&&o*(o-1)/2<=j;o++)dp[i][j]=(dp[i][j]+dp[i-1][j-o*(o-1)/2]*c[cnt[i]][o]%MOD)%MOD;}}printf("%lld",dp[id][k]);return0;}

后续

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

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

相关文章:

  • 从‘硬’到‘软’:柔性阵列与稳健波束形成入门避坑指南
  • GEO深水区:AI信息分发革命下,行业乱象的底层逻辑与价值终局 - 速递信息
  • 2026年4月液液萃取设备厂家推荐,金属/连续/锂/沉锂母液/发酵液萃取设备,专业萃取解决方案供应商 - 品牌推荐用户报道者
  • Honor of Kings 2026.04.19
  • PTP协议精讲(2.12):PTP的十种语言——报文格式全解析
  • Python实战:用京东云SDK三行代码搞定短信发送(附状态回调查询完整Demo)
  • 从‘复合管’(达林顿管)到现代功放芯片:一场关于‘放大能力’的技术演进简史
  • 深入S2A-Net的‘对齐卷积’:如何让卷积网络‘看懂’旋转的物体?
  • 从仿真波形看懂Xilinx FIFO:手把手教你用Vivado分析复位与empty信号的变化
  • 终极《环世界》性能优化指南:如何通过Performance-Fish实现400%帧率提升
  • 从创建到关闭:手把手带你走完一个Bug在Bugzilla中的完整生命周期
  • 微服务架构中的分布式事务处理方案与数据一致性保障
  • 2026年4月小型密炼机厂家TOP推荐:橡胶/塑料/实验室密炼机,精选实力源头工厂与创新技术解析 - 品牌推荐用户报道者
  • C语言math.h里还有这些宝贝?除了fmax,fdim、fmin这些实用函数你用对了吗?
  • 开发者暴露了一个无需授权访问的裸接口,我问:如果有人暴力请求怎么办?
  • Android硬件调试踩坑记:手把手教你编译i2c-tools并搞定16位地址读写
  • 告别龟速!3分钟掌握城通网盘高速下载秘籍:ctfileGet完全指南
  • 告别臃肿备份!手把手教你用DISM命令+配置文件,精准排除Windows系统垃圾文件
  • 告别Sprite Packer!Unity 2020+新版Sprite Atlas保姆级配置指南(含2D Sprite包导入)
  • 白宫顶着禁令部署Anthropic新模型Mythos,前沿大模型成美国网络安全新焦点
  • 2026年论文摘要AI率超高专项处理攻略:摘要部分降AI完整方案
  • 别只装双系统!用Surface Pro 7打造移动安全工作站:Kali渗透测试环境配置全记录
  • 告别TTTTTT:深入理解U-Boot NFS协议兼容性与Ubuntu内核版本的关联
  • DeepSeek总结的令人惊叹的客户端 Markdown:markdeep
  • 3分钟掌握文件秒传工具:免安装网页版文件分享解决方案
  • STM32F429 SPI读写W25Q128 Flash实战:从引脚配置到数据存储的完整流程
  • 如何用bili2text快速将B站视频转换为文字稿
  • 别再被Git的‘无法快进’卡住了!手把手教你用rebase和merge --no-ff搞定分支合并冲突
  • 别再硬编码了!用Activiti TaskListener实现动态任务指派与自动抄送(Spring Boot实战)
  • 海外短剧平台搭建 - 多支付多语言短剧系统 - 包 Google Play/App Store 上架