洛谷 P2728 纺车的轮子 Spinning Wheels
题意
有五个轮子,每个轮子都是360度(0~359),到了360度就会变成0度,每个轮子上都有 W个洞(1 <= W <= 5),判断在什么时候,五个轮子上的洞会有1度重合,光能后透过
做法
模拟加上暴力枚举轻松过,只要判断在一个点上什么时候有洞会重合即可
代码
#include<bits/stdc++.h> using namespace std; int a[6],k[6],x[6][6],l[6][6]; int now[6]; int main() { freopen("spin.in","r",stdin); freopen("spin.out","w",stdout); for(int i=1;i<=5;++i) { cin>>a[i]>>k[i]; for(int j=1;j<=k[i];++j) cin>>x[i][j]>>l[i][j]; } for(int i=0;i<360;++i) { int s[361]={};//记录在每个点上有多少个洞 for(int j=1;j<=5;++j) { for(int q=1;q<=k[j];++q) { for(int t=x[j][q];t<=x[j][q]+l[j][q];++t) s[t%360]++; //因为只有360度,要mod,记录 x[j][q]+=a[j]; x[j][q]%=360;//更新洞的位置 } } for(int j=0;j<360;++j) { if(s[j]==5) { cout<<i<<endl; return 0;//找到就跳出,return } } } cout<<"none"<<endl; return 0; }

浙公网安备 33010602011771号