自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

北门的智慧

天之道,损有余而补不足

  • 博客(100)
  • 资源 (3)
  • 收藏
  • 关注

原创 poj 1222(高斯消元)

题目链接:http://poj.org/problem?id=1222题目大意:开关经典问题,主要是高斯消元模板题,没有自由变元的高斯消元;题目分析:本题可以采用搜索来写,但很慢,所以使用高斯消元。高斯消元主要是消元后回带,由于本题没有自由变元,所以直接回带就好了。代码如下:#include #include #include #include #include #

2016-09-03 13:37:36 653

原创 组合数学之容斥原理

组合数学之容斥原理在组合数学中,容斥是常常被用到的,我们总用容斥求解一些带有条件的组合数。容斥原理:具有性质A和性质B的元素个数等同于具有性质A的个数和具有性质B的个数的和再减去同时具有性质A和性质B的元素的个数。 数学公式表示为 |A∪B|=|A|+|B|-|A∩B|。 图形表示为 其中黄色区域就是我们所求。 同样以此类推对于三个性质来说其数学公式为|A∪B∪C|=|A|+|B|+|C

2016-04-06 20:17:14 5482

原创 数论系列之一元线性同余方程(组)

数论,在ACM道路上走的越来越远,提起数论,都是从整除开始,而一元线性同余方程(组)的解,也要从整除起源。提起整除问题,最负盛名的是欧几里得算法和扩展欧几里得算法,在这里我就不再赘述,详情请见我的博客:而一元线性同余方程(组)的问题的解法源于扩展欧几里得算法。、对于一元线性同余方程ax≡b(mod c)来说,这个方程等价于ax=by+c,由于y是未知数,所以可以领y=-有,即有

2016-03-14 19:05:29 3879

原创 数论系列之欧几里得

欧几里得这部分分为欧几里得算法和扩展欧几里得算法。07

2016-03-14 18:54:07 2509

原创 lightoj1236(素因子分解)

题目链接:http://vjudge.net/problem/LightOJ-1236;题目分析:本题是求解,在小于n的数中有多少lcm值是n,其实就是找小于n的数对,其素因子与n相同并且,素因子个数最大值与n相同,所以这两个数的组成,对于n的每一个素因子 ,只需要一个值等于n的素因子个数,另一个随意,设个数为a[i]这样值为2*(a[i]+1)-1,(最大的值只有一对)。本题是重复的不计数,

2016-10-28 12:41:42 758

原创 51nod 1038(n次剩余)

题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1038;题目分析:1、原根:原根的分布比较广,最小原根通常也较小,可以枚举正整数来快速找原根,对于一个代检查的p,对p-1的每一个素因子a,检查,若成立则说明g不是原根。2、离散对数 :给定的x,n,m 求x的解。令s=,则有,即有。将所有的放入有序表

2016-10-24 20:28:10 1715 1

原创 hdu 4609(快速傅里叶变换)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4609;题目大意:给出一些边长,问任取3边组成三角形的概率是多少。分析:只要求出能组成三角形的有多少种再除以C(n,3)就好了。求得方法自然是用两最小边之和大于最长边。求和的部分可以用FFT优化。代码如下:#include #include #include #include #

2016-10-09 12:28:27 1544

原创 hdu 1402(FFT+大数乘法)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1402;题目分析:大数乘法有很多种计算方式,但可以转换成多项式相乘就可以使用FFT进行计算,第一次接触傅里叶变换,具体FFt推荐一篇文章;代码如下:重载*的:#include #include #include #include #include using namespac

2016-10-07 14:11:30 711

原创 hdu 4793(嗷嗷水的计算几何)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4793;大意:在原点有一个平台,原点还有一个圆形木块,视为挡板,有一个圆形滑块在光滑坐标轴上摩擦,有初始位置和坐标轴方向分速度,求,在圆形平台上走多远。分析:本题所求是圆形滑块轨迹中两次与圆形平台外切之间的时间,利用圆形坐标轨迹(x+vx*t,y+vy*t)进行计算相切是的时刻,如果碰上挡板

2016-09-22 19:50:30 1035

原创 hdu 4592(高斯消元好题)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4592;题目分析:  本题其实就是一个普通的高斯消元题,但是本题数据范围巨大,所以不能用普通的高斯消元来写,只能采用求逆打表法,进行求解。只有满秩矩阵才能有逆元,通过消元可以看出,只有4,5时时多解的,所以其他就打表好了,但不能打0,1矩阵,还是会超时,最后打出的是十进制数就好办了。代码如下:

