Codeforces Round #325D (Div. 2) (DP)
题目链接:
分析:dp
我们先初始化,dp[i]表示当前列第i行是否可达,r[i]表示上一个dp值,接下来从头搜到尾
如果该位置满足s[i+1]=='.'且i<n,则用r[i]更新该位置的上面和下面一行,所以这是为什么数组开dp[5],r[5],
再判断该位置的i+2*k,i+2*k+1,i+2*k+2是否都是'.',表示没有火车,处于安全位置
最后判断dp[1],dp[2],dp[3]是否可达,一个可达即输出yes
详情见代码
#include<cstdio>
#include<cstring> int t,n,k,dp[],r[];
char s[][];
bool check(int x,int y){ return x < n && (s[y][x] != '.');}
int max(int a,int b){ return a > b ? a : b; }
int main()
{
for(scanf("%d",&t); t--; )
{
scanf("%d %d",&n,&k);
for(int i = ; i <= ; ++i)
{
scanf("%s",s[i]);
r[i] = dp[i] = (s[i][] == 's') && (s[i][] == '.');
}
for(int k = ,i = ; i < n; ++i,++k)
{
for(int j = ; j <= ; ++j) if(!check(i+*k,j))
{
dp[j-] = max(dp[j-],r[j]);
dp[j+] = max(dp[j+],r[j]);
}
for(int j = ; j <= ; ++j) {if(check(i+*k,j) || check(i+*k+,j) || check(i+*k+,j)) dp[j] = ;r[j] = dp[j];}
}
if(dp[] || dp[] || dp[]) puts("YES");else puts("NO");
}
return ;
}
Codeforces Round #325D (Div. 2) (DP)的更多相关文章
- 「日常训练」Alternative Thinking(Codeforces Round #334 Div.2 C)
		
题意与分析 (CodeForces - 603A) 这题真的做的我头疼的不得了,各种构造样例去分析性质... 题意是这样的:给出01字符串.可以在这个字符串中选择一个起点和一个终点使得这个连续区间内所 ...
 - 「日常训练」Kefa and Dishes(Codeforces Round #321 Div. 2 D)
		
题意与分析(CodeForces 580D) 一个人有\(n\)道菜,然后要点\(m\)道菜,每道菜有一个美味程度:然后给你了很多个关系,表示如果\(x\)刚好在\(y\)前面做的话,他的美味程度就会 ...
 - 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)
		
题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...
 - Educational Codeforces Round 63-D(基础DP)
		
题目链接:https://codeforces.com/contest/1155/problem/D 题意:给定n个数,可以选择一段连续子段将其乘x,也可以不操作,求最大连续子段和. 思路:比赛时觉得 ...
 - Codeforces Round #544 (Div. 3) dp + 双指针
		
https://codeforces.com/contest/1133/problem/E 题意 给你n个数(n<=5000),你需要对其挑选并进行分组,总组数不能超过k(k<=5000) ...
 - 「专题训练」k-Tree(CodeForces Round #247 Div.2 C)
		
题意与分析(Codeforces-431C) 题意是这样的:给出K-Tree--一个无限增长的树,它的每个结点都恰有\(K\)个孩子,每个节点到它\(K\)个孩子的\(K\)条边的权重各为\(1,2, ...
 - 「专题训练」Boredom(CodeForces Round #260 Div.1 A)
		
题意(Codeforces-455A) 给你\(n\)个数,你每次可以选择删除去一个数\(x\)获得\(x\)分,但是所有为\(x+1\)和\(x-1\)的数都得删去.问最大获得分数. 分析 这是一条 ...
 - 「日常训练」Watering Flowers(Codeforces Round #340 Div.2 C)
		
题意与分析 (CodeForces 617C) 题意是这样的:一个花圃中有若干花和两个喷泉,你可以调节水的压力使得两个喷泉各自分别以\(r_1\)和\(r_2\)为最远距离向外喷水.你需要调整\(r_ ...
 - 「日常训练」More Cowbell(Codeforces Round #334 Div.2 B)
		
题意与分析(CodeForces 604B) 题意是这样的:\(n\)个数字,\(k\)个盒子,把\(n\)个数放入\(k\)个盒子中,每个盒子最多只能放两个数字,问盒子容量的最小值是多少(水题) 不 ...
 
随机推荐
- 简述WEB项目前端脚本的一次重构历程,labJs,requireJs实践[转载]
			
重构前的状态: 大量的js代码混在繁多的Jsp文件中,对第三方的js库依赖也很杂乱.虽然在部分交互性较强的页面中,将js代码分离到了独立的js文件中,但是代码结构及依赖管理依然很乱.不说新人来了 ...
 - php桥接模式
			
php桥接模式 桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化. 示例:当一个信息时根据发送渠道分为:QQ消息.email消息.短信消息等根据消息类型分为:普通.警告.危急等每种消息都 ...
 - PAT (Advanced Level) 1035. Password (20)
			
简单题. #include<iostream> #include<cstring> #include<cmath> #include<algorithm> ...
 - MySQL基础架构
			
前段时间订阅了<Mysql实战45讲>(从原理到实战),新的一年为自己充充电.对于这部分内容,我所知道的只来源于我大学里学习的课程<数据库原理>,在大学里学习的只是简单的查询, ...
 - 怎么配置ODBC microsoft Access 安装(win10)
			
笔者看着书配置Access连接方法但就是找不到书中的"Access.mdb". 后来才知道.mdb需要自己创建....对于刚入门的我很无语啊!!!!! 下面带你走出小坑 1.从控制 ...
 - Spring基于注解的配置概述
			
以下内容引用自http://wiki.jikexueyuan.com/project/spring/annotation-based-configuration.html: 从Spring 2.5开始 ...
 - oracle coherence介绍及使用
			
网上除了官方用户指南,关于Coherence的介绍文章资料很少,因此总结出此文,从原理到快速指南和基本最佳实践,希望对需要的人提供一个参考. 1 Coherence 概述 1.1 Coherence是 ...
 - Android系统改动时间格式为24小时制
			
1. frameworks/base/packages/SettingsProvider/res/values/defaults.xml 添加<stringname="time_12_ ...
 - 让你的 EditText 所有清除
			
原文地址:让你的 EditText 所有清除 參考原文:Giving your Edit Texts the All Clear 项目地址(欢迎 Star):ClearEditText 在输入文本的时 ...
 - leetCode 67.Add Binary (二进制加法) 解题思路和方法
			
Given two binary strings, return their sum (also a binary string). For example, a = "11" b ...