CF 1166A Silent Classroom

2023-05-16

文章目录

          • 传送门
          • 题目大意
          • 思路
          • 别人的思路
          • 参考代码
          • Python 学习笔记

传送门
题目大意

n ( n ≤ 100 ) n \pod{n \le 100} n(n100) 个学生,我们需要将这些学生分到两个班上。对于两名在同一班级的学生,如果他们的名字首字母相同,他们就会聊天。

现在给定这些学生的名字,问最少有多少对学生会在一起聊天。

思路

显然这些学生的名字并不重要,重要的是这些学生的名字的首字母,因此我们只需要保存以各字母为首字母的学生数量。

如果两个学生名字的首字母不同,显然他们永远不会对答案有贡献,因此分开考虑各首字母的同学们。对于一个有 x x x 个同学的首字母,设有 y y y 名同学分到教室一,有 x − y x - y xy 名同学分到教室二,则这个首字母对答案的贡献为:
y ( y − 1 ) 2 + ( x − y ) ( x − y − 1 ) 2 \frac{y(y - 1)} {2} + \frac {(x - y)(x - y - 1)} {2} 2y(y1)+2(xy)(xy1)

展开得:
y 2 + ( x − y ) 2 − x 2 \frac {y^2 + (x - y)^2 - x} {2} 2y2+(xy)2x

由均值不等式(的扩展),上式大于等于:
( y + x − y 2 ) 2 − x 2 (\frac {y + x - y} {2})^2 - \frac {x} {2} (2y+xy)22x
当且仅当 y = x − y y = x - y y=xy 时等号成立。

所以尽量对分就可以了。

别人的思路

贪心。考虑新来一个人,往首字母相同的人较少的教室走对答案的贡献小,所以尽量对分就可以了。

考了个高考思维方向都变了(╯‵□′)╯︵┻━┻

参考代码
n = int(input())
name = [None] * n
for i in range(n):
    name[i] = input()
buf = [0] * 26
for i in range(n):
    buf[ord(name[i][0]) - ord('a')] += 1

ans = 0
for i in range(26):
    part1 = buf[i] // 2
    part2 = buf[i] - part1
    ans += (part1 * (part1 - 1)) // 2 + (part2 * (part2 - 1)) // 2
print(int(ans))
Python 学习笔记

ord 函数获取一个字符的编码。

>>> help(ord)
Help on built-in function ord in module builtins:

ord(c, /)
    Return the Unicode code point for a one-character string.

