C. Grid game 思维+问题转化
C. Grid game 思维+问题转化
题意
每当有一行或者一列方格的时候,都可以消气这一行或者这一列,一共有两种形状的方块,一种是横的两个,一种是竖着的两个,按时间顺序放在4*4的格子里面,问怎么放才不会GG
思路
仔细想一想其实只要把竖的放一起,横的放一起即可,这样就不会产生多余的快影响后续进程,不要被样例干扰
#include<bits/stdc++.h>
#define FOR(i,f_start,f_end) for(int i=f_start;i<=f_end;i++)
#define MS(arr,arr_value) memset(arr,arr_value,sizeof(arr))
#define F first
#define S second
#define pii pair<int ,int >
#define mkp make_pair
#define pb push_back
using namespace std;
typedef long long ll;
const int maxn = 3e5+4;
char s[maxn];
map<char,int>mp;
int main(){
int ans=0;
cin>>s+1;
int len=strlen(s+1);
int p1=1,p2=1;
for(int i=1;i<=len;i++){
mp[s[i]]++;
if(s[i]=='1'){
cout<<p1<<" "<<1<<endl;
p1++;
if(p1==5){
mp[s[i]]=0;
p1=1;
}
}
if(s[i]=='0'){
cout<<p2<<" "<<4<<endl;
p2+=2;
if(p2==5){
mp[s[i]]=0;
p2=1;
}
}
}
return 0;
}