UVa 11520 Fill the Square 填充正方形】的更多相关文章

在一个 n * n 网格中填了一些大写字母,你的任务是把剩下的格子中也填满大写字母,使得任意两个相邻格子(即有公共边的格子)中的字母不同.如果有多重填法,则要求按照从上到下,从左到右的顺序把所有格子连接起来得到的字符串的字典序应该尽量小. 直接暴力走起就OK.因为,需要填的格子最多就是 A.B.C.D.E 这五个字母.所以直接暴力也就 O(n2) 因为要保证字符串的字典序最小,所以就从第一行第一列开始,一行一行的暴就搞定了.其他的就不说了,简单的水题. 附AC代码: 1: #include <s…
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2515 11520 - Fill the Square Time limit: 1.000 seconds In this problem, you have to draw a square using uppercase English Alphabets. To be more prec…
题目 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2515 题意 n*n矩阵中填入大写字母,n <= 10,要求从上到下从左到右字母序最小,相邻格子字母不同 思路 如刘书思路,状态比较小,不会导致矛盾. 感想 1. 状态较小 代码 #include <algorithm> #include <cassert>…
题意:给n*n的格子里填上A-Z的字符,保证相邻字符不同,并且字典序最小. 析:直接从第一个格子开始暴力即可,每次判断上下左是不是相同即可. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include <string> #include <cstdlib> #include <cmath> #include <ios…
题目链接:https://vjudge.net/problem/UVA-11520 这道题我们发现$n\leq 10$,所以直接进行暴力枚举. 因为根据字典序所以每个位置试一下即可,这样的复杂度不过也就是$O(26\times n^2)$. 注意此题中的输入输出有点bug,可以把每一行看成一个字符串进行输入输出(因为其中并没有空格). AC代码: #include<cstdio> #include<iostream> using namespace std; int n; ][];…
题意:给出 n*n的格子,把剩下的格子填上大写字母,使得任意两个相邻的格子的字母不同,且从上到下,从左到右的字典序最小 从A到Z枚举每个格子填哪一个字母,再判断是否合法 #include<iostream> #include<cstdio> #include<cstring> #include <cmath> #include<stack> #include<vector> #include<map> #include&l…
填充正方形(Fill the Square, UVa 11520) 在一个n×n网格中填了一些大写字母,你的任务是把剩下的格子中也填满大写字母,使得任意两个相邻格子(即有公共边的格子)中的字母不同.如果有多种填法,则要求按照从上到下.从左到右的顺序把所有格子连接起来得到的字符串的字典序应该尽量小. [输入格式] 输入的第一行为测试数据组数T.每组数据的第一行为整数n(n≤10),即网格的行数和列数:以下n行每行n个字符,表示整个网格.为了清晰起见,本题用小数点表示没有填字母的格子. [输出格式]…
bzoj1661[Usaco2006 Nov]Big Square 巨大正方形 题意: n*n的图中有一些J点,一些B点和一些空白点,问在空白点添加一个J点所能得到的有4个J点组成最大正方形面积.n≤100. 题解: 枚举两个点,然后根据这两个点组成的边尝试在4个上下两个方向组成四边形. 代码: #include <cstdio> #include <cstring> #include <algorithm> #include <queue> #define…
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2515 http://7xjob4.com1.z0.glb.clouddn.com/c6a2a6f54f5a6c2cae2c82df2ec552f7 题意:填已有字母的格子,使相邻格子字母不同,使字典序尽量小 思路:从小到大排,检验是否可行 #include <bits/stdc++.…
暴力出奇迹 #include<iostream> #include<cstdio> using namespace std; +; int T,n; char S[maxn][maxn]; int main() { cin>>T; ;kase<=T;kase++) { cin>>n; ;i<n;i++) ;j<n;j++) cin>>S[i][j]; ;i<n;i++) ;j<n;j++) if(S[i][j]=='…