数轴

傅里叶变换的推导

╄→гoц情女王★ 提交于 2020-03-03 12:05:18
三角函数形式: f ( t ) = a 0 2 + ∑ n = 1 ∞ [ a n c o s ( n w t ) + b n s i n ( n w t ) ] (1) f(t)=\frac{a_0}{2}+\sum_{n=1}^\infty[~a_ncos(nwt)+b_nsin(nwt)~] \tag{1} f ( t ) = 2 a 0 ​ ​ + n = 1 ∑ ∞ ​ [ a n ​ c o s ( n w t ) + b n ​ s i n ( n w t ) ] ( 1 ) a 0 = 2 T ∫ − π π f ( t ) d t (2) a_{0}=\frac{2}{T} \int_{-\pi}^{\pi} f(t) d t \tag{2} a 0 ​ = T 2 ​ ∫ − π π ​ f ( t ) d t ( 2 ) a n = 2 T ∫ t 0 t 0 + T f ( t ) c o s ( n w t ) d t (3) a_n=\frac{2}{T}\int_{t_0}^{t_0+T}f(t)cos(nwt)dt \tag{3} a n ​ = T 2 ​ ∫ t 0 ​ t 0 ​ + T ​ f ( t ) c o s ( n w t ) d t ( 3 ) b n = 2 T ∫ t 0 t 0 + T f ( t ) c o s ( n w

F - 青蛙的约会

随声附和 提交于 2020-01-24 18:29:01
F - 青蛙的约会 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。为了帮助这两只乐观的青蛙,你被要求写一个程序来判断这两只青蛙是否能够碰面,会在什么时候碰面。 我们把这两只青蛙分别叫做青蛙A和青蛙B,并且规定纬度线上东经0度处为原点,由东往西为正方向,单位长度1米,这样我们就得到了一条首尾相接的数轴。设青蛙A的出发点坐标是x,青蛙B的出发点坐标是y。青蛙A一次能跳m米,青蛙B一次能跳n米,两只青蛙跳一次所花费的时间相同。纬度线总长L米。现在要你求出它们跳了几次以后才会碰面。 Input 输入只包括一行5个整数x,y,m,n,L,其中x≠y < 2000000000,0 < m、n < 2000000000,0 < L < 2100000000。 Output 输出碰面所需要的跳跃次数,如果永远不可能碰面则输出一行"Impossible" Sample Input 1 2 3 4 5 Sample Output 4 题目描述: 2只乐观的青蛙要求约会

程序设计:蒜头君的数轴

╄→尐↘猪︶ㄣ 提交于 2020-01-08 02:15:34
程序设计:蒜头君的数轴 (考数论知识) 今天蒜头君拿到了一个数轴,上边有 n 个点,但是蒜头君嫌这根数轴不够优美,想要通过加一些点让它变优美,所谓优美是指考虑相邻两个点的距离,最多只有一对点的距离与其它的不同。蒜头君想知道,他最少需要加多少个点使这个数轴变优美。 输入格式 输入第一行为一个整数 n(1<=n<=10^5)表示数轴上的点数。第二行为 n 个不重复的整数 x1​,x2​,…,xn​(-10^9 ≤xi​≤10^9),表示这些点的坐标,点坐标乱序排列。 输出格式 输出一行,为一个整数,表示蒜头君最少需要加多少个点使这个数轴变优美。 样例输入 4 1 3 7 15 样例输出 1 思路:该题考察的是数论里边的最大公约数,自己也是从开始的摸不着头脑,一点一点解析题意。 首先分析题目,n个点都在数轴上,并且起初是乱序(想到这里就需要对这组整数排序),优美就是n个点分成了n-1个线段,这n-1个线段的长度最多有1个距离与其他不同,你要做的就是进行加点满足优美的条件,该题是问加了多少点,所以只需考虑加的点数即可。 先存入n个整数,求出n-1个距离(求出n-1个距离和,后边有用),然后我们通过删去其中一个距离(注意是依次删除每个距离,就是枚举)求其他n-2个距离的最大公因数gcd,同时也得求出sum(n-2个距离和),用sum除gcd就是你n-2个距离被均等的分成若干段

龙珠雷达 双指针+DP

匿名 (未验证) 提交于 2019-12-03 00:11:01
龙珠雷达 双指针+DP 你得到了一个龙珠雷达,它会告诉你龙珠出现的时间和地点。    龙珠雷达的画面是一条水平的数轴,每一个窗口时间,数轴的某些点上会出现同一种龙珠,每当你获得其中一颗龙珠,其它龙珠就会消失。下一个窗口时间,数轴上又会出现另一种龙珠。总共有n个窗口时间,也就是总共有n种龙珠。   假设你会瞬间移动,你从数轴的x点移动到y点,耗时0秒,但是需要耗费|x-y|的体力。同时,挖出一颗龙珠也需要耗费一定的体力。请问,最少耗费多少体力,就可以收集齐所有种类的龙珠。 解: 方程我就不说了 详见代码 话说我开先想的居然是 最短路 然后空间还算错 导致MLE 真是zz 这里主要说优化 首先注意到 为了让i-1层的 \(dis(k)<dis(j)\) 我们需要找最小的满足条件的 随着第i层j的线性增加$ dis(k) $的范围越来越大 所以可以考虑 双指针求极值 code: // #include <iostream> #include <cstdio> #include <stdio.h> #include <cmath> #include <algorithm> #include <cstdlib> #include <queue> #define ll long long using namespace std ; #define maxnn 10005 ll f [ 55 ]

9.15练习赛

廉价感情. 提交于 2019-11-29 16:25:12
CSP2019 练习赛 3 小时完成 (请选手务必仔细阅读本页内容) 一. 题目概况 中文题目名称 碎片 龙珠 仓库 英文题目名称 piece dragon warehouse 可执行文件名 piece dragon warehouse 输入文件名 piece.in dragon.in warehouse.in 输出文件名 piece.out dragon.out warehouse.out 每个测试点时限 1 秒 1 秒 1 秒 测试点数目 10 10 10 每个测试点分值 10 10 10 附加样例文件 有 有 有 结果比较方式 全文比较 过滤行末空格 及文末回车 全文比较 过滤行末空格 及文末回车 全文比较 过滤行末空格 及文末回车 题目类型 传统 传统 传统 二. 提交源程序文件名 对于 pascal 语言 piece.pas dragon.pas warehouse.pas 对于 C 语言 piece.c dragon.c warehouse.c 对于 C++语言 piece.cpp dragon.cpp warehouse.cpp 三. 运行内存限制 内存上限 128M 128M 256M 四. 注意事项 1、 文件名(程序名和输入输出文件名)必须使用小写。 2、 C/C++中函数 main()的返回值类型必须是 int,程序正常结束时的返回值必须是 0。 3、