Jzoj4722 跳楼机
2017-10-15 17:30
190 查看
srwudi的跳楼机可以采用以下四种方式移动:
1、向上移动x层;
2、向上移动y层;
3、向上移动z层;
4、回到第一层。
一个月黑风高的大中午,DJL来到了srwudi的家,现在他在srwudi家的第一层,碰巧跳楼机也在第一层。DJL想知道,他可以乘坐跳楼机前往的楼层数(不大于h)。
我们发现变量只有3个,所以必然考虑层数%x的情况,若第i层可达,则必然第i+kx层也可以到达
我们令d[i]表示最小的k满足k%x=i且存在自然数a,b使得k=ay+bz
那么,显然d[1]=1,转移可以由d[(j+y)%x]=min(d[j]+y),d[(j+z)%x]=min(d[j]+z)
这可以用一个dijk搞定
最后答案就是∑max(0,(h-d[i])/x+1)
1、向上移动x层;
2、向上移动y层;
3、向上移动z层;
4、回到第一层。
一个月黑风高的大中午,DJL来到了srwudi的家,现在他在srwudi家的第一层,碰巧跳楼机也在第一层。DJL想知道,他可以乘坐跳楼机前往的楼层数(不大于h)。
我们发现变量只有3个,所以必然考虑层数%x的情况,若第i层可达,则必然第i+kx层也可以到达
我们令d[i]表示最小的k满足k%x=i且存在自然数a,b使得k=ay+bz
那么,显然d[1]=1,转移可以由d[(j+y)%x]=min(d[j]+y),d[(j+z)%x]=min(d[j]+z)
这可以用一个dijk搞定
最后答案就是∑max(0,(h-d[i])/x+1)
#pragma GCC opitmize("O3") #pragma G++ opitmize("O3") #include<stdio.h> #include<string.h> #include<algorithm> #include<queue> using namespace std; struct dn{ int id,d; } c; int x,y,z; long long d[100010],S=0,h; inline bool operator< (dn a,dn b){ return a.d>b.d; } inline bool gmin(long long& x,long long y){ return x>y?(x=y):0; } priority_queue<dn> q; int main(){ memset(d,127,sizeof d); scanf("%lld%d%d%d",&h,&x,&y,&z); d[1%x]=0; q.push((dn){1%x,0}); --h; for(int u;!q.empty();){ c=q.top(); q.pop(); if(c.d>d[u=c.id]) continue; if(gmin(d[(u+y)%x],d[u]+y)) q.push((dn){(u+y)%x,d[u]+y}); if(gmin(d[(u+z)%x],d[u]+z)) q.push((dn){(u+z)%x,d[u]+z}); } for(int i=0;i<x;++i) S+=(h<d[i]?0:(h-d[i])/x+1); printf("%lld",S); }
相关文章推荐
- JZOJ4722 跳楼机 巧妙地转换为最短路模型
- 【挖坑记】JZOJ 4722 跳楼机
- JZOJ3632【汕头市选2014】舞伴(perm)
- [JZOJ4986] 神秘物质(splay模板)
- {题解}[jzoj3636]【BOI2012】Mobile(mobile)
- jzoj P1539 【USACO Open 2012铜】三条直线Three lines
- JZOJ5012. 远行
- 【jzoj3737】【挖宝藏】【斯坦纳树】【状态压缩动态规划】
- JZOJ 3737. 【NOI2014模拟7.11】挖宝藏(treasure)
- JZOJ 3.25 1422——【汕头市选2012初中组】步行(walk)
- JZOJ1263.【USACO题库】2.2.3 Runaround Numbers循环数
- JZOJsenior1028.【GDOI2005】飞越原野
- jzoj P1029【NOIP动态规划专题】电子眼
- JZOJ1491.2017.04.02【NOIP 普及组】模拟赛C组 T3打鼹鼠
- 【JZOJ5043】【NOI2017模拟4.4】保持平衡
- JZOJ 4.8 2433——最短路上的统计【最短路】
- 【jzoj5049】【腐女的生日】【扫描线】【数据结构】
- {题解}[jzoj3749]【Srm590】Fox And City(fox)
- 【jzoj5065】【GDOI2017第二轮模拟day2】【开房间】【动态规划】
- 【JZOJ5068】【GDSOI2017第二轮模拟】树