1583: [Usaco2009 Mar]Moon Mooing 哞哞叫

1583: [Usaco2009 Mar]Moon Mooing 哞哞叫

Time Limit: 10 Sec  Memory Limit: 64 MB
Submit: 244  Solved: 126
[Submit][Status][Discuss]

Description

Input

第一行两个数,C和N

第二行3个数,a1,b1,c1 第三行3个数,a2,b2,c2

Output

一个整数代表最长的那一次嚎叫

Sample Input

3 10
4 3 3
17 8 2

Sample Output

65

HINT

 

Source

Gold

题解:难以想象USACO竟然有此般水题,更何况还是GOLD DIVISION。。。(PS:但是我会告诉你我不仅仅第一反应是用堆做,而且还逗比了一次——忘开int64了TT)

其实,由于题目中说了( d_1 leq a_1 )和( d_2 leq a_2 ),所以满足( frac{a_1}{d_1} geq 1 )和( frac{a_2}{d_2} geq 1 ),所以整个迭代式处于一个上升的阶段,也就是说问题就完全成了一个类似归并排序的东西了——直接两条线线性合并下搞定,时间复杂度( Oleft( N ight) )

 1 /**************************************************************
 2     Problem: 1583
 3     User: HansBug
 4     Language: Pascal
 5     Result: Accepted
 6     Time:1304 ms
 7     Memory:39288 kb
 8 ****************************************************************/
 9  
10 var
11    i,j,k,l,m,n,a1,b1,c1,a2,b2,c2,i1,i2:longint;
12    x1,x2:int64;
13    a:array[0..5000000] of int64;
14 begin
15      readln(m,n);
16      readln(a1,b1,c1);
17      readln(a2,b2,c2);
18      a[1]:=m;i:=2;
19      i1:=1;i2:=1;
20      x1:=(a1*m) div c1+b1;
21      x2:=(a2*m) div c2+b2;
22      while i<=n do
23            begin
24                 if x1<x2 then
25                    begin
26                         if x1<>a[i-1] then
27                            begin
28                                 a[i]:=x1;
29                                 inc(i);
30                            end;
31                         inc(i1);
32                         x1:=(a[i1]*a1) div c1+b1;
33                    end
34                 else
35                     begin
36                          if x2<>a[i-1] then
37                             begin
38                                  a[i]:=x2;
39                                  inc(i);
40                             end;
41                          inc(i2);
42                          x2:=(a[i2]*a2) div c2+b2;
43                     end;
44            end;
45      writeln(a[n]);
46      readln;
47 end.         
原文地址:https://www.cnblogs.com/HansBug/p/4412925.html