1 条题解
-
0
自动搬运
来自洛谷,原作者为

Alex_Wei
**搬运于
2025-08-24 22:44:48,当前版本为作者最后更新于2023-02-08 10:13:50,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
条件四要求 ,结合条件三要求 (反证法易证)。
当 时,条件三要求集合内所有数均为 ,结合条件四,合法集合仅有 。
当 时,条件三满足,条件四形如 。
设 所有非最大值且非零数集合为 。
感性理解 不会太大( 增长时, 的最小值以平方级别增长)。手玩可知:
- 不可能。
- 时,(最大值可为 或 任意值)。
- 时,(最大值可为 或 任意值)或 (最大值为 )。
- 时,(最大值为 )。
- 时,就算最大值为 ,那么 中所有数之和也至少为 。
- 类似可证对于更大的 ,同样无解。
注意集合内可以有任意正整数个 。根据上述分析计算答案即可。
时间复杂度 。
#include <bits/stdc++.h> using namespace std; long long n, k; long long solve() { cin >> n >> k; if(k == 1) return 0; long long ans = 0; if(k >= 4) { ans += 1 + max(0ll, n - 2); if(n >= 2) ans += 1 + max(0ll, n - 3); } if(k >= 5) { if(n >= 2) ans++; if(n >= 3) ans++; } if(k == 2) ans++; return ans; } int main() { #ifdef ALEX_WEI freopen("1.in", "r", stdin); freopen("1.out", "w", stdout); #endif ios::sync_with_stdio(0); cin.tie(0), cout.tie(0); int T; cin >> T; while(T--) cout << solve() << "\n"; return 0; }
- 1
信息
- ID
- 8173
- 时间
- 2000ms
- 内存
- 512MiB
- 难度
- 4
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者