题目描述 猪猪 Hanke 特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke 吃鸡很特别,为什么特别呢?因为他有 10 种配料(芥末、孜然等),每种配料可以放 1 到 3 克,任意烤鸡的美味程度为所有配料质量之和。 现在, Hanke 想要知道,如果给你一个美味程度 n ,请输出这 10 种配料的所有搭配方案。 输入 一个正整数 n,表示美味程度。 输出 第一行,方案总数。 第二行至结束,10 个数,表示每种配料所放的质量,按字典序排列。 如果没有符合要求的方法,就只要在第一行输出一个 0 样例输入 复制 11 样例输出 复制 10 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1
```cpp #include <iostream> #include <vector> using namespace std; int main() { int n; cin >> n; // 10种配料,每种1-3克,总和范围10-30 if (n < 10 || n > 30) { cout << 0 << endl; return 0; } vector<vector<int>> solutions; vector<int> current(10, 1); // 初始化为全1 // 暴力枚举所有可能的配料组合 for (int a = 1; a <= 3; a++) for (int b = 1; b <= 3; b++) for (int c = 1; c <= 3; c++) for (int d = 1; d <= 3; d++) for (int e = 1; e <= 3; e++) for (int f = 1; f <= 3; f++) for (int g = 1; g <= 3; g++) for (int h = 1; h <= 3; h++) for (int i = 1; i <= 3; i++) for (int j = 1; j <= 3; j++) { if (a + b + c + d + e + f + g + h + i + j == n) { vector<int> solution = {a, b, c, d, e, f, g, h, i, j}; solutions.push_back(solution); } } // 输出结果 cout << solutions.size() << endl; for (const auto& sol : solutions) { for (int k = 0; k < 10; k++) { cout << sol[k]; if (k < 9) cout << " "; } cout << endl; } return 0; } ``` 代码说明: 1. 边界检查:10种配料各放1克时总和为10,各放3克时总和为30。输入n不在[10,30]范围内时直接输出0。 2. 暴力枚举:使用10层循环遍历所有可能的配料组合(3^10 = 59049种情况)。 3. 条件筛选:检查当前组合的总和是否等于目标美味程度n。 4. 结果存储:符合条件的组合存入vector中,自动保持字典序(循环顺序保证了这一点)。 5. 输出格式:第一行输出方案总数,后续每行输出一个方案,数字间用空格分隔。 时间复杂度:O(3^10) ≈ 59049次循环,在合理范围内。 空间复杂度:O(m×10),m为有效方案数。 [2025-12-31 12:27:44 | AI问答 | 596点数解答]
- [DeepSeek] 题目描述 猪猪 Hanke 特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke 吃鸡很特别,为什么特别呢?因为他有 10 种配料(芥末、孜然等),每种配料可以放 1 到 3 克,任意烤鸡的美味程度为所有配料质量之和。 现在, Hanke 想要知道,如果给你一个美味程度 n ,请输出这 10 种配料的所有搭配方案。 输入 一个正整数 n,表示美味程度。 输出 第一行,方案总数。 第二行至结束,10 个数,表示每种配料所放的质量,按字典序排列。 如果没有符合要求的方法,就只要在第一行输出一个 0 样例输入 复制 11 样例输出 复制 10 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 (596点数解答 | 2025-12-31 12:27:44)22
- [DeepSeek] 通常,人们习惯将所有 位二进制串按照字典序排列,例如所有 2 位二进制串按字典序从小到大排列为:00,01,10,11。 格雷码(Gray Code)是一种特殊的 位二进制串排列法,它要求相邻的两个二进制串间**恰好**有一位**不同**,特别地,第一个串与最后一个串也算作相邻。 所有 2 位二进制串按格雷码排列的一个例子为:00,01,11,10。 位格雷码不止一种,下面给出其中一种格雷码的生成算法: 1. 1 位格雷码由两个 1 位二进制串组成,顺序为:0,1。 2. 位格雷码的前 个二进制串,可以由依此算法生成的 位格雷码(总共 个 位二进制串)按**顺序**排列,再在每个串前加一个前缀 0 构成。 3. 位格雷码的后 个二进制串,可以由依此算法生成的 位格雷码(总共 个 位二进制串)按**逆序**排列,再在每个串前加一个前缀 1 构成。 综上, 位格雷码,由 位格雷码的 个二进制串按顺序排列再加前缀 0,和按逆序排列再加前缀 1 构成,共 个二进制串。另外,对于 位格雷码中的 个 二进制串,我们按上(443点数解答 | 2026-01-05 12:21:49)26
- [字节豆包] 题目描述 输入三个整数 x , y , z x,y,z, 如果 x x为奇数,输出 1 ∼ y 1∼y之间的所有数,如果 x x为偶数,输出 1 ∼ z 1∼z之间的所有数。 输入格式 输入包括一行,包含三个整数 x , y , z x,y,z,数字之间用空格隔开。 输出格式 输出包括一行 如果 x x为奇数,输出 1 ∼ y 1∼y之间的所有数,如果 x x为偶数,输出 1 ∼ z 1∼z之间的所有数,输出时,数与数之间用1个空格隔开。 input1 复制 1 10 5 output1 复制 1 2 3 4 5 6 7 8 9 10 input2 复制 4 20 4 output2 复制 1 2 3 4 样例解释 对于样例 1 1: x x是奇数, y = 10 y=10,因此输出 1 ∼ 10 1∼10。 对于样例 2 2: x x是偶数, z = 10 z=10,因此输出 1 ∼ 4 1∼4 。 c++ (391点数解答 | 2025-06-14 09:57:45)309
- [字节豆包] 用C++给定一个整数 N N,判断其正负。如果 N > 0 N>0,输出 p o s i t i v e positive; 如果 N = 0 N=0,输出 z e r o zero; 如果 N < 0 N<0,输出 n e g a t i v e negative。 输入 一个整数 N ( − 10 9 ≤ N ≤ 10 9 ) N(−10 9 ≤N≤10 9 )。 输出 如果 N > 0 N>0, 输出 p o s i t i v e positive; 如果 N = 0 N=0, 输出 z e r o zero; 如果 N < 0 N<0, 输出 n e g a t i v e negative。 回答篇幅:越详细越好(610点数解答 | 2026-01-24 22:28:14)36
- [字节豆包] 用C++给定一个整数 N N,判断其正负。如果 N > 0 N>0,输出 p o s i t i v e positive; 如果 N = 0 N=0,输出 z e r o zero; 如果 N < 0 N<0,输出 n e g a t i v e negative。 输入 一个整数 N ( − 10 9 ≤ N ≤ 10 9 ) N(−10 9 ≤N≤10 9 )。 输出 如果 N > 0 N>0, 输出 p o s i t i v e positive; 如果 N = 0 N=0, 输出 z e r o zero; 如果 N < 0 N<0, 输出 n e g a t i v e negative。(150点数解答 | 2026-01-24 22:29:16)39
- [字节豆包] 给你一个正整数 ,输出A的最高位的比特与最低位的比特。 例如,给你 A=26,我们可以将A化成二进制为 11010 则A 的最高数是 10000,输出 10000 的十进制为 16。 则A 的最低数是 10,输出 10 的十进制为 2。 再例如,给你 A=88,我们可以将A化成二进制为 1011000 则A的最高数是1000000,输出为64。 则A的最低数是1000,输出为8。 输入 每行输入一个正整数 。 输出 输出对应的最高数,最低数,一行一个。 样例输入 复制 88 样例输出 复制 64 8 来源/分类 数论 位运算(398点数解答 | 2026-01-23 19:47:50)29
- [DeepSeek] 给你一个正整数 ,输出A的最低数。 例如,给你 A=26,我们可以将A化成二进制为 11010 ,则A 的最低数是 10,输出 10 的十进制为 2。 再例如,给你 A=88,我们可以将A化成二进制为 1011000,则A的最低数是1000,输出为8。 输入 输入包含多组测试样例。每行输入一个正整数 。当输入 0 时,输入结束。 输出 对于每一个输入,输出对应的最低数。 样例输入 复制 26 88 0 样例输出 复制 2 8(775点数解答 | 2026-01-23 19:40:10)24
- [字节豆包] (1)设计pci抽象类,接口内有约定设备启动的start()方法、约定设备关闭的stop()方法 (2)设计描述显卡的displaycard类、描述声卡的soundcard类和描述网卡的netcard类,这三个都是pci的子类,因此具有了pci接口中声明的设备启动start方法和设备关闭stop方法 (3)设计描述主板的mainboard类,该类中有一个pci类型的数组,描述主板提供的5个插槽,有一个add(pci device)方法,实现向主板插入指定pci设备device,有一个run()方法,实现依次启动主板上的所有pci设备,有一个stop()方法,实现依次关闭主板上所有pci设备 (4)设计计算机类computer类,该类有一个私有的mainboard类型的成员变量cmb, 有一个start()方法,实现开机、运行主板设备的功能;有一个stop()方法,实现关机,停止主板设备的功能 (5)设计computertest主类,在main方法中,创建computer类型的对象com,并通过方法调用模拟启动计算机,关闭计算机操作。(716点数解答 | 2024-12-08 23:38:38)296
- [字节豆包] 模拟实现如下情形:计算机包括主板,主板上有5个pci插槽,可插装显卡、声卡、网卡等pci设备。主板启动时,依次启动主板上的各个pci设备,关机时,依次关闭主板上的各个pci设备。 (1)设计pci抽象类,接口内有约定设备启动的start()方法、约定设备关闭的stop()方法 (2)设计描述显卡的displaycard类、描述声卡的soundcard类和描述网卡的netcard类,这三个都是pci的子类,因此具有了pci接口中声明的设备启动start方法和设备关闭stop方法 (3)设计描述主板的mainboard类,该类中有一个pci类型的数组,描述主板提供的5个插槽,有一个add(pci device)方法,实现向主板插入指定pci设备device,有一个run()方法,实现依次启动主板上的所有pci设备,有一个stop()方法,实现依次关闭主板上所有pci设备 (4)设计计算机类computer类,该类有一个私有的mainboard类型的成员变量cmb, 有一个start()方法,实现开机、运行主板设备的功能;有一个stop()方法,实现关机,停止主板设备的功能 (5)设计co(637点数解答 | 2024-12-09 08:31:54)269
- [字节豆包] 用python写出来 给定一个整数 N N ,判断其正负。如果 N > 0 N>0 ,输出positive;如果 N = 0 N=0 ,输出zero;如果 N < 0 N<0 ,输出negative。 输入格式 一个整数 N N( − 10 9 ≤ N ≤ 10 9 −10 9 ≤N≤10 9 )。 输出格式 如果 N > 0 N>0, 输出positive; 如果 N = 0 N=0, 输出zero; 如果 N < 0 N<0, 输出negative。(45点数解答 | 2026-01-29 17:03:54)15
- [字节豆包] 对于一个长度为 的整数数列: ,我们称之为接龙数列当且仅当 的首位数字恰好等于 的末位数字 。 例如 是接龙数列; 不是接龙数列,因为 的首位数字不等于 的末位数字。 所有长度为 的整数数列都是接龙数列。 现在给定一个长度为 的数列 ,请你计算最少从中删除多少个数,可以使剩下的序列是接龙序列? 输入 第一行包含一个整数 。 第二行包含 个整数 。 对于 100% 的数据,, 。所有 保证不包含前导 。 输出 一个整数代表答案。 样例输入 复制 5 11 121 22 12 2023 样例输出 复制 1 提示 删除 22,剩余 11, 121, 12, 2023 是接龙数列。 (493点数解答 | 2025-12-13 10:25:59)40
- [字节豆包] 题目描述 在甜甜圈王国中,每颗甜甜圈都有一个甜度值 S 来衡量其甜蜜程度。根据甜度的不同,甜甜圈被评定为不同的等级,具体规则如下: 如果 S 在 0 到 25 之间(包含 0 和 25 ),输出 "普通甜甜圈"; 如果 S 在 26 到 50 之间(包含 26 和 50 ),输出 "美味甜甜圈"; 如果 S 在 51 到 75 之间(包含 51 和 75 ),输出 "极品甜甜圈"; 如果 S 在 76 到 99 之间(包含 76 和 99 ),输出 "绝世甜甜圈"; 如果 S 等于 100 ,输出 "传说甜甜圈"。 请根据给定的甜度值 S,输出对应的甜甜圈等级名称。 输入格式 一行一个整数 S,表示甜甜圈的甜度值。(243点数解答 | 2025-12-06 18:35:50)61