CSP-SJX2019 解题报告
2024-10-18 18:28:25
T1 日期
- 日高于 \(31\) 或等于 \(00\) 的要修改 \(1\) 次。
- 月高于 \(12\) 或等于 \(00\) 的要修改 \(1\) 次。
- 月等于 \(02\) 且日大于 \(28\) 的要修改一次。
- 月等于 \(04,06,09,11\) 且日等于 \(31\) 的要修改一次。
T2
这种套路的东西,显然要枚举右端点。
假设某一段 \(a\) 的和为 \(x\),\(b\) 的和为 \(y\),新加入 \(i\) 位置,那么新产生的贡献为
\[\left(x+a_i\right)\left(y+b_i\right)-xy=xb_i+ya_i+a_ib_i
\]
\]
记一下以 \(i\) 位置结尾的段的和即可,具体地,\(a_i\) 和 \(b_i\) 的贡献次数均为 \(i\) 次,所以处理完后分别加上 \(a_i\times i\) 和 \(b_i\times i\)。
T3 网格图
我寻思着这只是加速克鲁斯卡尔算法,也不用剖析什么本质吧……
因为每行每列的边权分别相同,所以每次肯定连完以行或一列的边。
先把最小的行和列连了,假设连了 \(i\) 行和 \(j\) 列,新连一行会有 \(j-1\) 个点连过边了,只需要连 \(m-j\) 条新的边;新连一列会有 \(i-1\) 个点连过边了,只需要连 \(n-i\) 条新的边。
黑色代表未处理过的行列,空白代表不需要连的边,红色代表在列上连的边,绿色代表在行上连的边,蓝色代表新连的边。
为什么是正确的呢?因为本题的性质保证了只会有一个大连通块和没连过边的点。
最新文章
- mysql:ibdata1和mysql-bin log管理
- [leetcode] 题型整理之图论
- uboot(二): Uboot-arm-start.s分析
- 经验总结:HTTP返回505错误小记
- 打开office2010里面的access,总是提示要配置Office single image
- L004-oldboy-mysql-dba-lesson04
- Android EditText中插入图片并响应点击事件
- 完美atoi,哈哈
- hdu 1425 sort
- ABP+AdminLTE+Bootstrap Table权限管理系统第十节--AdminLTE模板菜单处理
- 初识Avro
- vuex学习
- Spring系列(五) 容器初始化过程源码
- Confluence 6 配置站点主页面
- c++矩阵运算库Eigen简介
- MySQL utf8 和 utf8mb4 的区别
- CM记录-配置Hive on Spark
- DFS剪枝处理HDU1010
- too many open file /etc/security/limits.conf
- eFPGA与FPGA SoC,谁将引领下一代可编程硬件之潮流?|半导体行业观察