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;
}
原文地址:https://www.cnblogs.com/ttttttttrx/p/10800659.html