A4935 | 【模板】二元一次不定方程 (exgcd)
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
给定不定方程
$$ax+by=c$$
若该方程无整数解,输出 $-1$。
若该方程有整数解,且有正整数解,则输出其**正整数**解的数量,所有**正整数**解中 $x$ 的最小值,所有**正整数**解中 $y$ 的最小值,所有**正整数**解中 $x$ 的最大值,以及所有**正整数**解中 $y$ 的最大值。
若方程有整数解,但没有正整数解,你需要输出所有**整数解**中 $x$ 的最小正整数值, $y$ 的最小正整数值。
正整数解即为 $x, y$ 均为正整数的解,$\boldsymbol{0}$ **不是正整数**。
整数解即为 $x,y$ 均为整数的解。
$x$ 的最小正整数值即所有 $x$ 为正整数的整数解中 $x$ 的最小值,$y$ 同理。
$$ax+by=c$$
若该方程无整数解,输出 $-1$。
若该方程有整数解,且有正整数解,则输出其**正整数**解的数量,所有**正整数**解中 $x$ 的最小值,所有**正整数**解中 $y$ 的最小值,所有**正整数**解中 $x$ 的最大值,以及所有**正整数**解中 $y$ 的最大值。
若方程有整数解,但没有正整数解,你需要输出所有**整数解**中 $x$ 的最小正整数值, $y$ 的最小正整数值。
正整数解即为 $x, y$ 均为正整数的解,$\boldsymbol{0}$ **不是正整数**。
整数解即为 $x,y$ 均为整数的解。
$x$ 的最小正整数值即所有 $x$ 为正整数的整数解中 $x$ 的最小值,$y$ 同理。
输入格式
第一行一个正整数 $T$,代表数据组数。
接下来 $T$ 行,每行三个由空格隔开的正整数 $a, b, c$。
接下来 $T$ 行,每行三个由空格隔开的正整数 $a, b, c$。
输出格式
$T$ 行。
若该行对应的询问无整数解,一个数字 $-1$。
若该行对应的询问有整数解但无正整数解,包含 $2$ 个由空格隔开的数字,依次代表整数解中,$x$ 的最小正整数值,$y$ 的最小正整数值。
否则包含 $5$ 个由空格隔开的数字,依次代表正整数解的数量,正整数解中,$x$ 的最小值,$y$ 的最小值,$x$ 的最大值,$y$ 的最大值。
**读入输出量较大,注意使用较快的读入输出方式**
若该行对应的询问无整数解,一个数字 $-1$。
若该行对应的询问有整数解但无正整数解,包含 $2$ 个由空格隔开的数字,依次代表整数解中,$x$ 的最小正整数值,$y$ 的最小正整数值。
否则包含 $5$ 个由空格隔开的数字,依次代表正整数解的数量,正整数解中,$x$ 的最小值,$y$ 的最小值,$x$ 的最大值,$y$ 的最大值。
**读入输出量较大,注意使用较快的读入输出方式**
输入输出样例
输入 #1
7 2 11 100 3 18 6 192 608 17 19 2 60817 11 45 14 19 19 810 98 76 5432
输出 #1
4 6 2 39 8 2 1 -1 1600 1 18 3199 30399 34 3 -1 2 12 7 50 56
**【数据范围】**
对于 $100\%$ 的数据,$1 \le T \le 2 \times {10}^5$,$1 \le a, b, c \le {10}^9$。
对于 $100\%$ 的数据,$1 \le T \le 2 \times {10}^5$,$1 \le a, b, c \le {10}^9$。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?