自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Scanew

我是蒟蒻

  • 博客(14)
  • 收藏
  • 关注

原创 快排

快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速排序

2014-10-20 12:22:52 825

转载 筛选法求欧拉函数

筛选法求欧拉函数欧拉函数的应用,以后看到互质的数第一个就要想到欧拉函数。今天又学到了好多家伙。欧拉定理:欧拉定理表明,若n,a为正整数,且n,a互质,(a,n) = 1,则a^φ(n) ≡ 1 (mod n)  费马小定理:且(a,p)=1,那么 a^(p-1) ≡1(mod p) 假如p是质数,且a,p互质,那么 a的(p-1)次方除以p的余数恒等于1 。 筛

2013-11-04 11:47:41 698

原创 NOIP 考前模板整理

dijstra:邻接矩阵bool vis[maxn];int d[maxn];int map[maxn][maxn];void dijstra(){ memset(d,127,sizeof(d)); d[1]=0; for(int i=1;i<=n;i++) { int MIN=INF,id; for(int j=1;j<=n;j++) {

2013-11-01 21:35:55 1146

原创 快速求欧拉函数

int OrzLa(int n){ int i; int ans; ans=1; for(i=2;i*i<=n;i++) { if(n%i==0) { ans*=(i-1); n/=i; while(n%i==0) {

2013-10-31 13:24:27 622

原创 经典动态规划 USACO Mar09 奶牛飞盘队

和是一个数F的倍数可以转化为这个数Mod F为零。       记F[i][j]为前i个数的和余数为j的方案数,显然ANS=F[n][0]       对于每一个数,只有两种状态,取或者不取。       取:       F[i+1][(j+a[i])%f]=(F[i][j]+F[i+1][(j+a[i])%f])%M;      不取:       F[i+1][j]=

2013-10-30 19:28:18 1788

原创 用双向宽搜来提高搜索效率

在信息竞赛中,常常会遇到一些用广度优先搜索才能实现的题目,而这类题目很大一部分都可以用双向宽搜来提高搜索速度,这类题目的共同点是:   1。   起始状态和目标状态都很明确;   2。  搜索一条从起始状态道目标状态的最短路径。   3。 规则具有对称性,既如果原规则向左,则其相反规则就是向右,双向时,从目标状态像起始状态搜索时,需要将规则对称。双向宽搜的思路为分别以目

2013-10-29 20:14:33 2020

原创 Cube Stacking USACO 2004 Open 题解 并查集的超经典应用

并查集的路径压缩的三种实现方法。//刘汝佳经典飘逸骚气风格版本(缺点,有权值的时候权值不能紧跟着压缩)int find(int i){return f[i]==i?i:f[i]=find(f[i]);}//普通版本int find(int i){ if(f[i]==i) { return i; } else { return f[i]=find(f[i]);

2013-10-29 16:55:28 723

原创 tire树,树状数组,线段树模板

tire树 ,分为插入过程中的V用来保存权值 val[i]!=0表示这是个单词节点。struct tire{ ch[100000][26]; val[100000]; int sz; tire(){memset(ch,0,sizeof(ch));sz=1;} int id(char c) {

2013-10-27 11:19:27 789 1

原创 是男人就做的50道题目 题解

------------------------------------------------------1-----------------------------------------------------------     第一题没什么可说的,维护一个前缀和,然后很容易想到一个O(n^2)的算法,然后势必会超时。我们维护的前缀和的后面最大值减去前面的最小值既是答案,因此我们可以维

2013-10-23 08:01:20 1225

原创 手动实现stl中的lower_bound和upper_bound

lower_bound和upper_bound是algorithm库中特别实用的两个函数,前者的作用是返回有序队列不小于x的第一个编号,后者则是返回大于x的第一个编号。     如{0,1,2,2,2,3}数组,用 lower_bound的返回值是2(第一个2),用upper_bound的返回值是5(第一个3)。      手动实现也非常的简单下面附代码。#include

2013-10-21 11:57:16 926

原创 篝火晚会 题解

这道题,我感觉最大的难点在于对题目的理解,不知道是我理解能力有问题还是出题人叙述有问题,我花了很长的时间弄清楚题意,下面,我们把无用的信息筛去,从题意方面重新理解这道题。  一共有n个同学,编号从1到n,初始状态这n个人按1,2,……,n的顺序坐成一个环,每个人都希望与自己相邻的人坐在一起,如何下令调整同学的次序,形成新的一个圈,是之符合同学们的意愿。可以下达这样的命令(b1,b2,b3...

2013-10-19 21:04:27 1194

原创 国王游戏 题解

最后写高精度除以单精度的时候,压位会莫名其妙的wa掉4组,所以以后只要不是时间太紧就不要压位了吧。 本题的难点就是在如何安排最优解的顺序,下面给出分析过程。对于任意两个大臣A和B,A的左手wie

2013-10-18 23:25:28 3546 2

原创 高精度实现快速幂

因为涉及到乘法,所以我们最多只能压四位。#include#include#include#include#includeusing namespace std;const int M=10000, P=4; struct bignum { int n[5000],l; bignum(){l=1,memset(n,0,sizeof(n));}//-

2013-10-18 16:48:47 1377

原创 重载“+-*/”实现高精度运算

加法 压八位 输出时补零const int M=100000000; //压八位 struct BigNum{ int n[1000],l; void init(){}//读入 BigNum operator + (const BigNum &x) const //重载加号 { BigNum t=*this; if(x.l>t.l)t.l=x.l; for(int i

2013-10-17 18:52:42 2775 4

空空如也

空空如也

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

TA关注的人

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