整数除法始终用 //,不然肯定蹦出个浮点数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CF 1166A Silent Classroom 的相关文章

  • CF 1166A Silent Classroom

    文章目录 传送门题目大意思路别人的思路参考代码Python 学习笔记 传送门 题目大意 有 n n 100
  • 在服务器端静默打印报表

    我正在尝试编写一个程序 允许我将 ssrs 报告 rdl 文件 从服务器端代码打印到预定打印机 而不会出现任何弹出窗口询问我要使用哪台打印机 这可以完成吗 EDIT还粘贴了代码ReportViewerDisposer我正在使用的实现 和班级
  • 在 iOS 6 中,如何在静音模式和锁定状态下开始播放音频?

    最终用户流程 Open app 打开 静音模式 按 锁定按钮 应用程序仍然可以在几小时后开始播放声音 而不是在此期间播放任何音频 执行此操作的应用程序 许多警报应用程序都设法做到这一点 我认为他们没有使用静音音频来保持应用程序运行 因为如果
  • 在 Windows 上从命令行下载最新的 Java SE 运行时环境 8

    在 Windows 服务器上 我正在寻找一种可靠的方法来从命令行下载最新的 Java SE 运行时 我的要求是检查系统上是否安装了java 如果没有找到java 我们的MSI安装程序 使用WIX创建 需要连接oracle java下载页面并
  • Android 静默 apk 更新

    我希望在我的应用程序中进行静默更新 无需任何用户交互 但我总是收到错误代码 139 硬件已root 有人可以帮忙吗 这是代码 public class UpdateAPK extends Activity protected void on
  • 添加内联注释后 Bash 命令停止工作

    在子 shell 中生成的新值的分配在没有尾随注释的情况下也可以工作 newname echo newname sed s TD oldnewTD TD r ftd1 但变量newname如果添加尾随注释 则保持不变 newname ech
  • 如何在不显示窗口的情况下运行PowerShell脚本?

    如何才能运行一个电源外壳 http en wikipedia org wiki Windows PowerShell脚本而不向用户显示窗口或任何其他标志 换句话说 脚本应该在后台安静地运行 而不向用户发出任何信号 不使用第三方组件的答案需额
  • 如何以一般方式使 Python 函数运行的可执行文件的终端输出静音?

    我想抑制运行可执行文件的函数产生的所有终端输出 我尝试使用上下文管理器来抑制 Python 函数的输出 该上下文管理器在每次调用函数时临时重新定义 stdout 和 stderr 这抑制了由产生的终端输出print在函数中调用 但当函数调用
  • Java JDK静默安装指定路径

    我想以静默模式 实际上是使用Chef 安装指定版本的JDK 我的问题是 当我添加 INSTALLDIR 参数时 Java JDK 安装失败 如果没有它 JDK 将安装在默认目录中 C 程序文件 Java or C 程序文件 x86 Java
  • 静默 Windows Installer 安装程序,无需自动重新启动

    目前我有一个MSI http en wikipedia org wiki Windows Installer它执行重大升级 并启动为 msiexec exe i installer msi qn REBOOT ReallySuppress
  • 在此 Visual Basic 脚本中需要帮助:以静默模式启动程序

    我正在尝试以静默模式启动程序来安装某个应用程序 以静默模式启动安装的命令行如下 setup exe s v q 我尝试使用以下内容 strCmd C setup exe s v q 但显然这是行不通的 任何人都可以帮助我编写正确的语法 我知
  • 如何让一个简单的Hello World在Windows中“隐形”(C/C++)

    你好 我想知道是否可以在 Windows 中使一个简单的 Hello World 程序 然后前进到实际的程序 不可见 我的意思是 当我执行该程序时 不会有任何图形指示 没有cmd打印 Hello world 没有任务栏标签 没有系统托盘图标
  • 将证书从驱动程序导入 TrustedPublisher 以进行静默驱动程序安装

    我想安装 Balloon 驱动程序以在 KVM 中运行 Windows 无需用户任何交互 静默安装 我使用 powershell 将驱动程序中的证书提取到某个临时文件 然后使用 certutil exe 将其导入到 TrustedPubli
  • 如何静默 cvxopt 求解器 [Python]?

    每当我在终端中运行 Python cvsopt 求解器时 它都会打印 pcost dcost gap pres dres 0 8 0742e 00 7 3715e 00 3e 03 5e 01 4e 15 1 6 6241e 01 7 28
  • iOS 静默推送通知仅在连接到 xcode 时有效

    我有一个奇怪的问题 我最近将 Xcode 更新到 6 1 1 以对我之前使用 Xcode 5 发布的应用程序进行更改 运行良好 现在 由于某种原因 当我使用新的 Xcode 测试后台静默推送通知时 它只有在我的 iPhone 连接到 Mac
  • 通过 C# 代码以不同用户身份静默运行 .bat 文件

    我每隔几秒运行一个批处理文件 使用以下代码与服务器进行时间同步 Process process new Process process StartInfo WorkingDirectory Environment GetFolderPath
  • NSIS - 静默自动更新应用程序

    我有一个适用于我的 net c 应用程序的 NSIS 安装工具包 考虑到我已经将新的更新 新的 NSIS 应用程序版本 下载到本地计算机 有没有办法静默自动更新我的应用程序 谢谢 如果您需要检测命令行 Autoupdate yes incl
  • 尽管手机设置了静音模式,但在 Android 通知中播放声音

    我的应用程序正在显示通知 并且当显示通知时 会播放声音 但是当我的手机处于 静音模式 时 不会播放通知 我想 覆盖 音量设置 并在设置了静音模式的情况下播放声音 有办法做到吗 您好 您可以使用 MediaPlayer 作为通知声音 方法是启
  • 运行时静默更新应用程序

    我的应用程序最初将使用 Windows Installer 进行部署 我正在寻找的解决方案的主要特征包括 支持应用程序静默更新 运行 或自动重启 客户 易于维护和管理包装 过程 避免复杂的定制或 安装脚本 您对我如何实现这一目标有什么想法吗
  • 以静默方式安装应用程序,并授予 INSTALL_PACKAGES 权限

    我正在尝试将 apk 静默安装到系统中 我的应用程序位于 system app 并成功授予权限 android permission INSTALL PACKAGES 但是我在任何地方都找不到如何使用此权限 我尝试将文件复制到 data a

