题解【洛谷 P1246 编码】
题目
编码工作常被运用于密文或压缩传输。这里我们用一种最简单的编码方式进行编码:把一些有规律的单词编成数宇。
字母表中共有 \(26\) 个字母 \(\{\tt a,b,\cdots,z\}\),这些特殊的单词长度不超过 \(6\) 且字母按升序排列。把所有这样的单词放在一起,按字典顺序排列,一个单词的编码就对应着它在字典中的位置。
例如:
\(\tt a\to 1\) ; \(\tt b\to 2\) ; \(\tt z\to 26\) ; \(\tt ab\to 27\) ; \(\tt ac\to28\)
你的任务就是对于所给的单词,求出它的编码。
题解
看了题解发现没有和我一样做法的。
考虑枚举组合,方法就是 P1157 的方法。
我们令 \(1\) 状态表示不填,故每个单词最多有一个不填的,隔 \(2\) 枚举即可。
using namespace std;
const int N=25;
int n,r,a[N],cc;
string A;
void C(int nn,int nm) // 枚举组合
{
if (nm==r)
{
string tmp;
for (int i=1;i<=r;i++)
if (a[i]!=1) tmp.push_back(a[i]+'a'-2); // 1 代表空了,所以要 -2
if (tmp==A){printf("%d",cc+1); exit(0);} // 如果枚举到了
++cc; return ; // 否则计数器 +1
}
for (int i=nn+1;i<=n-(r-nm-1);i++) a[nm+1]=i,C(i,nm+1),a[nm+1]=0;
}
int main()
{
cin>>A; n=27;
for (r=2;r<=6;r+=2) memset(a,0,sizeof a),C(0,0); // 隔 2 枚举
puts("0");
return 0;
}
题解【洛谷 P1246 编码】的更多相关文章
- 洛谷P1246编码问题-排列组合,分类讨论
编码问题 题意就是a,b,c.....ab.....编码,给你一个字符串,输出这是第几个: 这里可以用暴力枚举,但也可以用组合数学的高超知识: 既然这样我就说一下排列组合的方法,如果要弄一个 各位数字 ...
- 题解 洛谷P5018【对称二叉树】(noip2018T4)
\(noip2018\) \(T4\)题解 其实呢,我是觉得这题比\(T3\)水到不知道哪里去了 毕竟我比较菜,不大会\(dp\) 好了开始讲正事 这题其实考察的其实就是选手对D(大)F(法)S(师) ...
- 题解 洛谷 P3396 【哈希冲突】(根号分治)
根号分治 前言 本题是一道讲解根号分治思想的论文题(然鹅我并没有找到论文),正 如论文中所说,根号算法--不仅是分块,根号分治利用的思想和分块像 似却又不同,某一篇洛谷日报中说过,分块算法实质上是一种 ...
- 题解-洛谷P5410 【模板】扩展 KMP(Z 函数)
题面 洛谷P5410 [模板]扩展 KMP(Z 函数) 给定两个字符串 \(a,b\),要求出两个数组:\(b\) 的 \(z\) 函数数组 \(z\).\(b\) 与 \(a\) 的每一个后缀的 L ...
- 题解-洛谷P4229 某位歌姬的故事
题面 洛谷P4229 某位歌姬的故事 \(T\) 组测试数据.有 \(n\) 个音节,每个音节 \(h_i\in[1,A]\),还有 \(m\) 个限制 \((l_i,r_i,g_i)\) 表示 \( ...
- 题解-洛谷P4724 【模板】三维凸包
洛谷P4724 [模板]三维凸包 给出空间中 \(n\) 个点 \(p_i\),求凸包表面积. 数据范围:\(1\le n\le 2000\). 这篇题解因为是世界上最逊的人写的,所以也会有求凸包体积 ...
- 题解-洛谷P4859 已经没有什么好害怕的了
洛谷P4859 已经没有什么好害怕的了 给定 \(n\) 和 \(k\),\(n\) 个糖果能量 \(a_i\) 和 \(n\) 个药片能量 \(b_i\),每个 \(a_i\) 和 \(b_i\) ...
- 题解-洛谷P5217 贫穷
洛谷P5217 贫穷 给定长度为 \(n\) 的初始文本 \(s\),有 \(m\) 个如下操作: \(\texttt{I x c}\),在第 \(x\) 个字母后面插入一个 \(c\). \(\te ...
- 题解 洛谷 P2010 【回文日期】
By:Soroak 洛谷博客 知识点:模拟+暴力枚举 思路:题目中有提到闰年然后很多人就认为,闰年是需要判断的其实,含有2月29号的回文串,前四位是一个闰年那么我们就可以直接进行暴力枚举 一些小细节: ...
随机推荐
- Svelte3.x网页聊天实例|svelte.js仿微信PC版聊天svelte-webchat
基于Svelte3+SvelteKit+Sass仿微信Mac界面聊天实战项目SvelteWebChat. 基于svelte3+svelteKit+sass+mescroll.js+svelte-lay ...
- Mathtype无限试用
PS:本文方法参考网上搜集的内容,仅做记录. 首先,默认大家都已安装Mathtype软件.如果没装的话,安装下就行.建议安装Mathtype国际版软件,因为国产mathtype会延长失败.如果失败的话 ...
- python目录索引
python目录索引 python基础数据类型1 目录 part1 part2 运算符 格式化 part3 字符串 字符串常用操作方法 part4 列表 列表的创建: 列表的索引,切片 列表的增删改查 ...
- 走进Linux的世界
开源软件Linux的起源: Linux--操作系统. Linux,1991年Linux之父林纳斯 本纳第克特 托瓦兹,创建了Linux操作系统内核(开源). Linux的发行版和RHCE 1.Linu ...
- jQuery基础入门+购物车案例详解
jQuery是一个快速.简洁的JavaScript代码库(或JavaScript框架).jQuery设计的宗旨是"write Less,Do More",即倡导写更少的代码,做更多 ...
- 20212115朱时鸿-关于python技能树以及markdown编辑器的测评
csdn的链接:https://blog.csdn.net/m0_68116569/article/details/124049366 计算机连接:https://gitee.com/zhu-shih ...
- lanedet项目调试记录
苦水时间:最近深度学习调代码真的是调的郁闷,每次调都是旧的问题没有解决,新的问题又冒出来了.新的好不容易解决了,旧的问题还是没有解决思路解决不了. 正文 最近找到一个实现了很多车道线检测算法的gith ...
- 前端CSS3布局display:grid用法
前端CSS3布局display:flex用法 1. 先附上代码 点击查看代码 <!DOCTYPE html> <html> <head> <meta char ...
- 《HALCON数字图像处理》第六章笔记
目录 第六章 图像增强 图像增强的概念和分类 灰度变换 直方图处理 图像的平滑 图像的锐化 图像的彩色增强 我在Gitee上建了个仓库,会将学习书本的时候打的一些代码上传上去,笔记中所有代码都在仓库里 ...
- CentOS 8.0与CentOS7.0 防火墙端口设置
一,开放端口号 firewall-cmd --zone=public --add-port=8080/tcp --permanent #开启8080端口 firewall-cmd --zone=pu ...