普陀建设机械网站,南宁本地网站设计,php 网站换空间,wordpress 上一页 下一页正题 题目大意 nnn个木板第iii个浮起来aisa_i\ sai s后沉bisb_i sbis如此反复。
每sss最多可以跨555格#xff0c;最短时间到达右边。 解题思路
设fi,jf_{i,j}fi,j表示在第isi\ si s的时候是否可以到达第jjj格木板
然后显而易见fi,jfi,k(∣k−j∣≤5)f_{i,j}f_{i,k}(…正题 题目大意
nnn个木板第iii个浮起来aisa_i\ sai s后沉bisb_i sbis如此反复。
每sss最多可以跨555格最短时间到达右边。 解题思路
设fi,jf_{i,j}fi,j表示在第isi\ si s的时候是否可以到达第jjj格木板
然后显而易见fi,jfi,k(∣k−j∣≤5)f_{i,j}f_{i,k}(|k-j|\leq 5)fi,jfi,k(∣k−j∣≤5)
滚动一下然后暴力判断如果进行了很多次就无解 codecodecode
#includecstdio
#includecstring
#includealgorithm
using namespace std;
const int N1100;
int G,t,a[N],b[N],f[2][N],n;
int main()
{freopen(riv9.in,r,stdin);scanf(%d,G);while(G--){scanf(%d,n);memset(b,0,sizeof(b));for(int i1;in;i)scanf(%d%d,a[i],b[i]);memset(f,0,sizeof(f));t1;f[1][0]1;n;a[0]1;a[n]1;bool flag;while(!f[t1][n]){flag1;for(int i0;in;i){if(!f[t1][i]) continue;flag0;for(int j-5;j5;j){int zij;if(z0||zn) continue;if((t-1)%(a[z]b[z])1a[z]) continue;f[~t1][z]1;}}if(t10000000/n) flag1;if(flag) break;memset(f[t1],0,sizeof(f[t1]));t;}if(flag) printf(No\n);else printf(%d\n,t-1);}
}