随机推荐

  • Luogu 2305 [NOI 2014] 购票

    传送门思路别人家的题解弱化的传送门 xff08 Luogu 3994 高速公路 xff09 参考代码 对于没有距离限制的 50 分 参考代码 对于 100 分的数据参考代码Remarks 传送门 思路 唉 xff0c 我太弱了 xff0c
  • Luogu 1224 [NOI 2013] 向量内积

    传送门思路参考代码 传送门 思路 唉 xff0c 我太弱了 xff0c 什么都不会 xff0c 听都没有听说过这类题 xff0c 唉 xff0c 我太弱啦 xff01 显然这道题可以在 O n 2 d O n 2
  • Luogu 1397 [NOI 2013] 矩阵游戏

    传送门思路正解参考代码Remarks 传送门 思路 唉 xff0c 我太弱了 xff0c T1 都做不来 xff0c 唉 xff0c 我太弱啦 xff01 显然这个题可以用矩阵快速幂在 O log n O log n
  • Luogu 2414 [NOI 2011] 阿狸的打字机

    文章目录 传送门思路参考代码总结 传送门 思路 首先我们甚至不能单独保存每个字符串 xff0c 因为总长度可以达到 O n 2
  • kali新手入门教学(10)--ping的讲解

    Ping 是 Windows 和 Linux 都自带的一个扫描工具 xff0c 用于校验与远程计算机或本机的连接 只有在安装 TCP IP 协议之后才能使用该命令 Ping 命令通过向计算机发送 ICMP 回应 报文并且监听回应报文的返回
  • Luogu 3628 [APIO 2010] 特别行动队

    传送门思路参考代码 传送门 BZOJ 思路 设 f i f i 表示将 1 i 1 i 的士兵编
  • Luogu 1399 [NOI 2013] 快餐店

    传送门思路参考代码Remarks总结 传送门 思路 发现这是一棵环套树 那首先我们会想到树上的情况 如果这是一棵树 xff0c 我们自然会联想到树的直径 xff0c 自然会想到对于树而言 xff0c 答案为直径长度的一半 证明 用反证法 假
  • GDB for C++ in Linux

    这篇文章主要讲讲如何在 Linux 下使用 GDB xff0c 当然 xff0c 就指令而言在 Windows 下也适用 环境Items 编译启动退出加载文件查看源代码断点 插入断点删除断点 运行程序查看变量控制程序执行 继续下一步单步进入
  • CF 1000F One Occurrence

    传送门题目大意思路参考代码总结 时光如梭 xff0c Codeforces 的题号还是三位数的时代已经过去 xff1b 量子语言原来已经来临 传送门 题目大意 给定一个长度为 n n 的序列 a a xff0c 有 m m 个
  • CF 993E Nikita and Order Statistics

    传送门题目大意思路参考代码 传送门 题目大意 给你一个数组 a 1 n a 1 n xff0c 对于 k 61 0 n
  • CF 997A Convert to Ones

    传送门题目大意思路参考代码总结 传送门 题目大意 给你一个长度为 n n 3 10 5 n n 3 10
  • CF 997B Roman Digits

    传送门题目大意思路参考代码总结 传送门 题目大意 现在规定罗马数字只有 4 4 个字符 I V X L 分别代表 1 1 5 5 10 10 50 50
  • CF 997C Sky Full of Stars

    传送门题目大意思路参考代码总结 传送门 题目大意 有一个 n n n 10 6 n n n 10
  • CF 997D Cycles in product

    传送门题目大意思路参考代码总结Remarks参考代码 传送门 题目大意 给你大小分别为 n 1 n 1 和 n 2 n 2
  • NOI 2018 游记

    Day 2Day 1Day 0Day 1Day 2Day 3Day 4Day inftyDay 5 Day 2 昨天打完了最后一个一场模拟赛 xff0c 又垫底啦 xff01 本来之前我很少垫底的 xff0c 不知道为什么最后四场模拟赛一直
  • MySQL集群架构

    第1节 集群架构设计 在集群架构设计时 xff0c 主要遵从下面三个维度 xff1a 可用性 扩展性 一致性 1 1 可用性设计 站点高可用 xff0c 冗余站点 xff1b 服务高可用 xff0c 冗余服务 xff1b 数据高可用 xff
  • CF 1008D Pave the Parallelepiped

    传送门题目大意 样例输入样例输出样例解释 思路参考代码总结 传送门 题目大意 给你一个 A B C A B C 的长方体 xff0c 你要把它切成很多块大小都是 a b c
  • Direct2D 学习笔记

    文章目录 Direct2DD2D 是什么D2D 适合谁开发环境发布平台入门我能找到例子吗一 第一个 D2D 程序 Hello Direct2D1 工厂2 呈现器3 渲染4 运行结果 二 Direct2D 画图实践 Random Graphi
  • Python 学习笔记——入门

    文章目录 Python 是什么一 推荐的教程二 这篇学习笔记适合什么人三 环境1 操作系统对于 Windows对于 Ubuntu对于其他操作系统 2 Python对于 Windows安装步骤1 下载2 安装 测试是否成功安装退出 Pytho
  • CF 1166A Silent Classroom

    文章目录 传送门题目大意思路别人的思路参考代码Python 学习笔记 传送门 题目大意 有 n n 100