Codeforces 1117C Magic Ship (二分)
题意:
船在一个坐标,目的地在一个坐标,每天会有一个风向将船刮一个单位,船也可以移动一个单位或不动,问最少几天可以到目的地
思路:
二分天数,对于第k天
可以分解成船先被吹了k天,到达坐标(x1+sumx[k%n]+k/n*sumx[n], y1+sumy[k%n]+k/n*sumy[n])
然后船在无风的情况下自己走k天是不是能到目的地就行了
注意二分的上限,如果能走到的情况下船可能每轮风只能移动一个有效单位,所以上限应该是1e9*1e5
代码:
#include<iostream>
#include<cstdio>
#include<algorithm>
//#include<cmath>
#include<cstring>
#include<string>
#include<stack>
#include<queue>
#include<deque>
#include<set>
#include<vector>
#include<map>
#include<functional> #define fst first
#define sc second
#define pb push_back
#define mem(a,b) memset(a,b,sizeof(a))
#define lson l,mid,root<<1
#define rson mid+1,r,root<<1|1
#define lc root<<1
#define rc root<<1|1
#define lowbit(x) ((x)&(-x)) using namespace std; typedef double db;
typedef long double ldb;
typedef long long ll;
typedef long long LL;
typedef unsigned long long ull;
typedef pair<int,int> PI;
typedef pair<ll,ll> PLL; const db eps = 1e-;
const int mod = ;
const int maxn = 2e6+;
const int maxm = 2e6+;
const int inf = 0x3f3f3f3f;
//const db pi = acos(-1.0); ll x1, x2;
ll y1, y2;
ll n;
char a[maxn];
ll sumx[maxn];
ll sumy[maxn];
bool ck(ll k){
ll x = x1;
ll y = y1;
x += k/n*sumx[n] + sumx[k%n];
y += k/n*sumy[n] + sumy[k%n];
ll d = abs(x-x2)+abs(y-y2);
if(d<=k)return true;
return false;
}
int main() {
scanf("%lld %lld", &x1,&y1);
scanf("%lld %lld", &x2,&y2);
scanf("%lld", &n);
scanf("%s",a+);
ll l = , r = 1e15;
for(int i = ; i <= n; i++){
sumx[i] = sumx[i-];
sumy[i] = sumy[i-];
if(a[i]=='U'){
sumy[i]++;
}
if(a[i]=='D'){
sumy[i]--;
}
if(a[i]=='L'){
sumx[i]--;
}
if(a[i]=='R'){
sumx[i]++;
}
}
ll ans = -;
while(l <= r){
ll mid = (l+r)/;
//printf("%lld %lld %lld\n", l, r, mid);
if(ck(mid)){
r = mid-;
ans = mid;
}
else{
l = mid+;
}
}
printf("%lld", ans);
return ; }
/*
10
59 -17 5 67 87 50 -71 54 27 -10 */
Codeforces 1117C Magic Ship (二分)的更多相关文章
- CodeForces 1117C Magic Ship (循环节+二分答案)
<题目链接> 题目大意: 给定起点和终点,某艘船想从起点走到终点,但是海面上会周期性的刮风,船在任何时候都能够向四个方向走,或者选择不走,船的真正行走路线是船的行走和风的走向叠加的,求船从 ...
- CodeForces 670D2 Magic Powder 二分
D2. Magic Powder - 2 The term of this problem is the same as the previous one, the only exception — ...
- Educational Codeforces Round 60 (Rated for Div. 2) - C. Magic Ship
Problem Educational Codeforces Round 60 (Rated for Div. 2) - C. Magic Ship Time Limit: 2000 mSec P ...
- C. Magic Ship cf 二分
C. Magic Ship time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...
- CF1117C Magic Ship
CF1117C Magic Ship 考虑到答案具单调性(若第 \(i\) 天能到达目的点,第 \(i+1\) 天只需向风向相反的方向航行),可以二分答案. 现在要考虑给出一个天数 \(m\) ,问 ...
- 题解-Magic Ship
Magic Ship 你在 \((x_1,y_1)\),要到点 \((x_2,y_2)\).风向周期为 \(n\),一个字符串 \(s\{n\}\) 表示风向(每轮上下左右),每轮你都会被风向吹走一格 ...
- [Codeforces 1199C]MP3(离散化+二分答案)
[Codeforces 1199C]MP3(离散化+二分答案) 题面 给出一个长度为n的序列\(a_i\)和常数I,定义一次操作[l,r]可以把序列中<l的数全部变成l,>r的数全部变成r ...
- 【Codeforces 1117C】Magic Ship
[链接] 我是链接,点我呀:) [题意] 题意 [题解] 我们可以把这个行船的过程分解成两个过程 1.船经过时间t被风吹到了某个地方 2.船用这t时间尝试到达终点(x2,y2) 会发现如果时间t能最终 ...
- C. Magic Ship (思维+二分)
https://codeforces.com/contest/1117/problem/C 你是一个船长.最初你在点 (x1,y1) (显然,大海上的所有点都可以用平面直角坐标描述),你想去点 (x2 ...
随机推荐
- AVR单片机教程——ADC
ADC 计算机的世界是0和1的.单片机可以通过读取0和1来确定按键状态,也可以输出0和1来控制LED.即使是看起来不太0和1的PWM,好像可以输出0到5V之间的电压一样,达到0和1之间的效果,但本质上 ...
- asp.net core系列 74 Exceptionless服务端安装
一. Docker安装 Docker 要求版本Docker 18.09.0+以上 安装地址:https://www.runoob.com/docker/windows-docker-insta ...
- 在Winform界面中使用DevExpress的TreeList实现节点过滤查询的两种方式
在我较早的一篇随笔<在DevExpress程序中使用TeeList控件以及节点查询的处理>中,介绍了在树形列表TreeList控件上面,利用SearchControl实现节点的模糊查询过滤 ...
- 小技巧(2) 查询自己博客的SEO(如果违规,请先提醒)
今天,教大家查看自己博客的SEO. 首先,上网站http://seo.chinaz.com/ 接着,在网页输入框中输入自己博客地址(带后面路径,不是cnblogs.com这样的,类似https://w ...
- Android Studio build不显示Generate signed apk问题
如果是刚装的AS,那么新建一个项目,进入项目后,会发现build选项卡缺了一些选项,同时底部sync在转圈圈,其实是AS在自动下载gradle,也许还在下载build-tools,我等了11分钟才结束 ...
- 越来越清晰的TFRecord处理图片的步骤
# 首先是模块的导入 """ os模块是处理文件夹用的 PIL模块是用来处理图片的 """ import tensorflow as tf ...
- docker制作cenos+php56+nginx镜像
首先你环境要安装好docker 1 获取centos镜像. docker search centos 选取第一个官方镜像. docker pull docker.io/centos 新建镜像挂载目录 ...
- graphviz 的使用教程
node 节点属性如下 : Name Default Values color black node shape color comment any string (format-dependen ...
- SpringCloud-Hystrix原理
Hystrix官网的原理介绍以及使用介绍非常详细,非常建议看一遍,地址见参考文档部分. 一 Hystrix原理 1 Hystrix能做什么 通过hystrix可以解决雪崩效应问题,它提供了资源隔离.降 ...
- cogs 1176. [郑州101中学] 月考 字典树
1176. [郑州101中学] 月考 ★★☆ 输入文件:mtest.in 输出文件:mtest.out 简单对比时间限制:1 s 内存限制:128 MB [题目描述] 在上次的月考中B ...