E - Polycarp and Snakes
E - Polycarp and Snakes
题意:在一个全是点的图上开始画线,每次将一行或一列任意长度染成字母,一笔染一种字母,字母必须从a开始连续到后面某个字母可以覆盖。
问所给图案是否满足 ,若满足输出它画了几个字母,然后输出这每个字母开始和截止画的横纵坐标。
思路:存图,模拟,用个x1,x2,y1,y2记录每个字母出现位置的最小最大的横纵坐标,对于每个字母如果它的x1,x2,y1,y2不是初始值的话,那么它在图上就出现过(没有被覆盖掉),那么这个字母必然满足,x1==x2||y1==y2;
#include<bits/stdc++.h> using namespace std; char mp[2005][2005]; int x1[30],x2[30],y1[30],y2[30];int main() {int n,m;int it=1;scanf("%d",&it);while(it--){scanf("%d%d",&n,&m);for(int i=1; i<=n; i++)scanf("%s",mp[i]+1);for(int i=1; i<=26; i++){x1[i]=9999;y1[i]=9999;x2[i]=-9999;y2[i]=-9999;}for(int i=1; i<=n; i++)for(int j=1; j<=m; j++){if(mp[i][j]!='.'){int num=mp[i][j]-'a'+1;x1[num]=min(x1[num],i);x2[num]=max(x2[num],i);y1[num]=min(y1[num],j);y2[num]=max(y2[num],j);}}int flag=1;int live[30];int cnt=0;memset(live,0,sizeof(live));for(int i=1; i<=26; i++){if(x1[i]!=9999&&y1[i]!=9999){if(x1[i]==x2[i]){cnt=i;for(int j=y1[i]; j<=y2[i]; j++)if(mp[x1[i]][j]<('a'+i-1)){flag=0;break;}live[i]=1;}else if(y1[i]==y2[i]){cnt=i;for(int j=x1[i]; j<=x2[i]; j++){if(mp[j][y1[i]]<('a'+i-1)){flag=0;break;}}live[i]=1;}else{flag=0;break;}}} // for(int i=1; i<=5; i++) // printf("%d %d %d %d\n",x1[i],x2[i],y1[i],y2[i]);if(flag==0)printf("NO\n");else{printf("YES\n%d\n",cnt);for(int i=1; i<=cnt; i++){if(live[i]==0){ // printf("???");for(int j=i+1; j<=26; j++){if(live[j]==1){printf("%d %d %d %d\n",x1[j],y1[j],x2[j],y2[j]);break;}}}elseprintf("%d %d %d %d\n",x1[i],y1[i],x2[i],y2[i]);}}} }
转载于:https://www.cnblogs.com/dongdong25800/p/11083083.html
E - Polycarp and Snakes相关推荐
- E. Polycarp and Snakes
After a hard-working week Polycarp prefers to have fun. Polycarp's favorite entertainment is drawing ...
- E - Polycarp and Snakes(模拟)
E - Polycarp and Snakes 题意: 画蛇,蛇宽只能为1,长可若干,字母大是蛇可以把字母小的蛇覆盖 从最多a画到z 给一个图,问能否被蛇填充完 解析: 模拟 字母小的不一定在图上出现 ...
- Codeforces 1005D Polycarp and Div 3
Codeforces 1005D Polycarp and Div 3 dp[i]表示前i个数最多能分成多少块%3为0,nxt[x]表示x这个上一次出现的位置. 首先想到 $ dp[i] = max( ...
- 【 CodeForces - 864B】Polycarp and Letters(水题,字符串,有坑)
题干: Polycarp loves lowercase letters and dislikes uppercase ones. Once he got a string sconsisting o ...
- CodeForces 858C Did you mean... 、 CodeForces 858D Polycarp's phone book!黑科技
C. Did you mean... 题意:将一个字符串最少分成几个小的字符串,使得每个字符串都没有连续三个及以上的辅音字母,连续三个相同的辅音字母不算. 贪心构造即可,注意连续三个相同的辅音的时候将 ...
- 基于Matlab的3-D胸部扫描CT切片的肺部分割——使用活动轮廓(snakes)进行三维分割及建模
目录: 一.准备数据 二.肺部分割 三.创建种子MASK掩膜并使用活动轮廓(snakes)分割肺部 四.计算分割肺的体积 例程完整源码: 参考链接 本例程配套完整源码和数据下载 此示例显示了如何使用活 ...
- 锻炼左右脑协调的摸鱼必备游戏——《Double Snakes》完整C语言代码!
锻炼左右脑协调的摸鱼必备游戏--<Double Snakes>完整C语言代码! 目录 锻炼左右脑协调的摸鱼必备游戏--<Double Snakes>完整C语言代码! (一)运行 ...
- LeetCode——909. 蛇梯棋(Snakes and Ladders)[中等]——分析及代码(Java)
LeetCode--909. 蛇梯棋[Snakes and Ladders][中等]--分析及代码[Java] 一.题目 二.分析及代码 1. 广度优先搜索 (1)思路 (2)代码 (3)结果 三.其 ...
- [USACO19OPEN]Snakes
题面: 传说,数千年前圣帕特里克消灭了哞尔兰所有的蛇.然而,蛇们现在卷土重来了!圣帕特里克节是在每年的3月17日,所以Bessie要用彻底清除哞尔兰所有的蛇来纪念圣帕特里克. Bessie装备了一个捕 ...
最新文章
- 工作报告总是写不好?表达不准确?试试这个写作方法
- 解决 WordPress“正在执行例行维护,请一分钟后回来”
- Vulnhub靶机渗透之 RAVEN: 1
- 新手小白零基础搭建个人博客(二)Hexo搭建
- 查看mysql语句运行时间
- java换成中文_如果我们的编程替换成中文会变成怎样?
- python实现isodd函数、参数为整数、如果整数为奇数_python 程序练习题
- 测试通用串行总线控制器好坏软件,通用串行总线控制器出现叹号是什么情况?怎么解决?...
- 理论题 —— Windows 7基础知识
- JavaScript我学之七数组
- 五分钟搭建一个MarkDown文档解析器
- EC-JET喷码机报EC2.01偏转板电压故障
- vue如何集成阿里云视频服务组件(aliplayer)视频功能是使用el-dialog 弹出aliplayer播放
- Android 中的 ClassLoader 摘抄笔记
- 大数据压缩处理:数据分卷压缩和分卷压缩解压
- php使用halt中断输出
- POJ 1635 Subway tree systems 树的Hash 或 树的最小表示法
- 工作仅一年就被迫跳槽的感想
- [noip2016]天天爱跑步(主席树+lca)
- 安装VMware Workstation
热门文章
- css sprite/css精灵
- 美军人工智能作战计划曝光,100亿美元战争云计算系统公开招标
- 抖音带货小店随心推到底怎么测品更容易出单?
- Xilinx FGPA Pinout文件查找
- MAC电脑gitt@github.com: Permission denied (publickey). fatal: Could not read from remote repository
- 高效记忆/形象记忆(03)故事奇象法
- 【数学建模】预测模型笔记之灰色预测
- pat basic 1104 天长地久
- 涛思数据TDengine征稿— ❤️TDEngine 的特点及应用场景❤️
- 抖音运营必看的7种玩法和9个类目定位