实验仓 #779.【CSP2019模拟 Day 1】A题
考场上面做了一个暴力的做法,然后,然后他$WA$了。
emmm...($T$就算了吧,$WA$了算什么事啊)
好吧,这道题,其实好像...是一道思维题来着。

如果出现了这样两个打X的格子上的字符相同,那么全局则一定有两条以上的字符串一样的路。因为从(1,1)有一条路到左上角,左上角到右下角分别经过两个打X的格子到右下角,最后再从右下角随便找一条路到(n,m)就可以了。
简单证明一下如果没有出现这种情况,一定不会有两条不同的路符合条件。假设已经走到了某一个点,因为只能往右或者往下走,如果那两个位置不一样,形成的字符串就一定会是不一样的。
简单实现的话,直接判断有没有这种情况出现就好了。但是和大佬学习了一下,用了一个递推(类似dp?)的做法。
#include<iostream>
#include<string>
#include<cstdio>
#include<cstring>
#include<map>
#include<algorithm>
using namespace std;
#define N 1005
#define ll long long
int n,m;
char mp[N][N];
int f[N][N];//f[i][j]01状态表示(i,j)能否有2种及以上的方法到达
int main()
{
int T;scanf("%d",&T);
while(T--)
{
memset(f,,sizeof(f));
scanf("%d %d",&n,&m);
for(int i=;i<=n;i++)
scanf("%s",mp[i]+);
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{ f[i][j]|=f[i-][j]|f[i][j-];
//如果到这两个格子有两种及以上走法,那么到这一个格子也肯定有
if(i>&&j>)
f[i][j]|=(mp[i-][j]==mp[i][j-]);
//如果这两个格子一样,那么可以从(i-1,j-1)走到这两个格子,再走到(i,j),有2种走法
}
if(f[n][m]) puts("Yes");
else puts("No");
}
return ;
}
Code
实验仓 #779.【CSP2019模拟 Day 1】A题的更多相关文章
- multipath多路径实验01-构建iscsi模拟环境
multipath多路径实验01-构建iscsi模拟环境 前几天跟同事网上闲聊技术,吐槽之前自己没有配置过多路径的经历,虽然多路径的配置过程很简单,职责划分也应是主机或存储工程师来搞定,DBA只需要直 ...
- 2016年 实验二、C2C模拟实验
实验二.C2C模拟实验 [实验目的] 掌握网上购物的基本流程和C2C平台的运营 [实验条件] ⑴.个人计算机一台 ⑵.计算机通过局域网形式接入互联网. (3).奥派电子商务应用软件 [知识准备] 本实 ...
- MySQL实验准备(二)--Python模拟数据(MySQL数据库)
Python模拟数据(MySQL数据库) 数据模拟 目的:模拟多个表的插入和查询数据的模拟,再通过基准测试脚本测试服务器性能和收集数据,仿真模拟. 备注: 如果需要基础的python环境,可以查看&l ...
- 实验11——java线程模拟卖票
package cn.tedu.demo; /** * @author 赵瑞鑫 E-mail:1922250303@qq.com * @version 1.0 * @创建时间:2020年7月31日 下 ...
- Noip模拟考第三题——饥饿游戏
饥饿游戏 (hungry.pas/c/cpp) [问题描述] Chanxer饿了,但是囊中羞涩,于是他去参加号称免费吃到饱的“饥饿游戏”. 这个游戏的规则是这样的,举办者会摆出一排 个食物,希望你能够 ...
- ZJU 1180 Self Numbers(暴力模拟判断,水题)
题目链接 同HDU 1128 , POJ 1316(这个范围小一点). 原本怕超时,以为有技巧或者规律,死命的想,后来发现这就是一道水体,模拟着全部判断一下就好了,10秒呢,完全不怕超时...唔,废话 ...
- 51Nod 1289 大鱼吃小鱼(模拟,经典好题)
1289 大鱼吃小鱼 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: ...
- BFS 模拟队列(水题)
BFS 这道题 觉得比较适合BFS新手入门写,也许大家都以为最入门 的BFS题是在二维图上搜索,但是这道题是线性搜索,更加简单 POJ 3278 Catch That Cow Time Limit: ...
- nyoj--990--蚂蚁感冒(模拟)(思维题)
蚂蚁感冒 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 长100厘米的细长直杆子上有n只蚂蚁.它们的头有的朝左,有的朝右. 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/ ...
随机推荐
- POJ 1038 Bugs Integrated Inc (复杂的状压DP)
$ POJ~1038~~\times Bugs~Integrated~Inc: $ (复杂的状压DP) $ solution: $ 很纠结的一道题目,写了大半天,就想练练手,结果这手生的.其实根据之前 ...
- nginx upstream和轮询策略
upstream nginx upstream语法配置 upstream 后面跟服务名 其中包含了,域名,端口 以及权重,可以看到他既支持http协议也支持socket协议的类型,backup意味着该 ...
- 遍历文件夹 DirectoryInfo类
该类有三个方法: GetDirectories() 当前目录的子目录 GetFiles() 当前目录的文件列表 GetFileSystemInfos() 当前目录的文件.子目录,返回强类型Fi ...
- 如何将 GitHub 中的项目导入到 stackblitz.com 中
如何将一个 GitHub 中的项目导入到 stackblitz.com 中,然后开始编辑和编译呢? 例如,我们有一个项目在 GitHub 中的地址为:https://github.com/cwiki- ...
- hdu 4763 看毛片(单纯next数组的应用--纯正O(n))
因为需要负责队内的字符串题,开始刷,做到这道,开始想不出来,上网找题解, 然后就惊了,为什么你们这么暴力都可以过的啊,1e6啊,后来又想了下会做了 贴下代码 #include <iostream ...
- 图解数据库中的join操作
1.所有的join都从cross join衍生而来 2.所有join图示 转自Say NO to Venn Diagrams When Explaining JOINs
- 动态数组C语言实现
/* * DynamicArray.h * * Created on: 2019年7月22日 * Author: Jarvis */ #ifndef SRC_DYNAMICARRAY_H_ #defi ...
- 第3周Java编程总结
1.打印输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其中各位数字立方和等于该数本身.例如,153是一个“水仙花数”. 2. 编写Java程序,求13-23+33-43+…+973-983+ ...
- [Java]算术表达式求值之一(中序表达式转后序表达式方案)
第二版请见:https://www.cnblogs.com/xiandedanteng/p/11451359.html 入口类,这个类的主要用途是粗筛用户输入的算术表达式: package com.h ...
- C语言转义字符表和ASCII码表
主要参考 http://www.51hei.com/mcu/4342.html 以及 https://www.cnblogs.com/jason207489550/p/6663444.html