数学
lengxuenong
这个作者很懒,什么都没留下…
展开
-
CF1354C1/C2 Simple/Not So Simple Polygon Embedding---几何+三角函数
CF的连个题目,C1是求边数为4k的正多变形的外接正方形的边长,C2是求边数为4K+2的正多边形的外接正方形的边长。C1可以发现,有4条边与外接正方形重合,那么找出对应的角,再利用三角函数求解。c++提供sin(),cos(),tan()函数,也提供对应的反三角函数acos反余弦函数,asin反正弦函数,atan反正切函数。#include<bits/stdc++.h>#define pi 3.1415926535using namespace std;int t,n;//一原创 2020-06-18 16:22:40 · 236 阅读 · 0 评论 -
P6283 [USACO20OPEN]The Moo Particle S——单调栈或前后缀
题目来源: P6283 [USACO20OPEN]The Moo Particle S题目大意:给出一推坐标,连个点之间连线的斜率>=0即可合并到两点间的任意一个点上,问合并完,最后剩的点的最小个数。先将坐标按照第一关键字X,第二关键字Y排序。排序后,我们发现,一个点要与左边的点连通,需要左边有点的y值比当前点小,有右边的点连通,需要右边有点当前的y值大。方法一:维护从左到右的最小值,维护从右到左的最大值,找到与左右分离的点,则是一个新的连通块。方法二:我们发现最后分离的点,从左到右y值由小原创 2020-06-12 16:36:03 · 293 阅读 · 0 评论 -
P6149 [USACO20FEB]Triangles S--离散化+前缀和
题目大意:找出平行于x,y轴边的三角形面积的两倍。枚举要n*n*n,超时,分析下,要两条直角边上对应应长度和的乘积,然后要前缀和处理。共有四种形态的三角形。原来想每种单独做,但遇到矩形还要处理重合,就参考题解了。1.将所有同一x或y的点用VECTOR连起来,并离散化和距离的前缀和。2.枚举每一个点xi,yi,如左上图所示,四种形态的三角形面积.以y轴为例分析,分为上半部分和下半部分,前缀和的求法如上图所示。同理针对x轴,左半部分和右半部分分别求出。参考代码:copy form洛谷题解原创 2020-05-23 10:13:18 · 455 阅读 · 1 评论 -
P6143 [USACO20FEB]Equilateral Triangles P——几何+二维前缀和
题目来源: P6143 [USACO20FEB]Equilateral Triangles P.先手工做这个题目,感觉要枚举,和每行的斜线有关系,但是想不出来。只好开始我的题解大法。本题的曼哈顿距离经过转换,可以发现下面的关系:设ABC可以构成等边三角形则AB=AC=BC,变幻后,AB=OA+OB,AC=OA+OC,BC=OB+OC,因此可以得出结论OA=OB=OC,且OA垂直OB;可...原创 2020-05-08 13:48:31 · 351 阅读 · 0 评论 -
洛谷P6197 [EER1]礼物 欧拉筛+生成函数
看cb做了这个题,我也做做吧,然后写了好几张草稿纸,才算推明白。方法1:用特征方程,参考资料:https://wenku.baidu.com/view/3b3f8c04a6c30c2259019e22.html方法2:用生成函数,参考资料:https://wenku.baidu.com/view/f4799f98370cba1aa8114431b90d6c85ec3a8807?pcf=2...原创 2020-03-25 12:48:41 · 302 阅读 · 0 评论 -
luogu1357花园
参考题解http://blog.csdn.net/largecub233/article/details/73457992本题中的m,k比较小,因此可以用来状压,共有n朵花,设到第i朵花时候的状态为f[i][j],j为以i为结束点的的最近m个花的情形。那么当前的j状态可以由哪些k转移到呢,j左移一位后补0或者1。我们可以提前枚举转移的状态,构造一个状态转移图v[j][k]。那么,if(v[...原创 2018-09-27 19:17:04 · 145 阅读 · 0 评论 -
luog2568gcd
本题是仪仗队得扩展,我们求出所有数得欧拉函数后,求gcd(x,y)是素数,也就是所有x,y<=n得情况下gcd(x/pi,y/pi)=1要统计所有得数对,因此可以统计前缀和 比如p[i]=p[i-1]+2*fai(i).然后再统计所有n/pri[i] ,还要再加上gcd(1,1)=1 *pri[i]//d参考tijie#include<iostream>#inclu...原创 2018-09-27 20:05:35 · 251 阅读 · 0 评论 -
洛谷P1072 HanksonHanksonHankson 的趣味题
这个题目很早前做了第一种方法,x一定是a1得倍数,枚举这个倍数,函数work得分50.第二种方法,x一定是b1得因子,枚举这些因子(sqrt),work2,得分100.#include<iostream>using namespace std;int a0,a1,b0,b1;int gcd(int a,int b) { if(!b)return a; ...原创 2018-09-27 20:15:24 · 149 阅读 · 0 评论 -
斐波那契:luogu1306+luogu3986
luogu1306:对于Fibonacci数列:1,1,2,3,5,8,13......大家应该很熟悉吧~~~但是现在有一个很“简单”问题:第n项和第m项的最大公约数是多少?经过证明(kan ti jie)得出结论:gcd(f(n),f(m))=f(gcd(n,m)).因此求出gcd(n,m)后求f,因数据大,快速幂优化。参考代码#include <iostream>#d...原创 2018-09-28 15:51:36 · 198 阅读 · 0 评论 -
luogu282组合数问题 noip2016
一道组合数与约数结合的题目。跑杨辉三角即可。但是充分跑多次会超时,要用前缀和维护下,维护一维也能过,维护二维更好。注意维护二维的时候要过了对角线多跑一个。知识点:杨辉三角+二维前缀和#include<iostream>#include<stdio.h>using namespace std;const int N=2009;int t,k,n,m,cn[1...原创 2018-09-28 18:54:10 · 130 阅读 · 0 评论 -
P1641 [SCOI2010]生成字符串
l类似卡特兰数的推理。当然要看题解啦!可以考虑把1的个数与0的个数的和看成x坐标,1的个数与0的个数的差看成y坐标向右上走(x坐标加1,y坐标加1)就表示这个字符选择1。向右下走(x坐标加1,y坐标减1)就表示这个字符选择0。这样子,如果不考虑限制条件,就表示从(0,0)走n+m步到达(n+m,n−m),这相当于从n+m步中选出m步向右下走,也就是C(n+m,m)。考虑限制条件,...原创 2019-04-03 17:17:50 · 230 阅读 · 0 评论 -
[USACO10HOL]赶小猪Driving Out the Pigg:概率+高斯消元
看了一上午,参考了了洛谷Siyuan的两篇博客,终于感觉有点理解了。【HN013】游走,「Luogu 2973」Dotp;下面主要就是cc其blog了。题目描述有一个 n 个点 m 条边的无向图x=y+xx=y+xx=y+x,节点 1 有一个炸弹,在每个单位时间内,这个炸弹有PQ\frac{P}{Q}QP的概率在这个节点炸掉,有 1−PQ\frac{P}{Q}QP 的概...原创 2019-05-22 11:27:41 · 146 阅读 · 0 评论 -
poj1401,洛谷1134,阶乘0的个数与最后的非零位
poj1401,阶乘末尾0的个数。#include <cstdio>using namespace std;// 有多少个5,就有多少个0,对于5的处理,有多少个5就需要处理多少次。因此不断计算n/5.int main() { int x,n,ans; scanf("%d",&n); while (n--) { scanf("%d",&a...原创 2018-09-25 20:30:48 · 399 阅读 · 0 评论 -
洛谷3518-密码-poi
题目大意:有一个密码箱,0到n-1中的某些整数是它的密码。且满足,如果a和b都是它的密码,那么(a+b)%n也是它的密码(a,b可以相等)某人试了k次密码,前k-1次都失败了,最后一次成功了。问:该密码箱最多有多少不同的密码。假如x是密码,则所有gcd(x,n)的倍数就一定是密码,反之则一定不是换言之,密码一定可以表示为x,2x,3x,4x,......其中x为n的一个约数如果x,y都是n...原创 2018-09-06 17:05:17 · 546 阅读 · 0 评论 -
P3606 [USACO17JAN]Building a Tall Barn建谷仓
usaco 铂金组t2题目大意:已知的a1,a2,……an,在b1+b2+……+bn=k的条件下,求f=a1/b1+a2/b2……+an/bn的最小值。题目分析:如果需要f尽量的小,则我们希望分母尽可能大,,而总数有要求限制,那么问题来了,给谁分配多点,给谁分配少点呢?例如:3 1020510的数据情况下。,给每个ai分配y个或(y+1)个人产生不同的差值。令ti=ai原创 2017-06-13 16:53:57 · 739 阅读 · 0 评论 -
联合权值——o(n)做法
czj想了个没有存图的做法,存了每个顶点所关联顶点的权值和。例如,顶点1关联顶点a1,a2,a3;则第一条边是a1,第二次是a1*a2,第三次就是a3*(a1+a2)#include #include #include using namespace std;const int MaxN=200000;const int MOD=10007;int n;long long原创 2017-09-10 16:26:12 · 744 阅读 · 0 评论 -
coci2014 contest#1 T3-PIRAMIDA—— 数学
题目大意,将一串字符串按照Z型排列为N行的金字塔,给出K个询问,第i行有几个x字符。输出询问的每行中出现对应字符的个数。样例输入:6JANJETINA51 J1 A6 N6 I5 E样例输出:10211题目分析:例如单词:ABCDEDFGA 1CB 2DEF原创 2017-09-21 15:38:02 · 374 阅读 · 0 评论 -
bzoj3028: 食物 组合数学+生成函数
应ljm之邀请学习生成函数,看资料总说f(x)=1+x+x^2+……=1/(1-x),也没说为什么,问了数学老师才知道: f(x)=1+x+x^2+……x f(x)= x+x^2+……所以:f(x)- xf(x)= 1;f(x)=1/(1-x);首先列出所有食物的母函数汉堡:1+x^2+x^4+.....=1/(1-x^2)可乐:1+x鸡腿:1+x+x^2蜜桃多:x原创 2017-06-23 11:04:55 · 431 阅读 · 0 评论 -
poj2478/luogu3601欧拉函数的和。
poj2478,poj3090=sdoi仪仗队,还有洛谷3601题意接近,数据范围不同。poj2478,求10^6内所有数的欧拉函数的和。用欧拉筛直接求素数和欧拉函数即可。参考代码:#include<cstdio>#include<cstring>#include<iostream>using namespace std;const int MAXL=...原创 2018-03-07 15:43:48 · 337 阅读 · 0 评论 -
洛谷3518strongbox(poi2011)
注意审题,a是密码,那么a,2a,3a……也是密码,推出t=gcd(n,ak)的倍数也是密码。这个t,可能是a+b=c中的c,也可能是其中的a,b。如果(a,b)是密码,那么存在ax+by=c,而这个方程有解的条件是c%gcd(a,b)==0,c的因子都可以是密码。已知t是密码,t的因子也是密码,因此我们要找最小的因子。若a是密码,b不是密码,那么gcd(a,b)的因子也不是密码。#include...原创 2018-03-07 16:18:22 · 202 阅读 · 0 评论 -
欧拉筛求素数
忘了欧拉筛的写法了,拿出来重新理解下。#include<cstdio>#include<cstring>#define MAXL 1200#include<iostream>using namespace std;int prime[MAXL];int isnot_pr[MAXL];int work() { int tot = 0; f...原创 2018-03-01 22:06:46 · 422 阅读 · 0 评论 -
poj1845 sumdiv 整数唯一分解,等比数列求和或逆元
求a^b的因子和%p题解参考:转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1309237394应用定理主要有三个:要求有较强 数学思维 的题应用定理主要有三个:(1) 整数的唯一分解定理: 任意正整数都有且只有一种方式写出其素因子的乘积表达式。 A=(p1^k1)*(p2^k2)*(p3^k3)*....*(p...原创 2018-03-04 20:35:53 · 238 阅读 · 0 评论 -
错排问题 洛谷1595、4017
错排有两张写法:递推 p[i]=(i-1)*(p[i-2]+p[i-1]);容斥:=n!(1-1/1!+1/2!-1/3!+…………(-1)^n*1/n!)luogu1595裸的错排:方法1:#include<iostream> using namespace std;int main(){ long long p[21]={1},f=1,ans; int n;...原创 2018-03-23 16:32:06 · 383 阅读 · 0 评论 -
bzoj1257 [CQOI2007]余数之和sum 数学-递推
小题,可是想了半天,还是看题解看来半晚上才明白,可怜的中年妇女智商啊!如何枚举商?我们用[l,r]表示枚举到的商对应的除数所在区间。 如果快速找出区间?假设l,r是上一次做完的区间,对于左端只需要l=r+1。对于右端,只需要r=k/(k/l),因为对于一个区间[l,r],能发生整除的一定是在k/r的位置,所以可以用整除的原理搞过去。为什么这样分出来的块是sqrt(k)级别的?1~sqrt(k)中的...原创 2018-04-23 21:46:04 · 147 阅读 · 0 评论 -
洛谷1409骰子
题目描述n个人排成一排,你排在第m个。每轮队首的人投一次骰子:若掷到1,则队首的人获胜;若掷到2,4,6,则队首的人出队;若掷到3,5,则队首的人排到队尾。获胜者仅有一人,若队列中仅剩一人,则该人获胜。求你获胜的概率。输入输出格式输入格式:一行两个整数n,m输出格式:一个实数表示获胜概率(精确到小数点后9位)输入输出样例输入样例#1: 复制2 1输出样例#1: 复制0.375000000说明【数据...原创 2018-04-26 16:20:14 · 301 阅读 · 0 评论