- 数字分配
思路
- @ 2025-1-23 15:28:01
每个数 1~7
1 2 3 4 5 6 7
三个一组
a<b<c
b%a==0 c%b==0
1 2 4 1 2 6 1 3 6
第一步 统计下所有数出现的次数
如果 5 或者7 出现了 直接-1 结束
n = 12 一定要有几个1?
马上就可以判断1的个数 arr[1]!=n/3; -1结束
1 1 1 1 4 4 4 2 2 6 3 3
arr[2] -= arr[4] ; 剩下的就是和6配的个数
arr[6] -= arr[3] ; 剩下的就是和2配的个数
arr[2] 和 arr[6]的值要>=0
if(arr[2] == arr[6]) OK
根据4的个数 输出 1 2 4
根据3的个数 输出 1 3 6
根据2的个数 输出 1 2 6
2 条评论
-
wrj LV 2 SU @ 2026-4-4 12:01:36
#include<bits/stdc++.h> using namespace std; //数字分配 数组计数 int main() { 一共n个数 n是3的倍数 每个数最大为 7 n个数 分成 n/3组 满足条件 1 a < b < c 2 b%a==0 c%b==0 1 2 3 4 5 6 7 1 2 4 1 3 6 1 2 6 1筛选 如果有 5 || 7 直接 -1 return 0 如果 1的个数!= n/3 -1 4 <= 2 2 = 4 + 6 - 3 3 = 6 - 2 如果成功 根据4的个数输出 1 2 4 根据2-4的个数 输出1 2 6 根据3 的个数 输出1 3 6 return 0; } -
@ 2025-4-5 12:01:31
6 1 1 1 2 2 2 a<b<c 三个不一样的数 b%a==0 && c%b==0 1~7 1 3 6 1 2 6 1 2 4 第一步 如果有5 或者有7 一定不行 n个数 可以形成n/3组 1的次数可以确定 1个个数 不对也不行 如果1是正好的 2 3 4 6 3的个数 <= 6 arr[6]-=arr[3]; arr[6]里面就应该是6和2配的个数 4的个数 <= 2 arr[2]-=arr[4]; 剩下的2和剩下的6 现在的一定 arr[2] == arr[6]; //讨论的就是配比的问题 , 要恰好配平 ,一定先去配平最特殊的 1 3 6 根据 arr[3]的个数输出 1 2 4 根据 arr[4]的个数输出 1 2 6 根据 arr[2]的个数输出
- 1
信息
- ID
- 33
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 100
- 已通过
- 25
- 上传者