2016-09-11 19:28:03 1145

原创 poj1681(高斯消元)

题目链接:http://poj.org/problem?id=1681题目分析:本题是有的存在自由变元的高斯消元,而且存在无解的情况,还是有一定难度的;代码如下:#include #include #include #include #include #include #include #include #include #include #include #in

2016-09-03 13:41:17 1381

原创 hdu 5768(中国剩余定理+容斥)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5768;题目分析:因为满足任意一组pi和ai,即可使一个“幸运数”被“污染”,我们可以想到通过容斥来处理这个问题。当我们选定了一系列pi和ai后,题意转化为求[x,y]中被7整除余0,且被这一系列pi除余ai的数的个数,可以看成若干个同余方程联立成的一次同余方程组。然后我们就可以很自然而然的想到

2016-07-30 15:31:01 840

原创 2016 Multi-University Training Contest 1 1011(HDU 5733 计算几何)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5733;题目大意:给出四个三维的点,若这四个点能组成一个四面体,就求其内切球球心和半径,不能就输出O O O O;分析:本题这主要在于先判断是否四点共面,不是的话就一定能组成四面体,然后套用四面体内心公式和四面体内切圆半径公式就可以求出.代码如下:#include #include

2016-07-20 14:03:18 1309

原创 矩阵快速幂模板

