SRM550 Div1Medium CheckerExpansion

来源:互联网 发布:蜂窝移动网络搜索定位 编辑:程序博客网 时间:2024/06/04 18:53

这题我也搞不明白,草草带过就好。。。
这题根据题意我们可以造出一张图来,然后我们就会发现神奇的事情
对于(x+y)的点(xy)来说
ax,y=Cyx+y2(是否有检验器)
而若(x+y)%4==0则为A的检验器,否则为B的检验器
怎么发现的呢?我也不知道。。。
详见集训队作业
代码如下:

#include<bits/stdc++.h>using namespace std;#define ll long longchar str[105][105];int main(){    ll t,x,y,w,h;    cin>>t>>x>>y>>w>>h;    for(ll i=x;i<x+w;i++)        for(ll j=y;j<y+h;j++){            str[i-x][j-y]='.';            if(i+j>2*t-2||(i+j)%2)continue;            if((((i+j)/2)&j)==j){                if((i+j)%4==0)str[i-x][j-y]='A';                else str[i-x][j-y]='B';            }        }    for(int i=h-1;i>=0;i--){        for(int j=0;j<w;j++)printf("%c",str[j][i]);        puts("");    }    return 0;}
原创粉丝点击