话说原题目是叫地砖铺设?
【题意】用任意边长任意颜色的正方形相接形成一个nm的矩形,求nm的字典序最小的矩形。

【分析】贪心+乱搞?枚举每个点,并找到这个点可以染的最小颜色(只考虑不和上方、右方重复),如果和左边颜色相同,就合并成一个更大的正方形。这一定比在这个点填其他颜色要小。

【code】

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
const int maxn=110;
using namespace std;
int n,m,num[maxn][maxn];
char g[maxn][maxn];
int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)if(!g[i][j]){for(char k='A';k<='D';k++){if(k==g[i-1][j] || k==g[i][j+1]) continue;if(num[i][j-1] && k==g[i][j-1] && i+num[i][j-1]<=n){int len=num[i][j-1]+1;for(int l=i;l<=i+len-1;l++) g[l][j]=k;for(int l=j-len+1;l<=j;l++)g[i+len-1][l]=k;num[i][j]=num[i][j-1]+1;break;}else if(k!=g[i][j-1]){g[i][j]=k;num[i][j]=1;break;}}}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++)  printf("%c",g[i][j]);printf("\n");}
}

地砖设计 贪心、字符串相关推荐

  1. 字符串混淆技术应用 设计一个字符串混淆程序 可混淆.NET程序集中的字符串

    关于字符串的研究,目前已经有两篇. 原理篇:字符串混淆技术在.NET程序保护中的应用及如何解密被混淆的字符串 实践篇:字符串反混淆实战 Dotfuscator 4.9 字符串加密技术应对策略 今天来讲 ...

  2. 给年份year,定义一个宏,以判别该年份是否闰年。提示:宏名可以定义为LEAP_YEAR,形参为y,既定义宏的形式为 #define LEAP_YEAR(y) (读者设计的字符串)

    题目描述 给年份year,定义一个宏,以判别该年份是否闰年.提示:宏名可以定义为LEAP_YEAR,形参为y,既定义宏的形式为 #define LEAP_YEAR(y) (读者设计的字符串) 输入 一 ...

  3. [贪心|字符串] leetcode 3 无重复字符的最长子串

    [贪心|字符串] leetcode 3 无重复字符的最长子串 1.题目 题目链接 给定一个字符串,请你找出其中不含有重复字符的最长子串的长度. 示例1: 输入: "abcabcbb" ...

  4. 自己独立设计的字符串加密算法

    自己独立设计的字符串加密算法 作者:成晓旭 这是本人自行设计的第一个数据加密算法,当初是想设计成分组的对称加密算法,但后来工作一忙,就没有实现,就草草完成便开始应用起来了.但是目前的混淆度已经能够满足 ...

  5. 算法分析与设计——贪心法实验报告

       算法导论  课程设计 成 绩 题    目:    贪心法 学院班级:        1613013         学    号:      16130130216       姓    名: ...

  6. 设计一个字符串子串删除函数

    样例一 请输入主串:abcdefj 请输入字串:cd 删除子串后的结果:abdefj 样例二 请输入主串:abcdefjcdhk 请输入字串:cd 删除子串后的结果:abdefjhk #include ...

  7. 最少圆覆盖通信覆盖问题-算法分析设计-贪心算法-java实现

    问题描述 假设海岸线是一条无限延伸的直线,陆地在海岸线的一侧,海洋在另外一侧.每个小岛相当于海洋侧的一个点.坐落在海岸线上的基站只能覆盖半径为d的范围.应用直角坐标系,将海岸线作为x轴,设海洋侧在x轴 ...

  8. 算法分析与设计 —— 贪心算法「活动安排」「背包问题」「哈夫曼编码」

  9. Redis基础,Linux下安装Redis和hredis,C++调用Redis,Redis中字符串设计

    文章目录 一.Redis是什么 Redis架构 Redis优势 Redis应用场景 二.Linux下载安装Redis(Ubuntu系统) 了解Redis版本 在线安装Redis 启动Redis服务端 ...

最新文章

  1. su如何变成实体_不用建模就能生成地形,SU怎么办到的?
  2. 莫博士:Facebook别再推诿,请承担打击假新闻责任
  3. 一行代码搞定 GitHub 访问徽章
  4. 如何做PHD (1)
  5. 在线公开课 | 从理论走向实践,多角度详解Cloud Native
  6. Python版猜数游戏
  7. URI、URL与URN【定义+联系】
  8. 三度其一——数量场的梯度
  9. mt4双线macd_指标之王——MACD的精髓用法,八张图完美诠释最佳买入点,牢记不愁买卖!...
  10. python chardet_chardet
  11. 微信对账单 java_微信支付-跨境支付开发者文档
  12. 第一种单击事件方法 onCreate 1、先在按钮中添加onCreate单击事件 android:onClick=wlj/ 2、再在主函数MainActivity中添加自定义方法
  13. 一文读懂 DNS 解析的工作机制和优化挑战
  14. 微信支付api_key
  15. sql怎么与oracle连接,sql怎么连接oracle数据库
  16. 将一个长字串分拆为多条记录
  17. 优质的国外程序员网站
  18. [C++]小根堆 插入/删除/初始化
  19. 二维码的后台生成及前台界面显示QRCode
  20. 《无缘社会》读书笔记及读后感范文2100字

热门文章

  1. java正交多项式拟合_用正交多项式作最小二乘拟合的java实现
  2. 服务雪崩效应及如何应对
  3. 【2020杭电多校】 Lead of Wisdom 【暴搜】
  4. RT-Thread :成功申报中国科协开源评选
  5. [Swust OJ 1026]--Egg pain's hzf
  6. 海明码的C++程序实现
  7. 台式机Ubuntu系统安装usb wifi无线接收器
  8. ElasticSerach忘记密码,密码重置
  9. hibernate对象的3种状态
  10. 714. 买卖股票的最佳时机含手续费+贪心