题目大意:

Aroma想要找数据
第0个数据再x0,y0这个点
其后所有数据所在的坐标点满足
x[i]=x[i-1]*ax+bx
y[i]=y[i-1]*ay+by
Aroma一开始在点(xs,ys),她最多只能走t步
两点间的距离用Δx+Δy表示
问Aroma最多能走到多少个点(找到多少个数据)?

解题思路:
因为ax和ay是大于等于2的整数
所以序号越大点越离散
所以最多只有log1e16约等于60个点
贪心枚举第一步要去的点i,然后从i开始先往点的序号小的点走 i-1, i-2 ,... 0
如果步数t还有剩余再考虑i+1以上的点
记录每次枚举可以到达的点的个数,取最大输出

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll e16=1e16;
ll x[],y[];
void solve(){
ll x0,y0,ax,ay,bx,by,xs,ys,t;
cin>>x0>>y0>>ax>>ay>>bx>>by>>xs>>ys>>t;
x[]=x0;
y[]=y0;
ll i,j,mxn,ans,ansd,td;
for(i=;x[i-]<=e16&&y[i-]<=e16;i++){
x[i]=x[i-]*ax+bx;
y[i]=y[i-]*ay+by;
}
mxn=i-;
ans=;
for(i=;i<=mxn;i++){
ansd=;
td=t;
if((td=td-abs(xs-x[i])-abs(ys-y[i]))>=)
ansd++;
for(j=i-;j>=&&td>;j--){
if((td=td-abs(x[j+]-x[j])-abs(y[j+]-y[j]))>=)
ansd++;
}
if(td>&&(td=td-abs(x[i+]-x[])-abs(y[i+]-y[]))>=)
ansd++;
for(j=i+;j<=mxn&&td>;j++){
if((td=td-abs(x[j]-x[j-])-abs(y[j]-y[j-]))>=)
ansd++;
}
ans=max(ans,ansd);
}
cout<<ans<<endl;
}
int main(){
ios::sync_with_stdio();
cin.tie();cout.tie();
solve(); return ;
}

Codeforces 1292B/1293D - Aroma's Search的更多相关文章

  1. N - Aroma's Search CodeForces - 1293D math+greedy

    作为DIV2的D题来讲,这个题目不算难. 题目大意:再规定的时间内寻找宝藏,第i个宝藏的位置为a*x(i-1)+b,a*y(i-1)+b.然后给出初始位置xs,ys和时间t让求再时间t内能够寻找到多少 ...

  2. Codeforces 1237E Perfect Balanced Binary Search Tree

    题目链接 Observations 含有 $n$ 个点且 key(以下也称 key 为「权值」)是 1 到 $n$ 的 BST 具有下列性质: 若 $k$ 是一个非根叶子且是个左儿子,则 $k$ 的父 ...

  3. CF1292B Aroma's Search 题解

    Content 给定一个坐标系,已知第一个点的坐标为 \((x_0,y_0)\),第 \(i(i>0)\) 个点的坐标满足这样的两个递推式:\(x_i=a_xx_{i-1}+b_x,y_i=a_ ...

  4. codeforces每日一题1-10

    目录: 1.1093D. Beautiful Graph(DFS染色) 2.514C - Watto and Mechanism(Tire) 3.69E.Subsegments(STL) 4.25C. ...

  5. Codeforces Round #614 (Div. 2) A-E简要题解

    链接:https://codeforces.com/contest/1293 A. ConneR and the A.R.C. Markland-N 题意:略 思路:上下枚举1000次扫一遍,比较一下 ...

  6. Codeforces Round #614 (Div. 2) D

    变色失败 只加8分 距离变色只差5分 B题没想到那么简单,结论秒猜,不敢交,傻傻验证5分钟. C题也想了码了好一会儿,我动态维护set做的. 1小时3题,整体难度好像没以前那么大了?(虽然也不强,但比 ...

  7. Codeforces #614 div.2 (A-E)

    A  ConneR and the A.R.C. Markland-N #include <bits/stdc++.h> using namespace std; #define ll l ...

  8. codeforces Round #440 A Search for Pretty Integers【hash/排序】

    A. Search for Pretty Integers [题目链接]:http://codeforces.com/contest/872/problem/A time limit per test ...

  9. codeforces A. In Search of an Easy Problem

    A. In Search of an Easy Problem time limit per test 1 second memory limit per test 256 megabytes inp ...

随机推荐

  1. JS照片轮换

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. 【MySQL基础打卡(一)】查询语句项目作业

    文章目录 1.查找email表中重复的电子邮箱 1.1 创建email数据表 1.2 找出重复Email 2.查找大国家 2.1 创建数据表 2.2 查找大国家 对于安装MySQL比较恐惧,所以想在虚 ...

  3. comparable接口 和 comparator接口的特点与区别

    1. Comparator 和 Comparable 相同的地方 他们都是java的一个接口, 并且是用来对自定义的class比较大小的. 什么是自定义class: 如 public class Pe ...

  4. Day 3:集合

    数组: 存储同一种数据类型的集合容器数组的特点: 1. 只能存储同一种数据类型的数据. 2. 一旦初始化,长度固定.  3. 数组中的元素与元素之间的内存地址是连续的. 注意: Object类型的数组 ...

  5. 洛谷 P5661 公交换乘(队列)

    题目传送门 解题思路: 暴力模拟. AC代码: #include<iostream> #include<cstdio> #include<queue> using ...

  6. 题解P4201: [NOI2008]设计路线

    发现给出了一棵树, 不是树的情况直接输出-1 考虑进行DP, 设f[i][0/1/2]为i的子树中选小于等于0/1/2条边修路的方案数, 不妨对于一个节点, 先考虑正好相等的情况, 假设当前扫到了一个 ...

  7. Class.forName(String className)解析

    功能: Class.forName(xxx.xx.xx)返回的是一个类 Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载指定的类, 也就是说JVM会执行该类的静态代码段 一 ...

  8. getComputedStyle() 和 getPropertyValue()

    // getComputedStyle() 方法用于获取指定元素的 CSS 样式. // 获取的样式是元素在浏览器中最终渲染效果的样式. // getPropertyValue() 方法返回指定的 C ...

  9. selenium破解人人登陆验证码

    from selenium import webdriverfrom PIL import Imagefrom chaojiying import Chaojiying_Clientimport ti ...

  10. 简单模拟B1011

    #include<iostream> using namespace std; int main() { int n; long long a,b,c; cin >> n; ; ...