BZOJ 2612 [Poi2003]Sums(最短路)
2017-08-05 14:42
423 查看
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=2612
【题目大意】
给定a数组,问num能否被表示为a[1]*x[1]+a[2]*x[2]+……+a
*x
,x为非负整数
【题解】
设a1为最小数字,
若方程a[1]*x[1]+a[2]*x[2]+……+a
*x
=k存在非负整数解,那么k+a1也必然有解。
建立a1个点的图,点编号为0到a1-1,i向(i+aj)%a1连边,边权为aj,求src为0的最短路,
如果dis[k%a1]<=k,那么k有解。
【代码】
【题目大意】
给定a数组,问num能否被表示为a[1]*x[1]+a[2]*x[2]+……+a
*x
,x为非负整数
【题解】
设a1为最小数字,
若方程a[1]*x[1]+a[2]*x[2]+……+a
*x
=k存在非负整数解,那么k+a1也必然有解。
建立a1个点的图,点编号为0到a1-1,i向(i+aj)%a1连边,边权为aj,求src为0的最短路,
如果dis[k%a1]<=k,那么k有解。
【代码】
#include <cstdio> #include <algorithm> #include <vector> #include <utility> #include <queue> using namespace std; const int N=50010,INF=0x3f3f3f3f; namespace DIJKSTRA{ typedef pair<int,int>P; priority_queue<P,vector<P>,greater<P> >Q; int a ,d ,n,m; void Initialize(){ int x,i; sort(a,a+n); m=a[0]; for(i=1;i<m;i++)d[i]=INF;Q.push(P(0,0)); while(!Q.empty()){ P t=Q.top();Q.pop(); if(d[t.second]<t.first)continue; for(x=t.second,i=1;i<n;i++){ if(d[x]+a[i]<d[(x+a[i])%m])Q.push(P(d[(x+a[i])%m]=d[x]+a[i],(x+a[i])%m)); } } } bool Check(int x){return d[x%m]<=x;} int Cal(int k){for(int i=0;i<m;i++)if(d[(k+i)%m]<=k+i)return k+i;} } int main(){ using namespace DIJKSTRA; scanf("%d",&n); for(int i=0;i<n;i++)scanf("%d",&a[i]); Initialize(); int k; scanf("%d",&k); while(k--){ int x; scanf("%d",&x); if(Check(x))puts("TAK"); else puts("NIE"); }return 0; }
相关文章推荐
- BZOJ2612 [Poi2003]Sums
- BZOJ2612 : [Poi2003]Sums
- bzoj 2407: 探险 最短路+构造
- [AHOI2006] BZOJ1266 上学路线route-图论-最短路树-最小割
- BZOJ 1003: [ZJOI2006]物流运输trans DP+最短路
- 【bzoj1001】【最短路】【对偶图】【最大流转最小割】狼抓兔子题解
- BZOJ 1003 物流运输(最短路+DP)
- BZOJ_P2763 [JLOI2011]飞行路线(分层图+最短路)
- [BZOJ4449][Neerc2015][分治][最短路]Distance on Triangulation
- [BZOJ2407/4398]-探险/福慧双修-最短路+建图
- BZOJ1653: [Usaco2006 Feb]Backward Digit Sums
- [BZOJ3040]最短路
- BZOJ 1579: [Usaco2009 Feb]Revamping Trails 道路升级( 最短路 )
- bzoj 3040: 最短路(road)
- bzoj2125 最短路
- BZOJ[Sdoi2010]大陆争霸 最短路变形
- 【BZOJ2407/4398】探险/福慧双修 最短路建模
- BZOJ 4152: [AMPPZ2014]The Captain( 最短路 )
- bzoj2015 [Usaco2010 Feb]Chocolate Giving(最短路裸题)
- BZOJ 2118 墨墨的等式 最短路 同余类分析