- 博客(18)
- 收藏
- 关注
原创 codeVS 1031 质数环
1031 质数环 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 一个大小为N(N 输入描述 Input Description 只有一个数N,表示需求的质数环的大
2017-04-22 16:49:24 313
原创 数论
数论 目录: 1、素数 (1)暴力求解法 (2)一般筛法 (3)线性筛法 2、唯一分解定理 3、费马小定理 4、欧拉函数 5、欧几里得算法 (1)递归 (2)递推 6、扩展欧几里得 (1)求同余方程 (2)求乘法逆元 (3)求线性方程ax+by=c 7、快速幂 8、中国剩余定理 素数 (1)暴力求解法
2017-04-21 20:49:53 427
原创 [置顶]图论算法大集锦(持续更新中)
1.图的存储: (1)邻接矩阵: #include #include #include #define MAXN 0x7fffffff//没有路径(边的长度为极限); #define maxn 9999//数据边的最大值; #define MAX 0x7fffffff/3//两极限边相加可能超过int 大小; using namespace std;
2017-04-21 19:02:27 332
原创 素数
1、素数 (1)暴力求解法 根据素数的概念,没有1和其本身没有其他正因数的数。 所以只需枚举比这个数小的数,看能整除即可; #include #include #include using namespace std; bool determine(int number) { if(n2)return false; if(!n%2)return fals
2017-04-21 19:02:19 372
原创 生成随机数
#include #include #include #include using namespace std; #define MAX 100000 int main(int argc,char*argv[]) { srand((unsigned)time(NULL));//srand()函数产生一个以当前时间开始的随机种子.应该放在for等循环语
2017-04-21 19:02:13 151
原创 病毒&烦人的幻灯片
《病毒》传送门 《烦人的幻灯片》传送门 病毒 描述 有一天,小y突然发现自己的计算机感染了一种病毒!还好,小y发现这种病毒很弱,只是会把文档中的所有字母替换成其它字母,但并不改变顺序,也不会增加和删除字母。 现在怎么恢复原来的文档呢!小y很聪明,他在其他没有感染病毒的机器上,生成了一个由若干单词构成的字典,
2017-04-21 19:02:10 1290
原创 最小生成树Prim算法Kruskal算法
Prim算法采用与Dijkstra、Bellamn-Ford算法一样的“蓝白点”思想;白点代表已经进入最小生成树的点,蓝点代表未进入最小生成树的点。 算法分析 & 思想讲解: Prim算法每次都将一个蓝点 U 变成白点,并且此蓝点 U 与白点相连的最小边权还是当前所有蓝点中最小的。这样就相当于向生成树中添加了n-1次最小的边,最后得到的一定是最小生成树。 我们通过对下图最小生成树的求解模
2017-04-21 19:02:01 210
原创 并查集
#include #include using namespace std; int Ancestors[1500];//存储祖先节点; int ances(int i)//搜寻祖先节点; { if(Ancestors[i]!=i) Ancestors[i]=ances(Ancestors[i]); return Ancestors[i]
2017-04-21 19:01:56 163
原创 tarjan算法和Kosaraju算法
tarjan算法和Kosaraju算法是求有向图的强连通分量的算法; #include #include using namespace std; int map[100][100],nmap[100][100]; int visit[100]; int time1[100]; int post[100]; int n,m,num=0,postid=0; void dfs
2017-04-21 19:01:51 365
原创 图的遍历[DFS][BFS]
#include #include #include #include #include using namespace std; int m,n,maxn=0x7fffffff; int s[1500][1500]; bool visit[1500]={false}; queueint>str; void BFS(int ); void DFS(int );
2017-04-21 19:01:46 194
原创 括弧匹配检验
#include #includestring> #include using namespace std; string s; stackint>str; int main() { cin>>s; for(int i=0;ii) { if(s[i]=='(')str.push(1); if(s[i]=='['
2017-04-21 19:01:31 650
原创 求逆序对
---恢复内容开始--- 在Internet上的搜索引擎经常需要对信息进行比较,比如可以通过某个人对一些事物的排名来估计他(或她)对各种不同信息的兴趣,从而实现个性化的服务。 对于不同的排名结果可以用逆序来评价它们之间的差异。考虑1,2,…,n的排列i1,i2,…,in,如果其中存在j,k,满足 j j > ik, 那么就称(ij,ik)是这个排列的一个逆序。 一个排列含有逆序的个数称为这个
2017-04-21 19:01:26 580
原创 NOI openjudge 1792.迷宫
一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由n * n的格点组成,每个格点只有2种状态,.和#,前者表示可以通行后者表示不能通行。同时当Extense处在某个格点时,他只能移动到东南西北(或者说上下左右)四个方向之一的相邻格点上,Extense想要从点A走到点B,问在不走出迷宫的情况下能不能办到。如果起点或者终点有一个不能通行(为#),则看成无法办到。 输入 第1
2017-04-21 19:01:23 554
原创 八皇后
这是一个很经典的搜索题目; 在国际象棋棋盘上放置八个皇后,要求每两个皇后之间不能直接吃掉对方。输入无输入。输出按给定顺序和格式输出所有八皇后问题的解(见Sample Output)。 皇后能吃掉同一行,同一列,同一对角线的角色; 所以要把八个皇后放在8*8的棋盘上,保证任意皇后并不能互相吃;在这个问题中有92个解;要求依次输出;可以扩展成n皇后问题,以及各种改版的八皇后问题; 下面是一般八
2017-04-21 19:01:18 862
原创 核电站
#include using namespace std; long long s,f[50][50]; int n,m; int main() { cin>>n>>m; f[1][0]=1; f[1][1]=1; for(int i=2;i) { for(int j=0;j) f[i][0]+=f[i
2017-04-21 19:01:14 422
原创 02:不吉利日期
总时间限制: 1000ms 内存限制: 65536kB描述 在国外,每月的13号和每周的星期5都是不吉利的。特别是当13号那天恰好是星期5时,更不吉利。已知某年的一月一日是星期w,并且这一年一定不是闰年,求出这一年所有13号那天是星期5的月份,按从小到大的顺序输出月份数字。(w=1..7) 输入输入有一行,即一月一日星期几(w)。(1 输出输出有一到多行,每行一个月份,表示该月的13日是星期五
2017-04-21 19:01:09 947
原创 177. [USACO Jan07] 有限制的素数
#include #include #include #include using namespace std; int s=0,a,b,c,z[4000005]={1,1,0,0}; int h(int s) { while(s>0) { if(s%10==c) return 1; s/=10; } return 0; } int main() { freopen("qpr
2017-03-16 09:27:00 410
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人