[CF1041F Ray in the tube][数学]
http://codeforces.com/contest/1041/problem/F
题目大意:
下边界有n个给定点,上边界有m个给定点,可以从任意一个点发出一条激光,激光碰到边界会反射
激光到达边界必须打到整数点,问最多可以打到几个给定点

输入格式:
第一行两个整数n,y1,表示下边界给定点的个数和下边界的纵坐标
第二行n个整数,表示给定点的横坐标
第三行两个整数m,y2,表示上边界给定点的个数和上边界的纵坐标
第四行m个整数,表示给定点的横坐标
题解:设起点横坐标为Xa,步长为Dx,则经过的第一行的点满足X=Xa+2*k*Dx,第二行的点满足X=Xa+(2*k+1)*Dx,发现步长为1时经过的点总可以覆盖步长Dx为奇数的点,所以可以通过步长为1来代替步长为奇数的情况,而当步长Dx为偶数时(即Dx=a*b,a为奇数,b为偶数),总可以转化成步长为b的情况,所以偶数都可以转化成步长为2的整数幂的情况,综上可得,只需要枚举2的0~29次幂即可,使用map存下来所有数%(2*Dx)的数量即可
[CF1041F Ray in the tube][数学]的更多相关文章
- CF1041F Ray in the tube
挂上Chester大神的解题报告 有一个思维跳跃的地方,就是不应该枚举所有的$B$点,而是应该在选定一个$A$点之后枚举距离计算. 然后我们发现枚举距离是$2^k$的长度就可以了,证明如下: 假如距离 ...
- CF1041F Ray in the tube构造_思维
不难发现起点必定是一个点. 每次间隔的距离一定是 2k2^k2k,关键就是要判断两点是否在同一跳跃距离上可被同时覆盖. 我们可以对上边进行 x1≡x_{1}\equivx1≡ x2mod(2∗dx) ...
- L - Ray in the tube Gym - 101911L (暴力)
---恢复内容开始--- You are given a tube which is reflective inside represented as two non-coinciding, but ...
- Codeforces 1041F Ray in the tube (看题解)
Ray in the tube 感觉是套路题.. 如果确定一个差值x我们如何取确定答案呢, 我们把a[ i ] -> a[ i ] % (2 * x), 把b[ i ] -> (b[ i ...
- CF 1041 F. Ray in the tube
F. Ray in the tube 链接 题意: 有两条平行于x轴的直线A,B,每条直线上的某些位置有传感器.你需要确定A,B轴上任意两个整点位置$x_a$,$x_b$,使得一条光线沿$x_a→x_ ...
- Codeforces | CF1041F 【Ray in the tube】
昨天晚上全机房集体开\(Div2\),因为人傻挂两次\(B\)题的我开场就\(rank2000+\dots qwq\)于是慌乱之中的我就开始胡乱看题(口胡),于是看了\(F\dots\)(全机房似乎也 ...
- Codeforces.1041F.Ray in the tube(思路)
题目链接 \(Description\) 有两条平行于\(x\)轴的直线\(A,B\),每条直线上的某些位置有传感器.你需要确定\(A,B\)轴上任意两个整点位置\(x_A,x_B\),使得一条光线沿 ...
- Codeforces Round #509 (Div. 2) F. Ray in the tube(思维)
题目链接:http://codeforces.com/contest/1041/problem/F 题意:给出一根无限长的管子,在二维坐标上表示为y1 <= y <= y2,其中 y1 上 ...
- 【杂题】cf1041fF. Ray in the tube
死于没有处理边界 题目描述 题目大意 在两面镜子上各选定一个整数位置的点 A 与 B,并从其中一个点向另一个射出一条光线,使得接收到光线的传感器数量尽可能的多.传感器不重叠. 题目分析 我们来初步考虑 ...
随机推荐
- dom常用操作
创建节点:document.createElement(元素名), document.createTextNode(文本内容) 添加节点:parent.appendChild(newChild) 移除 ...
- 下载并配置jdk
①下载jdk安装到本机,这里是jdk8下载地址,请根据自己机子的环境进行下载 https://www.oracle.com/technetwork/java/javase/downloads/jdk8 ...
- ranch 源码分析(二)
接上ranch 源码分析(一) 上次讲到了ranch.erl的start_listener函数,下面我们详细分析下这个函数 -module(ranch). %...... 省略若干行 -spec st ...
- recon工具解读
recon 是ferd 大神 释出的一个 用于生产环境诊断Erlang 问题的一个工具, 不仅仅是对Erlang stdlib 接口的封装, 还有memory fragmentation 相关的函数. ...
- CAM(Content Addressable Memory)介绍
CAM是一种特殊的存储器.所谓CAM,即内容寻址存储器.CAM存储器在其每个存储单元都包含了一个内嵌的比较逻辑,写入CAM的数据会和其内部存储的每一个数据进行比较,并返回与端口数据相同的所有内部数据的 ...
- yii框架通过http协议获取地址栏中的内容
//创建一个控制器 <?php namespace frontend\controllers; use frontend\models\Zhuce; use Yii; use yii\web\C ...
- 91. Reverse Linked List 反转链表
网址:https://leetcode.com/problems/reverse-linked-list/ 直接参考92:https://www.cnblogs.com/tornado549/p/10 ...
- 网站压力测试工具http_load的安装与使用
一.安装 1.下载地址:http://www.acme.com/software/http_load/http_load-09Mar2016.tar.gz 2.解压后进入目录,执行make & ...
- animation特效
在小程序中的使用: <view class='test1'> <image src='/images/light.png'></image> </view&g ...
- linux软件管理 软件安装
软件包分类 1) 源代码包 脚本安装包 2) 二进制包 (RPM包,系统默认包) 源码包编译后形成二进制包 JDK的安装 下载jdk的文件解压 tar -zxvf jdk-8u144-linu ...