const int mod=2015;int N,M;struct Matrix{ int M[55][55]; Matrix(){memset(M,0,sizeof(M));}}U,P;Matrix Add(const Matrix &a,const Matrix &b){ Matrix ret; for(int i=1;i<=N;i++) for(int j=1;j<=N;

2016-07-12 17:37:36 1565

原创 hdu 5399(数学推理)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5399;题意:给你m个函数f1,f2,⋯,fm:{1,2,⋯,n}→{1,2,⋯,n}(即所有的x∈{1,2,⋯,n},对应的f(x)∈{1,2,⋯,n}),已知其中一部分函数的函数值,问你有多少种不同的组合使得所有的i(1≤i≤n),满足f1(f2(⋯fm(i)))=i对于函数集f1,f2

2016-07-11 20:50:53 1233

原创 hdu 5137(简单数学题)

题目链接:点击打开链接;题意:f(x)是求f的素因子个数 然后给定区间l,r,求l~r之间gcd(f(i),f(j))的最大值分析:打表,然后就o(1)了;代码如下:#include #include #include #include #include using namespace std;struct sa{ int k;}p[1000005];boo

2016-07-05 20:14:56 1833

原创 hdu 2597(容斥原理)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5297;题意:给出n和r,求数列Y的第n个元素是多少。其中数列Y是正整数数列去除a^b(2分析:我的天啊,出一个数n,则1~n以内的正整数必定会有被去除的(假设被去除x1个),则这n个数中只有(n-x1)个数在Y数列中;如果想得到n个数在Y数列中,那么我们至少要在这n个数后面加上x1个数,设

2016-07-01 20:38:40 2682 1

原创 hdu 3590 (树的删边游戏+ANTI-SG)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3590;题目分析:本题是一个基本的树的删边游戏,还是很简单的,首先,每个叶子结点的sg值为0,中间节点的sg值是子节点的sg值+1的亦或值,最后把几个树的根节点的sg亦或就好了,但不要忘记本题是ANTI-NIM,判断方式与正常的NIM不一样代码如下:#include #include #

2016-06-30 20:23:33 753

原创 hdu 3589(二次剩余+雅可比符号)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3589;题意:就是一个裸的雅可比符号:代码如下:#include #include #include #include using namespace std;int a[10];int fac[100500],sum[100500];int cnt;

2016-06-30 19:18:50 2354

原创 hdu 3509(矩阵快速幂)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3509;题意:按照所给的最后一个公式推导,然后矩阵快速幂把图中的矩阵最上面的0改成1,最后的f(n-2)转换为f(n-1)然后就矩阵快速幂就行了#include #include #include #include #include #include #include

2016-06-19 19:38:55 800

原创 hdu 3501(容斥原理)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3501;题意:给出一个数n求解小于n与n不互质的数 的和。分析:明显的容斥原理,把n素因子分解之后,奇数个因子的数的和加上偶数个减去就好了。(小于能整除2的数的和为2*(1+n/2)*n/2*2);代码如下:#include #include #include #include

2016-06-17 17:00:29 436

原创 Lucas求解组合数模板

#include #include #include using namespace std;typedef long long LL;LL n,m,p;LL quick_mod(LL a, LL b){ LL ans = 1; a %= p; while(b) { if(b & 1) {

2016-06-14 20:22:48 511

原创 hdu 4349(Lucas定理)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4349;分析: 当然本题要另辟蹊径。由于是判断奇偶性,那么就是判断是否为1,利用Lucas定理,先把和化为二进制,这样它们都是01序列了。我们又知道。这样中为0的地方对应的中的位置只有一种可能,那就是0。这样我们可以不用管中为0的地方,只考虑中为1的位置,可以看出,中为1的位置对应的中为0或1,其结

2016-06-14 20:21:32 511

转载 多圆相交模板

#include #include #include #include #include #include using namespace std;const double PI = acos(-1.0);const double EPS = 1e-8;double Deg2Rad(double deg){return (deg * PI / 180.0);}double

2016-06-13 19:56:37 589

原创 acdreamer 1221&&sgu204 (三分)

题目链接:传送门题意:给出b1,t1,b2,t2,l,ds,df,和重力加速的g,左边黑点表示起点,右边黑点表示终点,你可以从起点以任意角度、任意速度投出一个小球,从t1,b1中穿过去,落在l上,然后再重新在落点以任意角度、任意速度投出这个球然后从t2,b2中间穿过去于终点落地,然后求两次投掷速度中的最大值的最小值是多少,也就是MIN(MAX(v1,v2))。分析:首先我们会发现以在l中间

2016-05-29 17:10:12 2869

原创 hdu 3400(三分)

题目链接:点击打开链接;题意:本题给出两条线段,一条线段端点为a,b;另一条线段端点是c,d,在两条线段和不在线段上有不同的速度,求最短时间。分析:本题一共有三段时间,在a-b上,在c-d上,在空白的地方。设着三段时间是x,y,z。则一旦x和y确定之后,z就能确定,因为这样在两线段上的点就确定了,z也就求出来了,如果x确定时y不确定的话,z和y有关系,所以时间是有一个极值,想到极值,就应该

2016-05-27 21:00:31 3154

原创 hdu 1700(圆最大内接三角形)

题目链接:hdu 1700题意:给出以原点为圆心的圆上一个点,求以此点在从圆上找两个点求解三角形面积最大时,那两个点的坐标分析:本题所用的三角形其实就是圆内接正三角形;证明如下:三角形的面积由底边和高两个因素决定,不管底边所在弦有多少,但其高只有经过圆心的为最大,故毫无质疑必须是等腰三角形。设等腰三角形ABC,高AH,圆心O,AO=BO=R,OH=AH-AO,设高为x,

2016-05-26 18:56:58 1824

原创 hdu 5120(容斥+圆相交部分面积)

题目链接:点击打开链接分析:求元环相交部分面积,容斥一画图就出来了;代码如下:#include#include#include#include#include#includeconst double esp=1e-10;using namespace std;struct Circle{ double x,y; double r;};double

2016-05-25 19:53:13 609

原创 ACdream 1414(计算几何)

题目链接:点击打开链接分析:本题求解两个线段,用一个圆与其相交,与每条线段有且只有一个交点,求解圆的坐标和半径。只需找到四个端点之间的距离最小的时候,求解这两点中点就是圆心,半径为其距离一半多一些;代码:#include #include #include #include #include #include #include #include #include #i

2016-05-25 15:36:20 459

原创 hdu 1007(最小点对)

题目链接:点击打开链接分析:本题就是求解给出的点的最小点对。代码如下:#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace st

2016-05-25 15:02:55 454

原创 uva 10652(凸包)

题意:给出一些矩形和这些矩形的旋转角度,用一个最小凸多边形,覆盖所有矩形,然后求解矩形在整个凸多边形中所占的比例。分析:很显然求解凸包,但又一些问题,第一就是旋转角度,本题给是角度制,但c++中提供的三角函数却是弧度值,所以要转换成弧度制,转换方式为 d=2*pi*(j/360);此外,要用到旋转之后的点的坐标,这之间有个公式:假设对图片上任意点(x,y),绕一个坐标点(rx0,ry0

2016-05-18 19:50:50 508

原创 hdu 5251(2015百度之星初赛+旋转卡壳)

题目链接:点击打开链接;题意:小度熊有一个桌面,小度熊剪了很多矩形放在桌面上,小度熊想知道能把这些矩形包围起来的面积最小的矩形的面积是多少。分析: 把矩形的四个个点列出来,然后求解出凸包,接下来就是求解凸包的最小矩形覆盖,很明显是旋转卡壳做法,关于旋转卡壳详见:旋转卡壳:点击打开链接   (转载出处 http://www.cnblogs.com/Booble/)本题代码如下

2016-05-18 18:48:21 741

原创 hdu 4667(凸包)

题意:给出n个圆和m个三角形,把所有的图形围起来的最小长度。分析:本题正解是求一堆切线,但是本题数据水,所以,把圆分成1000个点求凸包就好了,但是求长度的时候,在圆上的点要求圆弧长度。代码如下:#include #include #include #include #include #include #include #include #include #inc

2016-05-18 16:24:57 591

原创 hdu 5667(矩阵快速幂)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5667;题意:给出一个递推式求解fn的值。分析:因为是递推,很容易联想到矩阵快速幂。但本题的式子是一个乘法,所以就采用求对数然后就变成加法了。当然本题求完对数后腰用费尔马小定理来求解a的b次方,因为求对数,最后还要求回指数。本题求完对数的公式为f(n)=(b+f(n-1)*c+f(n-2))mo

2016-05-02 18:44:17 660

原创 hdu 4652(概率dp)

题目链接:点击打开链接;题意:给定一个m个面的骰子然后给定两种询问,0 m n,表示求丢多少次使得最后丢的n次都相同的期望,1 m n表示求最后丢的n次两两不相同的期望。;题目分析:我们设dp[i]为当前为i个连续的数还需投掷次数的期望搭dp[0]就是解在相同的情况:dp[i] 记录的是已经连续i个相同,到n个不同需要的次数的数学期望dp[0]= 1+dp[1]dp[1

2016-04-29 19:15:29 419

原创 hdu5001(概率dp)

题目链接:点击打开链接;题意:给出一些路径,问最后每个点在k步后没有走到的概率。分析:简单的概率dp,设dp[i][j]为走i步在j点的概率,然后dp[j][d] = ∑ dp[k][d-1]/edge[k].size();然后一球就行了;代码如下:#include #include #include #include #include #include #includ

2016-04-29 19:06:15 379

原创 51nod 1126(矩阵快速幂)

题目链接:点击打开链接题意:有一个序列是这样定义的:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.给出A,B和N,求f(n)的值。分析:递推式,和简单的库镇快速幂:代码如下:#include #include #include #include #include #include #in

2016-04-29 18:58:47 4888 1

原创 51nod 1031(快速幂)

题目链接:点击打开链接;题意:求:3^0 + 3^1 +...+ 3^(N) mod 1000000007;分析:快速幂,没啥说的代码如下:#include #include #include #include #include #include #include #include #include #include using namespace std;c

2016-04-29 18:55:01 4221

原创 Lightoj1393(博弈+NIM)

题意:给出一个矩阵,每个点都有一些石子,有两个人移石子,只能向右移或向下移,直到谁不能移谁输。分析:在和最后一个点奇偶性相同的点移偶数次就能到,所以可以不考虑,剩下的就是一个简单的NIM博弈。代码如下:#include #include #include #include #include #include using namespace std;int main()

2016-04-15 21:16:00 509

原创 Lightoj1253(博弈+NIM)

题意:不正常的NIM游戏,谁最后拿谁输。分析:除了全是1的情况之外,全部都是普通的NIM游戏。是1的情况就取余就行了。代码如下:#include #include #include using namespace std;int main(){ int t; scanf("%d",&t); int k=1; while(t--){

2016-04-15 21:09:26 543

学生信息管理系统 nefu实习

之前那几个有BUG 这个是终极版的 very nice

2015-07-10

学生信息管理系统

NUFU C语言大实习升级版 非常好,绝对安全无毒 nice

2015-07-10

NEFU C语言大实习

一份神奇的大实验,一个令人头昏的写法.林大15年不变的传统,学生信息管理系统.

2015-07-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除