JZOJ.4377[GDOI2016模拟3.10]习用之语 解题报告
习用之语
题目大意
给出 N N个长度为4的字符串,求出仅差DD个字符的字符串的对数。
输入格式
第一行两个正整数 N N,DD。
接下来 N N行,每行一个长度为4的字符串。
输出格式
一行,一个整数,为仅差DD个字符的字符串的对数。
样例输入
4 2
0000
a010
0202
a0e2
样例输出
3
样例解释
一共三对。
第一对:0000,a010
第二对:a010,a0e2
第三对:0202,0000
故输出3。
数据范围
题解
15分算法
做一次 N2 N^2的两两匹配统计答案即可。
100分算法
定义一个数组 G G,GiG_i表示最多能有 i i个不同的字符的字符串匹配对数。
最能多有ii个不同也就等于至少有(4- i i)个相同。
那我们的问题也就转换成至少有(4-ii)个相同字符相等的字符串匹配对数,这样就可以求出 Gi G_i了。
那我们怎样求 Gi G_i呢?
首先从每个字符串中抽取(4- i i)个字符出来并按顺序排好形成NN个新的字符串。
其中有多少个字符串相等就有多少对。
算法有很多,我用的是快排,这样一样的字符串就会堆在一起。
至于抽取字符出来的方法可以自己枚举,不多,对于每个 i i最多只有6种。
定义一个数组FF, Fi F_i表示仅有 i i个不同的字符的字符串匹配对数。
根据容斥原理,FF可以从 G <script type="math/tex" id="MathJax-Element-23">G</script>转移过来。
具体转移如下:
f[0]=g[4] (这个比较显然)
f[1]=g[3]-f[0]*4
(仅为1个不同(即仅为3个相同),在仅为0个不同(即全部相同)里算了4次,这4次都要去掉,后面同理)
f[2]=g[2]-f[1]*3-f[0]*6
f[3]=g[1]-f[2]*2-f[1]*3-f[0]*4
f[4]=n*(n-1)/2-f[0]-f[1]-f[2]-f[3](这里用了比较取巧的方法,即用总的减去其他的)
JZOJ.4377[GDOI2016模拟3.10]习用之语 解题报告相关推荐
- [jzoj 6093] [GDOI2019模拟2019.3.30] 星辰大海 解题报告 (半平面交)
题目链接: https://jzoj.net/senior/#contest/show/2686/2 题目: 题解: 说实话这题调试差不多花了我十小时,不过总算借着这道题大概了解了计算几何的基础知识 ...
- 【GDOI2016模拟3.10】习用之语
Description 有N个长度为4的字符串,求着N个字符串中有多少对差且仅相差d个字符. N<=50000 Solution 对于这种差且仅相差的题目,一般都会用容斥原理. 首先,我们统计出 ...
- [JZOJ 5911] [NOIP2018模拟10.18] Travel 解题报告 (期望+树形DP)
题目链接: http://172.16.0.132/senior/#contest/show/2530/1 题目: EZ同学家里非常富有,但又极其的谦虚,说话又好听,是个不可多得的人才. ...
- C语言:L1-031 到底是不是太胖了 (10分)(解题报告)
立志用更少的代码做更高效的表达 据说一个人的标准体重应该是其身高(单位:厘米)减去100.再乘以0.9所得到的公斤数.真实体重与标准体重误差在10%以内都是完美身材(即 | 真实体重 − 标准体重 | ...
- [JZOJ3385] [NOIP2013模拟] 黑魔法师之门 解题报告(并查集)
Description 经过了16个工作日的紧张忙碌,未来的人类终于收集到了足够的能源.然而在与Violet星球的战争中,由于Z副官的愚蠢,地球的领袖applepi被邪恶的黑魔法师Vani囚禁在了Vi ...
- C语言满分解法:L1-041 寻找250 (10分)(解题报告)
立志用更少的代码做更高效的表达 对方不想和你说话,并向你扔了一串数-- 而你必须从这一串数字中找到"250"这个高大上的感人数字. 输入格式: 输入在一行中给出不知道多少个绝对值不 ...
- C语言:L1-037 A除以B (10分)(解题报告)
真的是简单题哈 -- 给定两个绝对值不超过100的整数A和B,要求你按照"A/B=商"的格式输出结果. 输入格式: 输入在第一行给出两个整数A和B(−100≤A,B≤100),数字 ...
- 9行代码AC——L1-022 奇偶分家(10 分)(~解题报告~)
立志用更少的代码做更高效的表达 给定N个正整数,请统计奇数和偶数各有多少个? 输入格式: 输入第一行给出一个正整N(≤1000):第2行给出N个非负整数,以空格分隔. 输出格式: 在一行中先后输出奇数 ...
- 10行代码AC——L1-018 大笨钟 (10分)(~解题报告~)
立志用更少的代码做更优化的表达 微博上有个自称"大笨钟V"的家伙,每天敲钟催促码农们爱惜身体早点睡觉.不过由于笨钟自己作息也不是很规律,所以敲钟并不定时.一般敲钟的点数是根据敲钟时 ...
最新文章
- MaxCompute Mars 完全指南
- Linux系统发行版本介绍(一)——CentOS介绍
- 目标检测性能评价指标mAP、Precision、Recall、IoU
- 大部分程序员还不知道的 Servelt3 异步请求,原来这么简单?
- su插件打开显示html,如何让自己的su从工具变成神器?你需要这些插件
- Java测试驱动开发(TDD)
- 音频处理——常用音频编码格式简介(PCM、G726、ADPCM、LPCM、G711、AAC)
- excel2010 向程序发送命令时出现问题
- B树与B+树简明扼要的区别
- java pdf stamper_使用pdfstamper(Itext)将页码添加到pdf
- 对seed()的个人理解
- 【算法和数据结构学习笔记】整合版
- 【娱乐】末考文综抢救
- Fortran编程快速入门
- 【ESP32系列开发】ESP32-PICO-D4 使用双核
- SMT的主要工作流程和部分
- CP2K 7.1.0 使用 Intel 编译器安装
- 设置Windows 7锁屏背景图片
- 【技术推文】生态系统碳库的遥感估算:森林碳储量、草地系统、城市扩张、区域能源消耗碳排放空间格局模拟、大气温室气体浓度的卫星监测、区域碳循环的遥感模拟与预测(遥感数据同化\模型驱动使用)
- GPG error解决方案
热门文章
- 中关村十大AI研究院|盘点
- Simulink三相异步电机仿真(1)
- 速腾聚创16线激光雷达rslidar-16的ros驱动安装与rviz点云显示
- 桌面壁纸被计算机管理员禁用,电脑壁纸被管理员设置禁用了,怎么处理啊?
- Pytorch下transforms.ToTensor(),transforms.Normalize()详解,及代码实现和复原
- 开箱即用的物联网平台-IoTLink
- php错误报告和调试
- [转]完美解决图片/链接虚线边框
- 基于B树的图书管理系统(C语言)(含完整代码)
- 《软件登记测试报告》可以作为软件第三方检测报告使用吗