P2371 國家集訓隊 墨墨的等式

2022-06-13 20:36:12 字數 757 閱讀 7087

p2371 國家集訓隊 墨墨的等式

同餘最短路,考慮直接用最小的代價拼出來在膜最小 \(a_i\) 意義下的餘數。然後不停地累加最小的 \(a_i\)(一下稱它 \(a_\)) 就行了。

正確性:假定 \(i,j,k\) 為膜 \(a_\) 下的餘數,令 \(i+j \equiv k (\mod a_)\) 那麼顯然 \(i+j = t \cdot a_ + k\) (\(t\) 為任意非負整數)

那麼在 \(k + t \cdot a_\) 一定可以全覆蓋 \((i+j) + t \cdot a_\)

#include #include #include #include #include using namespace std;

typedef long long ll;

const ll maxn = 6e6+10;

const ll maxm = 5e5+10;

struct edge e[maxn];

ll a[maxm], n, head[maxm], cnt = -1, vis[maxm], dis[maxm], l, r, ans;

void add(ll, ll, ll);

void spfa(ll);

int main()

printf("%lld\n", ans);

return 0;

}void spfa(ll st) }}

}}void add(ll x, ll y, ll v)

最短路構造 P2371 國家集訓隊 墨墨的等式

更加感性的理解就是求乙個dis i 表示由n個 a i 求和 modt 為 i 的最小值 這樣就可以先跑一遍最短路,算出dis,然後從0到t 1走一遍,算出在bmin bmax有多少數就行了 includeusing namespace std define pli pairconst int ma...

P2371 國家集訓隊 墨墨的等式 同餘最短路

傳送門 題意 思路 乙個同於最短路的板子題,初始的時候值為0,所以設dis 0 0dis 0 0 dis 0 0,讓後選擇乙個最小的a i a i a i 作為b as ebase base 跑一遍同餘最短路就好啦。跑完dis i dis i dis i 表示在模bas ebase base 的意義...

P2371 國家集訓隊 墨墨的等式(同餘最短路)

題目大意 給定 n nn 個整數 a ia i ai 和 l,r l,rl,r 求 i 1nai xi n n l,r sum na ix i n n in l,r i 1n ai x i n n l,r 有多少組非負整數解 題目分析 同樣是同餘最短路的模型,還是套路的取 a 1a 1 a1 作為 ...