地砖设计 贪心、字符串
话说原题目是叫地砖铺设?
【题意】用任意边长任意颜色的正方形相接形成一个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");}
}
地砖设计 贪心、字符串相关推荐
- 字符串混淆技术应用 设计一个字符串混淆程序 可混淆.NET程序集中的字符串
关于字符串的研究,目前已经有两篇. 原理篇:字符串混淆技术在.NET程序保护中的应用及如何解密被混淆的字符串 实践篇:字符串反混淆实战 Dotfuscator 4.9 字符串加密技术应对策略 今天来讲 ...
- 给年份year,定义一个宏,以判别该年份是否闰年。提示:宏名可以定义为LEAP_YEAR,形参为y,既定义宏的形式为 #define LEAP_YEAR(y) (读者设计的字符串)
题目描述 给年份year,定义一个宏,以判别该年份是否闰年.提示:宏名可以定义为LEAP_YEAR,形参为y,既定义宏的形式为 #define LEAP_YEAR(y) (读者设计的字符串) 输入 一 ...
- [贪心|字符串] leetcode 3 无重复字符的最长子串
[贪心|字符串] leetcode 3 无重复字符的最长子串 1.题目 题目链接 给定一个字符串,请你找出其中不含有重复字符的最长子串的长度. 示例1: 输入: "abcabcbb" ...
- 自己独立设计的字符串加密算法
自己独立设计的字符串加密算法 作者:成晓旭 这是本人自行设计的第一个数据加密算法,当初是想设计成分组的对称加密算法,但后来工作一忙,就没有实现,就草草完成便开始应用起来了.但是目前的混淆度已经能够满足 ...
- 算法分析与设计——贪心法实验报告
算法导论 课程设计 成 绩 题 目: 贪心法 学院班级: 1613013 学 号: 16130130216 姓 名: ...
- 设计一个字符串子串删除函数
样例一 请输入主串:abcdefj 请输入字串:cd 删除子串后的结果:abdefj 样例二 请输入主串:abcdefjcdhk 请输入字串:cd 删除子串后的结果:abdefjhk #include ...
- 最少圆覆盖通信覆盖问题-算法分析设计-贪心算法-java实现
问题描述 假设海岸线是一条无限延伸的直线,陆地在海岸线的一侧,海洋在另外一侧.每个小岛相当于海洋侧的一个点.坐落在海岸线上的基站只能覆盖半径为d的范围.应用直角坐标系,将海岸线作为x轴,设海洋侧在x轴 ...
- 算法分析与设计 —— 贪心算法「活动安排」「背包问题」「哈夫曼编码」
- Redis基础,Linux下安装Redis和hredis,C++调用Redis,Redis中字符串设计
文章目录 一.Redis是什么 Redis架构 Redis优势 Redis应用场景 二.Linux下载安装Redis(Ubuntu系统) 了解Redis版本 在线安装Redis 启动Redis服务端 ...
最新文章
- su如何变成实体_不用建模就能生成地形,SU怎么办到的?
- 莫博士:Facebook别再推诿,请承担打击假新闻责任
- 一行代码搞定 GitHub 访问徽章
- 如何做PHD (1)
- 在线公开课 | 从理论走向实践,多角度详解Cloud Native
- Python版猜数游戏
- URI、URL与URN【定义+联系】
- 三度其一——数量场的梯度
- mt4双线macd_指标之王——MACD的精髓用法,八张图完美诠释最佳买入点,牢记不愁买卖!...
- python chardet_chardet
- 微信对账单 java_微信支付-跨境支付开发者文档
- 第一种单击事件方法 onCreate 1、先在按钮中添加onCreate单击事件 android:onClick=wlj/ 2、再在主函数MainActivity中添加自定义方法
- 一文读懂 DNS 解析的工作机制和优化挑战
- 微信支付api_key
- sql怎么与oracle连接,sql怎么连接oracle数据库
- 将一个长字串分拆为多条记录
- 优质的国外程序员网站
- [C++]小根堆 插入/删除/初始化
- 二维码的后台生成及前台界面显示QRCode
- 《无缘社会》读书笔记及读后感范文2100字