【杂题】cf1041fF. Ray in the tube】的更多相关文章

死于没有处理边界 题目描述 题目大意 在两面镜子上各选定一个整数位置的点 A 与 B,并从其中一个点向另一个射出一条光线,使得接收到光线的传感器数量尽可能的多.传感器不重叠. 题目分析 我们来初步考虑一下答案路径的形式. 1.$i$为奇数:那么我们以步长$1$去走,不仅一定经过最优答案的路径,还有可能会走过其他传感器.因此步长$1$囊括了所有$i$为奇数的情况. 2.$i$为偶数:沿用上续思路,用步长$2$去试试?发现$path=4k+2$.也就是说还剩下所有距离$4k$的点走不到.如果接着用步…
Ray in the tube 感觉是套路题.. 如果确定一个差值x我们如何取确定答案呢, 我们把a[ i ] -> a[ i ] % (2 * x), 把b[ i ] -> (b[ i ] + k) % (2 * x), 值相同的都能同时射到. 同时我们能发现, 对于一个差值x如果它有奇数因子, 把它除掉之后会更优, 所以我们要check的x只有2的幂次. #include<bits/stdc++.h> #define LL long long #define fi first…
---恢复内容开始--- You are given a tube which is reflective inside represented as two non-coinciding, but parallel to OxOx lines. Each line has some special integer points — positions of sensors on sides of the tube. You are going to emit a laser ray in th…
F. Ray in the tube 链接 题意: 有两条平行于x轴的直线A,B,每条直线上的某些位置有传感器.你需要确定A,B轴上任意两个整点位置$x_a$,$x_b$,使得一条光线沿$x_a→x_b$射出(碰到A,B后反射),能够碰到的传感器数量最多是多少. 每条直线上的传感器数量≤105,0≤xi≤109  分析: 很有意思的一道题. 发现和y没什么关系,只要确定$x_a$,$x_b$之间的水平距离差dx就行了. 然后寻找性质: 1.如果dx为奇数,那么dx一定可以用1来代替,并且不会更差…
正睿OI DAY3 杂题选讲 CodeChef MSTONES n个点,可以构造7条直线使得每个点都在直线上,找到一条直线使得上面的点最多 随机化算法,check到答案的概率为\(1/49\) \(n\leq k^2\) 暴力 \(n\geq k^2\),找点x,求直线l经过x,且点数最多,点数\(\geq k+1\),递归,否则再找一个 One Point Nine Nine 现在平面上有\(n\)个点,已知有一个常数\(D\). 任意两点的距离要么\(\leq D\),要么\(\geq 1.…
----19.7.30 今天又开了一个新专题,dp杂题,我依旧按照之前一样,这一个专题更在一起,根据个人进度选更题目; dp就是动态规划,本人认为,动态规划的核心就是dp状态的设立以及dp转移方程的推导,这也是训练的重中之重,所以代码不那么重要,重要的就是dp的思想; T1: A. 消失之物 题目描述 ftiasch 有 N 个物品, 体积分别是 W1, W2, ..., WN. 由于她的疏忽, 第 i 个物品丢失了. “要使用剩下的 N - 1 物品装满容积为 x 的背包,有几种方法呢?” -…
CQOI2014 数三角形 首先一看题,先容斥一波,求出网格内选三个点所有的情况,也就是C(n*m,3);然后抛出行里三点共线的方案数:C(n,3)*m; 同理就有列中三点共线的方案数:n*C(m,3) 还要刨去对角线的方案数,由于gcd(i,j)-1就是这条线((i,j)与原点的连线)的方案数,然后这样的线斜着因为方向不同就要*2 然后这样的线在整个网格中总共有(m-j+1)*(n-i+1)种所以求出公式C(n*m,3)-n*C(m,3)-m*C(n,3)-∑(m-j+1)*(n-i+1)*(…
自闭集训 Day6 杂题选讲 CF round 469 E 发现一个数不可能取两次,因为1,1不如1,2. 发现不可能选一个数的正负,因为1,-1不如1,-2. hihoCoder挑战赛29 D 设\(f(x)\)表示最后一个数小于等于\(x\)的答案,从左往右加入数并维护\(f(x)\). 加入\(A\)的时候\(f(x)\)要加上\(|x-A|\),再对\(f(x-1)\)取min. 显然\(f(x)\)是一个分段函数,而且斜率是连续整数. 于是只需要维护拐点就可以知道函数长什么样.每次就是…
Preface 又自己开了场CF/Atcoder杂题,比昨天的稍难,题目也更有趣了 昨晚炉石检验血统果然是非洲人... 希望这是给NOIP2018续点rp吧 A.CF1068C-Colored Rooks 现在还没理解题意... B. CF1070K-VideoPosts 一道模拟,没什么好说的. 不过一开始还是WA了...一个智障的坑,感觉做题还是不细心 const int maxn=100005; const int inf=0x7fffffff; int a[maxn],ave,n,k,c…
  记录一些没有写在其他随笔中的 Codeforces 杂题, 以 Problemset 题号排序   1326D2 - Prefix-Suffix Palindrome (Hard version) 题意: 给出一个串 s, |s| ≤ 1e6, 要求选出一个前缀和一个后缀(不相交, 可以为空), 使得它们连接后是一个回文串. 求最长的回文串. 思路: 马拉车处理半径数组, 用前缀, 后缀, 半径与相同的前后缀相交的情况更新答案. view code #include <bits/stdc++…
杂题 2019-11-03  21:09:37  by冲冲 1.类加载器的双亲委派机制 类加载器:把类通过类加载器加载到JVM中,然后转换成class对象(通过类的全路径来找到这个类). 双亲委派机制:当有一个类进入虚拟机加载环节后,但是他自己的类加载器不去加载,而是让其父类加载器加载(让上级加载器加载),只有当父类加载器找不到这个类的时候,子类加载器才会去加载. 优点:为了安全,Object是所有类的父类,系统类的加载都是经过Object加载器加载.此时,如果有一个自定义的类,但是类名和系统类…
由于换了台电脑,而我的贪心 & 构造能力依然很拉跨,所以决定再开一个坑( 前传: 贪心/构造/DP 杂题选做 u1s1 我预感还有Ⅲ(欸,这不是我在多项式Ⅱ中说过的原话吗) 24. P5912 [POI2004]JAS 一开始直接莽了个点分治,当我测过了样例美滋滋地一交,发现自己获得了 20 分的好成绩之后,才发现事情有那么亿点点不对劲( 不难发现,题目等价于求高度最小的点分树的高度,直接求有点困难,我们不妨来对其进行一些转化:我们考虑给每个点一个标号,那么问题可以转化为,求使得任意两个标号相同…
颓!颓!颓!(bushi 前传: 贪心/构造/DP 杂题选做 贪心/构造/DP 杂题选做Ⅱ 51. CF758E Broken Tree 讲个笑话,这道题是 11.3 模拟赛的 T2,模拟赛里那道题的名字叫猛张(orz ztr),而我刚好在 11.4 把这题 A 了.乍一看好像也没啥问题,不过模拟赛时间是 2020.11.3,而我 AC 这道题的时间是 2021.11.4((( 首先看到这样的题我们肯定会想到贪心,具体来说我们 DFS 一遍整棵树,DFS 到一个节点 \(x\) 时,我们考虑用最…
昨天晚上全机房集体开\(Div2\),因为人傻挂两次\(B\)题的我开场就\(rank2000+\dots qwq\)于是慌乱之中的我就开始胡乱看题(口胡),于是看了\(F\dots\)(全机房似乎也就我一个人慌到心态爆炸) 起初想到的只有\(n^2\)的暴力,然而复杂度显然炸了,于是试图寻找规律,但是只想到一个假结论:忽略\(y\),然后取上面坐标为奇数的点数与下面坐标为偶数的点数的和与上面坐标为偶数的点数与下面坐标为奇数的点数的和,也即步长为\(1\) 但是显然这样过不了样例啊(上面的方法输…
POJ2152 树形dp,每次先dfs一遍求出距离再枚举所有点转移即可. #include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> using namespace std; inline int read() { ,f=; char ch=getchar(); ; ch=getchar();} +ch-'; ch=getcha…
UVa 11572 - Unique Snowflakes 问一个数组中,无重复数字的最长子串长度是多少. 用map维护某数字上次出现的位置.另外用变量last表示上次出现数字重复的位置. 如果出现重复数字,且map[val]>last时,计算当前区间长度,然后last变为map[val]+1. 其他时候增长区间长度即可. 每次遍历一个元素都要更新map[val],用区间长度更新最优解. #include<iostream> #include<vector> #include…
嗯...这是一道水题... 鉴于还没人写这题的题解, 那我就来写一发. 题意:有个边长为300米的正方形 嗯  这样标号 有两个人A和S,开始的时候A.S都在1(左下角)那个位置. 两个人都要按照2.3.4.1的顺序走. 有两个得分的方法:  ①. 比对手先走到点(2或3或4或1) 先走到的得1分,后走到的不得分. ②. A把S打一顿,A得一分. 题目问的是A能不能获得胜利. A在正方形里面也是可以随便走的.(比如A能直接从1走直线到3, 但是如果他要得分,他必须回到2,按照2341的顺序走 才…
中文题,题意不多说. 本来感觉很像dp 其实只要从上到下维护单调性就好了 坑是......这个oj......用cin很容易TLE...... //#include <bits/stdc++.h> #include <cstdio> #include <cstdlib> #include <cstring> #include <cctype> #include <climits> #include <iostream> #…
题目链接 题意:从1号点走到n号点(每条边只能走一次, 两结点间的边数必定为奇数) 问 经过结点不同顺序的方式有多少种(如1->2->3->4和1->3->2->4为两种) 方法数模上1000000007 此题只需先考虑相邻两结点交替的方法数 然后依次递推相乘即可 就是:如从1走到5 只需先考虑2.3交替的方法数:(很明显与边数有关的组合数) 然后类似的考虑3.4交替的方法数 最后全部相乘就可以了 公式是$\displaystyle\prod\limits_{i=1}^…
题目链接 题意:中文题 题意不多赘述 值得注意的是n<m 不必考虑n==m的情况 (m是盒子个数, n是每次选取的盒子个数, 不要弄反了!) 这题一看就是同余方程 每次选取n个盒子放球 也就是说每次都增加n个球 最后m个盒子中球的个数相等, 也就是最终状态球的总数为m的倍数 于是 很容易能得到同余方程:sum+x*n=y*m   (sum为出示状态共有sum个球) 其中x为 需要选x次盒子放球 y为 最终每个盒子有y个球 接下来只要解同余方程 若无解, 则无论怎样操作都不能达到这个目的 若有解…
题目链接 题意:题中给了图,所以不看字大概也知道  求的是第n个图形的面积. 就是找规律 递推 一类的... 先给结论: 很鬼畜的公式:    $\displaystyle\frac{3\times 17^n+2\times 7^n}{5}$ 递推式是:  $\displaystyle S_n = S_{n-1}\times 17-4\times 7^{n-1}$ 重点在于17和7是怎么来的. 在题图的基础上画些个框框 观察可以发现 图1中的 $1\times 1$的方格变成了图2中$\sqrt…
  Longest Paths  It is a well known fact that some people do not have their social abilities completely enabled. One example is the lack of talent for calculating distances and intervals of time. This causes some people to always choose the longest w…
本文出自:http://blog.csdn.net/svitter 过桥问题解释:一条船能够坐两个人,可是有非常多人要过河,所以送过一个人去,还有一个人还要回来接.使全部人过河之后时间最短,怎样求? 此问题曾作为阿里巴巴题目 初看此题想的太过简单,直接让跑的最快的送过去,自己再跑回来就可以.事实上不然. 函数g(a,b)表示过河,b(a)表示回来.假设过河时间分别为1,2,5,10 那么两种过河方案: 1.初想方案: g(1,2)=2 g (1, 10) = 10 g (1, 5 ) =  5…
Problem 1 世界上最可爱的珂朵莉 时间限制:C/C++ 1秒,空间限制:C/C++ 65536K 题目描述 我永远喜欢珂朵莉~! 有两个长为n的序列a[i]与b[i] 你可以把任意不多于x个a序列中的数变成y 你可以把所有序列b中的数减去一个非负数t 你可以把a序列和b序列分别任意打乱 要求对于1 <= i <= n满足a[i] >= b[i] 求t的最小值 输入描述: 第一行三个数n,x,y 之后一行n个数表示a序列 之后一行n个数表示b序列 输出描述 一行一个非负数表示答案…
这种小题首先根据 n/1+n/2+n/3+--+n/n=nlogn+欧拉常数r 可以知道 1e12的范围也不会爆longlong,不需要写高精度(到现在都不会写) 再根据数据范围可知O(n)级别的暴力不可过,所以考虑到了sqrt(n)的算法 当i<=sqrt(n)时,最多只有sqrt(n)个不同的数,结果值一定小于sqrt(n); 当sqrt(n)<i时,[n/i]<sqrt(n),故一定有小于sqrt(n)种结果 最后顺序遍历,但统计时遇到下相同n/i值直接累加并跳过 1    2  …
题目是来自HZW的博客(构造题我是各种不会...) Solved 1 / 1 A CodeForces 500A New Year Transportation Solved 1 / 1 B CodeForces 437C The Child and Toy Solved 1 / 2 C CodeForces 510C Fox And Names Solved 1 / 3 D CodeForces 475B Strongly Connected City Solved 1 / 2 E CodeF…
A POJ 1018 Communication System B POJ 1050 To the Max C POJ 1083 Moving Tables D POJ 1125 Stockbroker Grapevine E POJ 1143 Number Game F POJ 1157 LITTLE SHOP OF FLOWERS G POJ 1163 The Triangle H POJ 1178 Camelot I POJ 1179 Polygon J POJ 1189 钉子和小球 K…
https://www.xoj.red/contests/show/1231 下面会写一些题目的解析什么的,当然不会粘贴题目只是简单提一下 (部分题目简单的题目就不概括了) 其实难度应该前面比较低. 问题A: 3894: Out of Sorts 本题求出冒泡排序需要几趟. 考虑一次冒泡排序的交换,减小对应1个位子上的1个逆序对. 但是对于每一个位子所需要减小的逆序对数量是不一样的. 对于每一趟,消去每一个位子上1个逆序对所以趟数就是每个位子上的数产生逆序对数的最大值. 最后的+1指的是即使上一…
这道题没有什么可说的,先统计,然后几次快排,答案就出来了 Code(整齐但不简洁的代码) #include<iostream> #include<cstdio> #include<fstream> #include<cstring> #include<queue> #include<algorithm> using namespace std; typedef bool boolean; template<typename T&…
前言: 因为要普及了,今年没一等就可以退役去学文化课了,所以暑假把历年noip普及组都刷了一遍,离noip还有50+天,想弄点强化训练什么的. 想了想,就这些天学文化课之余有空就把AtCoder之前那些ARC 的 C D E 什么的刷一下吧(一般是D,可能会有简单一点的E和难一点的C)(可能会很慢,毕竟基本有时间也就周末了) 所以就开了这个坑鞭策一下自己,上个坑是dp的,开了50题,补的巨累...这次吸取教训,只开20题...(也没那么多时间去刷题了) 不会说题意,题意的话可以上网找或者去原站看…