BZOJ 1583
Posted SiriusRen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BZOJ 1583相关的知识,希望对你有一定的参考价值。
思路:
维护两个指针pointer_1和pointer_2
代表用算法一走到的位置 和算法2走到的位置
若 算法一<算法2 数组后面就插入算法一的解 pointer_1++
(记得判重)
(这题卡不住heap什么鬼)
//By SiriusRen #include <cstdio> #include <cstring> #include <algorithm> using namespace std; typedef unsigned long long ul; ul a[4000050],c,n,a1,b1,c1,a2,b2,c2; int main(){ scanf("%llu%llu%llu%llu%llu%llu%llu%llu",&c,&n,&a1,&b1,&c1,&a2,&b2,&c2); a[1]=c; ul t1=a1*c/c1+b1,t2=a2*c/c2+b2; int pointer_1=1,pointer_2=1; for(int i=2;i<=n;){ if(t1<t2){ if(t1!=a[i-1])a[i++]=t1; t1=a[++pointer_1]*a1/c1+b1; } else{ if(t2!=a[i-1])a[i++]=t2; t2=a[++pointer_2]*a2/c2+b2; } }printf("%llu\n",a[n]); }
以上是关于BZOJ 1583的主要内容,如果未能解决你的问题,请参考以下文章
TSP基于matlab蚁群算法求解旅行商问题含Matlab源码 1583期
bzoj1913[Apio2010]signaling 信号覆盖 计算几何
BZOJ-2257: [Jsoi2009]瓶子和燃料 (中国剩余定理)