NOIP 模擬試題之小凱的疑惑題解

2021-09-02 20:26:03 字數 1056 閱讀 3609

-提取碼:31p6

◆描述小凱手中有兩種面值的金幣,兩種面值均為正整數且彼此互素。每種金幣小凱都有 無數個。在不找零的情況下,僅憑這兩種金幣,有些物品他是 無法準確支付的。現在小凱想知道在無法準確支付的物品中,最貴的價值是多少金幣?注意:輸入資料保證存在小凱無法準確支付的商品。

◆輸入輸入資料僅一行,包含兩個正整數 a 和 b,它們之間用乙個空格隔開,表示小凱手 中金幣的面值。

◆輸出輸出檔案僅一行,乙個正整數 n,表示不找零的情況下,小凱用手中的金幣不能準確支付的最貴的物品的價值。

◆樣例輸入

3 71

◆樣例輸出111

◆樣例說明

小凱手中有面值為3和7的金幣無數個,在不找零的前提下無法準確支付價值為1、 2、4、5、8、11 的物品,其中最貴的物品價值為 11,比 11 貴 的物品都能買到,比如:

12=3×4+7×0

13=3×2+7×1

14=3×0+7×2

15=3×5+7×0

◆資料範圍與約定

對於 30%的資料: 1≤a,b≤50。

對於 60%的資料: 1≤a,b≤104。

對於 100%的資料:1≤a,b≤109 。

②涉及數學知識補充:

◆同余於(≡): b)等價於a=kb+m)

◆剩餘類:

◆完全剩餘系:完全剩餘系/3712670?fr=aladdin

③解題思路

因為(a,b)=1,所以為模b的完全剩餘系。

設錢數為t,則t一定滿足(因為為模b的完全剩餘系):t≡ka(mod b),(0≤k≤b−1)。

若t≥ka,則t一定可以表示為ka+nb,(n≥0),所以t<0)則此時t最大為ka−b,

顯然,當k最大時t最大,所以t=(b−1)a−b=ab−a−b。

④**#include

using namespace std;

int main()

{int long long a,b,t;

cin>>a>>b;

t=a*b-a-b;

cout<⑤一題多解

找規律:

原文:

NOIP2017 小凱的疑惑

簡化一下問題,就是對於ax by c,求乙個最大的c,使得方程不存在非負整數解。我們設有一組特解 x0,y0 那麼根據此類直線方程的性質,則通解可表示為 x0 kb,y0 ka 顯然,存在一組特解 x1,y1 使得0 x1 b 1,我們試圖研究那些不存在非負整數解的情況,所以設y1 1。此時,c a...

題解 神奇校內POIN模擬賽 小凱的疑惑

題外話 sol 套路 我 這是什麼神仙思路?給定一棵有 n 個節點的樹,你可以選擇一些點,這些點不能相鄰 你所得到的總價值為這些節點的權值的乘積 求最大的價值 mod 998244353 考慮乙個神奇的東西 對數 顯然我們有 如果 ab c 那麼 log x a log x b log c 所以,問...

提高組NOIP2017 小凱的疑惑(附證明)

小凱的疑惑 描述小凱手中有兩種面值的金幣,兩種面值均為正整數且彼此互素。每種金幣小凱都有 無數個。在不找零的情況下,僅憑這兩種金幣,有些物品他是無法準確支付的。現在小 凱想知道在無法準確支付的物品中,最貴的價值是多少金幣?注意 輸入資料保證存在 小凱無法準確支付的商品 輸入輸入資料僅一行,包含兩個正...