10789 神秘指数 数组 枚举 check
解决思路
- 计算总和:首先计算所有神秘物品的神秘指数和 sum。
- 枚举分组数:从 n 开始枚举分组数 i,尝试将神秘物品分成 i 组。
- 检查分组可行性:对于每个分组数 i,检查是否可以将神秘物品分成 i 组且每组的神秘指数和相同。
- 输出结果:找到最小的可行分组数 i,输出每组的神秘指数和。
#include <bits/stdc++.h> #define ll long long using namespace std; const int N = 1e3 + 10; int n, a[N], sum; // 检查是否可以将神秘物品分成 x 组且每组的神秘指数和相同 bool check(int x) { int val = sum / x; // 每组的目标和 int cnt = 0; // 当前组的和 for (int i = 1; i <= n; i++) { cnt += a[i]; if (cnt == val) { cnt = 0; // 当前组和达到目标,开始新的一组 } else if (cnt > val) { return false; // 当前组和超过目标,分组失败 } } return cnt == 0; // 检查最后一组是否正好达到目标和 } int main() { // 读取神秘物品的数量 cin >> n; // 读取每个神秘物品的神秘指数值,并计算总和 for (int i = 1; i <= n; i++) { cin >> a[i]; sum += a[i]; } // 从 n 开始枚举分组数,找到最小的可行分组数 for (int i = n; i >= 1; i--) { if (sum % i == 0 && check(i)) { cout << sum / i; // 输出每组的神秘指数和 break; } } return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2022-09-30 TZOJ 3692: 紧急援救 最短路/dijstra