欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF1263D.Secret Passwords
Secret Passwords
题目描述
一名未知的黑客想要获取 AtForces 测试系统管理员的密码,以便提前获得下一场比赛的题目。为此,他潜入了管理员的办公室,偷走了一张写有 个密码的纸条——这些密码都是由小写拉丁字母组成的字符串。
黑客回家后开始准备入侵 AtForces。他发现系统中只包含被盗名单上的密码,并且系统判断两个密码 和 是否等价的规则如下:
- 如果存在某个字母同时出现在 和 中,则密码 和 等价;
- 如果存在名单中的某个密码 ,使得 分别与 和 都等价,则 和 也等价。
如果系统设置了某个密码,而用户使用了与之等价的密码进行登录,则用户可以成功进入系统。
例如,若名单中包含密码 "a"、"b"、"ab"、"d",则 "a"、"b"、"ab" 彼此等价,但 "d" 与名单中的其他密码都不等价。换句话说,如果:
- 管理员密码是 "b",则可以用 "a"、"b" 或 "ab" 这三个密码中的任意一个进入系统;
- 管理员密码是 "d",则只能用 "d" 进入系统。
系统中只有一个密码是管理员密码。请帮助黑客计算,为了保证能够进入系统,至少需要尝试多少个密码。注意,黑客并不知道系统设置的是哪一个密码。
输入格式
第一行包含一个整数 (),表示密码数量。接下来的 行,每行一个密码 ,每个密码为非空字符串,长度不超过 。有些密码可能相同。
保证所有密码的总长度不超过 。所有密码仅由小写拉丁字母组成。
输出格式
输出一个整数,表示为了保证能够进入系统,至少需要尝试的密码数量。
说明/提示
在第二个样例中,黑客需要尝试所有密码才能进入系统。
由 ChatGPT 4.1 翻译
样例
4
a
b
ab
d
2
3
ab
bc
abc
1
1
codeforces
1
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |