题解 P2552 【[AHOI2001]团体操队形】

SuperJvRuo

2018-01-27 16:32:25

Solution

这是一道模拟 注意事项: 1、向上取整的除法:a/b=(a+b-1)/b 2、取余结果为零时应在第r列(行) 3、当情况为梅花桩时,其实就是确定2\*m-1号的位置: 代码: ```cpp #include<cstdio> int main() { int k,n,x,y,r,m; scanf("%d",&k); while(k--) { scanf("%d%d%d%d%d",&n,&x,&y,&r,&m); if(x==1) { if(y==1) printf("%d %d ",(m+r-1)/r,m%r?m%r:r); else printf("%d %d ",m%r?m%r:r,(m+r-1)/r); } else { if(y==1) { m=m*2-1; if(r&1) printf("%d %d ",(m+r-1)/r,m%r?m%r:r); else printf("%d %d ",(m+r-1)/r,((m+r-1)/r)&1?m%r:m%r+1); } else { m=m*2-1; if(r&1) printf("%d %d ",m%r?m%r:r,(m+r-1)/r); else printf("%d %d ",((m+r-1)/r)&1?m%r:m%r+1,(m+r-1)/r); } } } return 0; } ```