Spinning Wheels USACO 3.2

只能说是看着题解做的,题目模拟可以过,但是题意有点模糊不清,缺口如[1,2]表示缺口1和2,而不是1到2之间的1个

还有宽度如包括收尾,比如start=0,length=30,则最后包括0-30共31个缺口...

 1 /*
 2 
 3 ID: hubiao cave
 4 
 5 PROG: spin
 6 
 7 LANG: C++
 8 
 9 */
10 
11 #include<iostream>
12 #include<fstream>
13 #include<cstring>
14 using namespace std;
15 
16 int main()
17 
18 {
19     ifstream fin("spin.in");
20     ofstream fout("spin.out");
21     int used[360],speed[5],crack_num[5],cracks[50];
22     memset(used,0,sizeof(int) *360);
23     memset(speed,0,sizeof(int) *5);
24     memset(crack_num,0,sizeof(int)*5);
25     memset(cracks,0,sizeof(int) *50);
26     
27     for(int i=0;i<5;i++)
28     {
29         fin>>speed[i];
30         fin>>crack_num[i];
31         for(int j=0;j<crack_num[i];j++)
32         {
33             int last;
34             fin>>cracks[i*10+j*2]>>cracks[i*10+j*2+1];
35             
36         }
37     }
38 
39     for(int seconds=0;seconds<360;seconds++)
40     {
41         memset(used,0,sizeof(int)*360);
42         for(int i=0;i<5;i++)
43         {
44             for(int j=0;j<crack_num[i];j++)
45             {
46                  for(int m=0;m<=cracks[i*10+2*j+1];m++)
47                 {
48                     int index=cracks[i*10+2*j]+seconds*speed[i]+m;
49                     index%=360;
50                     used[index]++;
51                 }
52             }
53         }
54         for(int c=0;c<360;c++)
55         {
56             if(used[c]==5)
57             {
58                 fout<<seconds<<endl;
59                 return 0;
60             }
61         }
62 
63     }
64 
65     fout<<"none"<<endl;
66 
67 
68     return 0;
69 
70 
71 }
原文地址:https://www.cnblogs.com/cavehubiao/p/3349862.html