弱爆了,真心看不懂这个题是在搞毛线啊。。。本来以为是神马数论的神题,不能直接枚举把,然后搜了一下题解,然后都说是水题模拟就行。。。顿时受打击了,直接抄题解过了。。。掉人品啊,有点太无语了。
1 /* 2 ID: cuizhe 3 LANG: C++ 4 TASK: spin 5 */ 6 #include7 #include 8 #include 9 #include 10 #include 11 using namespace std;12 int v[10],p[6][370],s[10];13 int main()14 {15 int i,j,k,n,st,d,z;16 freopen("spin.in","r",stdin);17 freopen("spin.out","w",stdout);18 for(i = 1;i <= 5;i ++)19 {20 scanf("%d",&v[i]);21 v[i] = 360 - v[i];//把速度给倒转,为了以后操作方便22 scanf("%d",&n);23 for(j = 1;j <= n;j ++)24 {25 scanf("%d%d",&st,&d);26 for(k = 0;k <= d;k ++)27 {28 p[i][(k+st)%360] = 1;29 }30 }31 }32 z = 0;33 for(i = 0;i <= 359&&!z;i ++)34 {35 for(j = 0;j <= 359;j ++)//例如速度为1,s则为359,就说明如0位置,上一次应该在35936 {37 if(p[1][(j+s[1])%360]&&p[2][(j+s[2])%360]&&p[3][(j+s[3])%360]&&p[4][(j+s[4])%360]&&p[5][(j+s[5])%360])38 {39 z = 1;40 break;41 }42 }43 if(z) break;44 for(j = 1;j <= 5;j ++)45 {46 s[j] += v[j];47 }48 }49 if(z == 0)50 printf("none\n");51 else52 printf("%d\n",i);53 return 0;54 }