codeforces gym 100825 D Rings
这题果然就是个暴力题....
看每个T的四个方向,有'.',或者在边界上就填1
不然就填四个方向上最小的那个数再加1
然而写wa了几发,有点蠢...
#include <bits/stdc++.h> using namespace std; char a[][];
int vis[][]; int dir[][] = {,,,-,,,-,};
int n,m; bool ok(int x,int y) {
if(x < || y < || x > n || y > m) {
return false;
}
return true;
}
int main() { cin>>n>>m;
memset(vis,,sizeof(vis));
for(int i = ; i <= n; i++) {
scanf("%s",a[i] + ); }
for(int i = ; i <= ; i++) {
for(int j = ; j <= ; j++) {
vis[i][j] = ;
}
} for(int k = ; k <= ; k++) {
for(int i = ; i <= n; i++) {
for(int j = ; j <= m; j++) {
if(a[i][j] == 'T') {
for(int x = ; x < ; x++) {
int nx = i + dir[x][];
int ny = j + dir[x][];
if(!ok(nx,ny)) {
/*if(i == 2 && j == 17) {
cout<<vis[nx][ny]<<endl;
}*/
vis[i][j] = ;
break;
}
if(ok(nx,ny) && a[nx][ny] == '.') { vis[i][j] = ;
break; }
else if(ok(nx,ny) && vis[nx][ny] != ) { vis[i][j] = min(vis[i][j],vis[nx][ny] + );
}
}
}
}
} } int cnt = ;
for(int i = ; i <= n; i++) {
for(int j = ; j <= m; j++) {
if(vis[i][j] != ) {
cnt = max(cnt,vis[i][j]);
}
}
} //cout<<cnt<<endl;
if(cnt < ) {
for(int i = ; i <= n; i++) {
for(int j = ; j <= m; j++) {
//cout<<vis[i][j]<<' ';
if(vis[i][j] == ) {
printf("..");
}
else {
printf(".");
printf("%d",vis[i][j]);
} }
printf("\n");
}
}
else {
for(int i = ; i <= n; i++) {
for(int j = ; j <= m; j++) {
if(vis[i][j] == ) {
printf("...");
}
else if(vis[i][j] < ) {
printf("..");
printf("%d",vis[i][j]);
}
else {
printf(".");
printf("%d",vis[i][j]);
} }
printf("\n");
}
} }
codeforces gym 100825 D Rings的更多相关文章
- 【宽搜】ECNA 2015 D Rings (Codeforces GYM 100825)
题目链接: http://codeforces.com/gym/100825 题目大意: 给你一张N*N(N<=100)的图表示一个树桩,'T'为年轮,'.'为空,求每个'T'属于哪一圈年轮,空 ...
- 【最大流】ECNA 2015 F Transportation Delegation (Codeforces GYM 100825)
题目链接: http://codeforces.com/gym/100825 题目大意: N(N<=600)个点,每个点有个名字Si,R(R<=200)个生产商在R个点上,F(F<= ...
- 【宽搜】ECNA 2015 E Squawk Virus (Codeforces GYM 100825)
题目链接: http://codeforces.com/gym/100825 题目大意: N个点M条无向边,(N<=100,M<=N(N-1)/2),起始感染源S,时间T(T<10) ...
- 【模拟】ECNA 2015 I What's on the Grille? (Codeforces GYM 100825)
题目链接: http://codeforces.com/gym/100825 题目大意: 栅栏密码.给定N(N<=10),密钥为一个N*N的矩阵,'.'代表空格可以看到,'X'代表被遮挡,还有密 ...
- Codeforces Gym 101252D&&floyd判圈算法学习笔记
一句话题意:x0=1,xi+1=(Axi+xi%B)%C,如果x序列中存在最早的两个相同的元素,输出第二次出现的位置,若在2e7内无解则输出-1. 题解:都不到100天就AFO了才来学这floyd判圈 ...
- Codeforces Gym 101190M Mole Tunnels - 费用流
题目传送门 传送门 题目大意 $m$只鼹鼠有$n$个巢穴,$n - 1$条长度为$1$的通道将它们连通且第$i(i > 1)$个巢穴与第$\left\lfloor \frac{i}{2}\rig ...
- Codeforces Gym 101623A - 动态规划
题目传送门 传送门 题目大意 给定一个长度为$n$的序列,要求划分成最少的段数,然后将这些段排序使得新序列单调不减. 考虑将相邻的相等的数缩成一个数. 假设没有分成了$n$段,考虑最少能够减少多少划分 ...
- 【Codeforces Gym 100725K】Key Insertion
Codeforces Gym 100725K 题意:给定一个初始全0的序列,然后给\(n\)个查询,每一次调用\(Insert(L_i,i)\),其中\(Insert(L,K)\)表示在第L位插入K, ...
- Codeforces gym 101343 J.Husam and the Broken Present 2【状压dp】
2017 JUST Programming Contest 2.0 题目链接:Codeforces gym 101343 J.Husam and the Broken Present 2 J. Hu ...
随机推荐
- Linux基础学习-使用vsftpd服务传输文件
使用vsftpd服务传输文件 1 安装vsftpd [root@qdlinux ~]# yum install vsftpd Loaded plugins: product-id, search-di ...
- linux关于任务计划
1.一次性任务计划:at 1)添加 在18:16时候重启服务器 at 18:16 >at init 6 >at ctrl+d2)查看 atq 1 Mon Aug 20 21:09:00 2 ...
- Python基础——概述
新建Python代码 Jupyter Notebook是在浏览器中运行的. 地址栏输入http://localhost:8888后直接进入工作文件夹,显示文件夹中的内容. 右上角选择New——Pyth ...
- nRF52-PCA10040——Overview
Overview Zephyr applications use the nrf52_pca10040 board configuration to run on the nRF52 Developm ...
- Seven Puzzle Aizu - 0121 (搜索)
7 パズル ime limit1000 ms Memory limit131072 kB OSLinux Source3rd PC Koshien, Final 7 パズルは 8 つの正方形のカードと ...
- js中xml文件加载
- [转] 查看 SELinux状态及关闭SELinux
本文转载自: http://bguncle.blog.51cto.com/3184079/957315 查看SELinux状态: 1./usr/sbin/sestatus -v ##如果SE ...
- 2.新手必须掌握的Linux命令
第2章 新手必须掌握的Linux命令 章节简述: 本章首先介绍系统内核和Shell终端的关系与作用,然后介绍Bash解释器的4大优势并学习Linux命令的执行方法.经验丰富的运维人员可以通过合理地组合 ...
- 【LeetCode】Remove Duplicates from Sorted Array(删除排序数组中的重复项)
这道题是LeetCode里的第26道题. 题目描述: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数 ...
- codeM预赛
[编程|1000分] 音乐研究 时间限制:1秒空间限制:32768K 题目描述 美团外卖的品牌代言人袋鼠先生最近正在进行音乐研究.他有两段音频,每段音频是一个表示音高的序列.现在袋鼠先生想要在第二段音 ...