300
预处理,这道题目和DIV2的最后一题类似,是那道题目的简化版。
// BEGIN CUT HERE
// END CUT HERE
#include <cstdlib>
#include <cctype>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <string>
#include <iostream>
#include <sstream>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include <ctime>
#include <utility>
#include <iterator>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef set<int> si;
typedef map<int,int> mii;
typedef map<string,int> msi;
typedef pair<int,int> pii;
typedef priority_queue<int,vector<int>,greater<int> > pless;
typedef priority_queue<int> pgreater;
#define clr(x,a) memset(x,a,sizeof(x))
#define sz(x) (int)x.size()
#define pb push_back
#define mp make_pair
#define REP(i,n) for(i=0;i<(n);++i)
#define FOR(i,l,h) for(i=(l);i<=(h);++i)
#define FORD(i,h,l) for(i=(h);i>=(l);--i)
class UniformBoard
{
public:
int sa[55][55];
int sp[55][55];
int se[55][55];
int getBoard(vector <string> board, int K)
{
int i,j,k;
int n=sz(board);
clr(sa,0);
for(int i=1;i<=n;i++)
f