UVA 11520 填充正方形】的更多相关文章

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++.…
在一个 n * n 网格中填了一些大写字母,你的任务是把剩下的格子中也填满大写字母,使得任意两个相邻格子(即有公共边的格子)中的字母不同.如果有多重填法,则要求按照从上到下,从左到右的顺序把所有格子连接起来得到的字符串的字典序应该尽量小. 直接暴力走起就OK.因为,需要填的格子最多就是 A.B.C.D.E 这五个字母.所以直接暴力也就 O(n2) 因为要保证字符串的字典序最小,所以就从第一行第一列开始,一行一行的暴就搞定了.其他的就不说了,简单的水题. 附AC代码: 1: #include <s…
暴力出奇迹 #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]=='…
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>…
https://vjudge.net/problem/UVA-1603 题意:有一个火柴棍组成的正方形网格,计算至少要拿走多少根火柴才能破坏所有正方形. 思路:从边长为1的正方形开始遍历,将正方形的边长和它的实际火柴数保存起来.之后dfs搜索. #include<iostream> #include<cstring> using namespace std; ; int n, m,best,s; int map[maxn],size[maxn],fullsize[maxn]; in…
题意:给n*n的格子里填上A-Z的字符,保证相邻字符不同,并且字典序最小. 析:直接从第一个格子开始暴力即可,每次判断上下左是不是相同即可. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include <string> #include <cstdlib> #include <cmath> #include <ios…
题意:给出 n*n的格子,把剩下的格子填上大写字母,使得任意两个相邻的格子的字母不同,且从上到下,从左到右的字典序最小 从A到Z枚举每个格子填哪一个字母,再判断是否合法 #include<iostream> #include<cstdio> #include<cstring> #include <cmath> #include<stack> #include<vector> #include<map> #include&l…
题目链接: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的矩阵,让你往里面添加大写字母,矩阵有的字母已经给填好了,然后要求是每个格子都不能与他相邻的格子的大写字母相同,如果有多个答案,输出从上到下,从左到右所连接的成的那个n*n长度的字符串的ASCII码最小. 思路:       大家都知道4色定理吧,四种颜色能把任何地图都画出来,并且相邻的颜色不同,那么这个题目是26种,所以肯定不存在没有解的情况,所以我们只要从上到下,从左到右依次填写字母,已经填写好的就不用填写了,没有填写好的就填上能填的最小的那个字母. #inc…