P2371-[國家集訓隊]墨墨的等式【同餘最短路】
正題
題目連結:https://www.luogu.com.cn/problem/P2371
題目大意
n n n個 a i a_i ai,求有多少個 b ∈ [ l , r ] b\in[l,r] b∈[l,r]滿足 ∑ i = 1 n a i x i = b \sum_{i=1}^na_ix_i=b ∑i=1naixi=b有正整數解。
解題思路
因為有一個 a 1 a_1 a1在,而且 x 1 x_1 x1可以是任意正整數,所以如果在 b b b很大的情況下,能夠湊出一個數 k k k使得 k % a 1 = b % a 1 k\% a_1=b\% a_1 k%a1=b%a1那就能湊出 b b b。
所以我們設 f i f_i fi表示能湊出的最小的 k k k使得 k % a 1 = i k\% a_1=i k%a1=i。然後最短路轉移即可。
時間複雜度 O ( a 1 n ) O(a_1n) O(a1n)
c o d e code code
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#define ll long long
using namespace std;
const ll N=5e5+10;
struct node{
ll to,next,w;
}a[N*20];
struct point{
ll x,dis;
};
bool operator<(point x,point y)
{return x.dis>y.dis;}
priority_queue<point> q;
ll n,m,l,r,tot,f[N],ls[N],w[N];
bool v[N];
void addl(ll x,ll y,ll w){
a[++tot].to=y;
a[tot].next=ls[x];
a[tot].w=w;
ls[x]=tot;return;
}
void Dij(){
memset(f,0x3f,sizeof(f));
f[0]=0;q.push((point){0,0});
while(!q.empty()){
ll x=q.top().x;q.pop();
if(v[x])continue;v[x]=1;
for(ll i=ls[x];i;i=a[i].next){
ll y=a[i].to;
if(f[x]+a[i].w<f[y]){
f[y]=f[x]+a[i].w;
if(!v[y])q.push((point){y,f[y]});
}
}
}
return;
}
ll get(ll x){
ll ans=0;
for(ll i=0;i<m;i++)
if(x>=f[i])ans+=(x-f[i])/m+1;
return ans;
}
int main()
{
scanf("%lld%lld%lld",&n,&l,&r);
for(ll i=1;i<=n;i++)
scanf("%lld",&w[i]);
for(ll i=1;i<=n;i++)
if(!w[i])swap(w[i],w[n]),n--;
sort(w+1,w+1+n);m=w[1];
for(ll i=2;i<=n;i++){
for(ll j=0;j<m;j++)
addl(j,(j+w[i])%m,w[i]);
}
Dij();
printf("%lld",get(r)-get(l-1));
}
相關文章
- [國家集訓隊] Tree I
- 淺談同餘最短路
- [國家集訓隊] Crash的數字表格 / JZPTAB
- P1501 [國家集訓隊]Tree II
- P1407 [國家集訓隊] 穩定婚姻
- 同餘最短路學習筆記筆記
- CSP2024-11 + 同餘最短路
- 墨刀
- 洛谷P1494 [國家集訓隊]小Z的襪子(莫隊)
- 【演算法學習】同餘最短路演算法
- 家國大愛華夏古韻,《凌雲諾》筆墨下的國風世界
- P1505 [國家集訓隊]旅遊 (樹鏈剖分)
- 邂逅 CODING ,墨刀測試團隊實現「質」的飛躍
- 落谷 P3403 跳樓機(同餘最短路)
- C112 莫隊演算法 P1494 [國家集訓隊] 小 Z 的襪子演算法
- 墨者安全淺談音樂版權的獨家與共享
- 藍湖 Axure 墨刀
- P2757 [國家集訓隊] 等差子序列 與 CF452F Permutation
- 墨刀原型設計——ClubSphere原型
- 墨天輪徵文令,我的DBA之路
- 小墨學習記--微服務微服務
- 印表機噴墨和鐳射哪個好 噴墨印表機和鐳射印表機的區別
- 集訓隊互測 2024
- 省隊集訓遊記
- 墨天輪雲主機 openGauss 資料庫免費實訓平臺資料庫
- SphereEx 亮相 openGauss Summit 2021,同雲和恩墨簽訂戰略合作協議MIT協議
- 同餘
- 原型設計工具介紹——墨刀原型
- 墨刀——原型設計工具介紹原型
- 墨蕭:透露一個大訊息!!
- [集訓隊互測2016] Unknown
- 最短路:求最長最短路
- 最短路 || 最長路 || 次短路
- 2023年1月國產資料庫大事記-墨天輪資料庫
- 2022年11月國產資料庫大事記-墨天輪資料庫
- 2022年12月國產資料庫大事記-墨天輪資料庫
- 2022年10月國產資料庫大事記-墨天輪資料庫
- 2022年5月國產資料庫大事記-墨天輪資料庫