CodeForces 241F Race
题目大意
给定N*M个方格状的街区,其中包括:
- 若干建筑物,双向直线的道路以及交叉路口组成了TOC。
- 每个建筑物:占恰好的一个街区。
- 每条道路:所有道路的宽度都为1个街区,并且道路都是水平的或竖直的。
- 每个交叉路口:占一个街区,位于道路的交汇处。
保证没有道路和交叉路口是相同的。
给定通过每个街区的时间,给定每个交叉路口的代号(a-z)(保证没有重复)。给定起点和终点,还有路径上所有交叉路口的代号,求在k时刻所在的位置。
解答
这道题可以纯模拟来做,记下每一个交叉路口的位置,由于路是直的,所以相邻两个经过的交叉路口之间应该有一个坐标是相同的,所以我们可以找到路径上相邻两个交叉路口,暴力从起点走到终点,即可得到答案
参考代码
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <iostream>using namespace std;int n, m, k;
char ma[200][200];
int x[30], y[30];
int rs, cs, re, ce;
char lu[20000];
int le;int main()
{ios::sync_with_stdio(false);cin >> m >> n >> k;for (int i = 1; i <= m; i++)cin >> (ma[i]+1);for (int i = 1; i <= m; i++)for (int j = 1; j <= n; j++) {if (ma[i][j] >= 'a' && ma[i][j] <= 'z') {x[ma[i][j]-'a'] = i;y[ma[i][j]-'a'] = j;ma[i][j] = '1';}ma[i][j] -= '0';}cin >> rs >> cs >> lu >> re >> ce;int nx = rs, ny = cs;int tt = 0;le = strlen(lu);int fx;while (tt < le) {if (x[lu[tt]-'a'] != nx) {fx = (x[lu[tt]-'a'] > nx) ? 1 : -1;while (k >= ma[nx][ny] && nx != x[lu[tt]-'a']) {k -= ma[nx][ny];nx += fx;}if (k < ma[nx][ny]) {cout << nx << " " << ny;return 0;}tt++;continue;}if (y[lu[tt]-'a'] != ny) {fx = (y[lu[tt]-'a'] > ny) ? 1 : -1;while (k >= ma[nx][ny] && ny != y[lu[tt]-'a']) {k -= ma[nx][ny];ny += fx;}if (k < ma[nx][ny]) {cout << nx << " " << ny;return 0;}tt++;continue;}}if (re != nx) {fx = (re > nx) ? 1 : -1;while (k >= ma[nx][ny] && nx != re) {k -= ma[nx][ny];nx += fx;}if (k < ma[nx][ny]) {cout << nx << " " << ny;return 0;}}if (ce != ny) {fx = (ce > ny) ? 1 : -1;while (k > ma[nx][ny] && ny != ce) {k -= ma[nx][ny];ny += fx;}if (k < ma[nx][ny]) {cout << nx << " " << ny;return 0;}}cout << re << ce;return 0;
}
CodeForces 241F Race相关推荐
- Codeforces Round #346 (Div. 2) D. Bicycle Race 叉积
D. Bicycle Race 题目连接: http://www.codeforces.com/contest/659/problem/D Description Maria participates ...
- Codeforces 671E Organizing a Race (贪心、线段树)
题目链接 https://codeforces.com/contest/671/problem/E 题解 完全不会做--基本是抄lk的代码 ruogu的题解: https://www.luogu.co ...
- CodeForces 592C The Big Race
公倍数之间的情况都是一样的,有循环节. 注意min(a,b)>t的情况和最后一段的处理.C++写可能爆longlong,直接Java搞吧...... import java.io.Buffere ...
- CodeForces 48C D - The Race (Fraction,数学)
每个加油的站可以确定一个alpha的上下界,比如,第i次加油站a[i],前面加了i次油,a[i]*10≤ alpha*i <(a[i]+1)*10. 取最大的下界,取最小的上界,看看两者之间的满 ...
- Codeforces Round #438 B. Race Against Time
题意: 这题题意看了我好久,意思就是给你时针,分针,秒针,再给你一个起点和终点,起点和终点均为小于12的整数,问你能不能在钟上 从起点走到终点,而不越过指针. Examples Input 12 30 ...
- 【Codeforces】659D Bicycle Race(多边形内角和公式...)
题目大意(个人理解,有错请指出):环湖骑自行车 到拐点需要拐弯,如果到这个拐点不拐弯,沿着原来的方向继续骑,如果会掉到湖里,那么这个点是危险的,这样的点有多少个? 通过画图可以了解到,所有危险的点内角 ...
- Codeforces Round #101 (Div. 2)
C.Queue(模拟) C.Queue(模拟) TimeLimit:2000MSMemoryLimit:262144KB Time\quad Limit:2000MS\quad Memory\quad ...
- CodeForces 375D Tree and Queries
传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...
- 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)
题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...
最新文章
- HTML手风琴原理,使用Html5实现手风琴案例
- SL400之换轴篇@屏轴门
- Vue.js插槽slot和作用域插槽slot-scope学习小结
- redis3.0搭建分布式集群
- 小米手机不弹出usb连接设置_安卓手机数据备份教程(华为、小米、oppo、vivo)...
- 可视化编程真的有那么糟糕?
- 排序——冒泡排序算法
- 进销存excel_Excel仓库进销存管理系统,全函数库存,查询汇总自动生成超简单...
- 【Allegro学习笔记】表面贴装封装设计过程——0603封装
- 【Adobe Premiere Pro 2020】pr2020文字与图形的关键帧制作说明、各类字体添加和字幕创建说【包含动态字幕】、特效添加说明【混合视频剪辑】
- ant 中日历组件中英文混杂解决办法
- win10下ipv6安装与设置
- C++中如何设置延时?
- 中软酒店管理系统CSHIS操作手册_数据结构_数据字典
- 推荐一个在线查看函数图象的网站 —— Desmos
- swiper跳转指定slides,其他路由跳转swiper指定slides
- Halcon找圆系列(3)找金属表面的圆孔
- 桥墩水流绕流阻力问题计算
- Unity 3D游戏开发 - U3D入门 | 3D 模型重用之预制体
- zxing 扫描闪退
热门文章
- 听故事--114个儿童睡前小故事(全文+在线听)
- 论文阅读:A Survey of Question Answering over Knowledge Base
- Centos 6.x 升级到 7
- 软件理论基础--模态逻辑系统
- linux移动子目录到上一目录,linux 把当前目录的一个子目录里的文件移动到另一个子目录里用什么指令...
- 来个模态kuang_模态对话框(modal dialogue box)中模态一词的意思是什么?
- bootstrap select API
- 安装Twisted 出错
- Edge支持谷歌内核后。。。如何屏蔽广告。
- JAVA使用Localtime_Java LocalTime plus()用法及代码示例