- 博客(31)
- 资源 (4)
- 收藏
- 关注
原创 最小生成树
#include #include using namespace std;#define INF 0x7fffffffint map[10001][10001];//记录两个相连的节点的距离,不相连的距离设为INF int visited[10001],dis[10001];//dis记录节点j到当前最小生成树的距离,注意要不断更新 int n; //mian和prim函数
2014-12-30 14:11:28 417
转载 高精度算法
由于编程语言提供的基本数值数据类型表示的数值范围有限,不能满足较大规模的高精度数值计算,因此需要利用其他方法实现高精度数值的计算。实现高精度数值计算,虽然不能利用编程语言提供的基本数值数据类型,但是可以利用字符串存储高精度数,计算的结果同样保存在字符串中,将高精度数运算转化为字符串运算。以下列举出高精度数相关运算。1.大数加法[cpp] view plaincopyprint?
2014-12-23 16:52:45 624
转载 图深度优先搜索广度优先搜索,邻接表
#include #include"iostream" #include"malloc.h" using namespace std; #define MaxVertexNum 50 //定义最大顶点数 typedef struct node{ //边表结点 char adjvex; //邻接点域 str
2014-12-23 16:43:08 1329
原创 图深度优先搜索之二染色
#include #include using namespace std;int visited[1001];int path[1001][1001];int color[1001];bool flag;int n,m;void dfs(int root){ for(int i=1;i<=n;i++){ //精髓所在,在for循环里面,如果与跟节点相
2014-12-22 22:51:08 816
原创 图深度优先搜索之block的个数
#include #include using namespace std;int path[1001][1001];int visited[1001];int n,m;//将与x相连的节点都标记为已访问 void dfs(int x){ visited[x] = 1; //标记x已访问的位置要正确,要先处理x已访问,不然会漏了一种情况 for(int i=1;
2014-12-22 22:47:54 461
原创 图深度优先搜索之能否到达终点
#include #include using namespace std;bool visited[201];int road[201][201];bool flag;int n,m;void dfs(int city,int count){ //当前节点到达终点的话,返回true if(city == n-1){ flag = true; ret
2014-12-22 22:46:28 431
转载 字典树(前缀树)
字典树==前缀树==Trie树:查询某个单词(前缀)在所有单词中出现次数的一种数据结构查询和插入时间复杂度都是O(n),是一种以空间换时间的方法。(字典树)字典树基本模板:[cpp] view plaincopy#define MAX 26 //字符集大小 typedef struct TrieNode { int
2014-12-22 13:16:13 403
原创 家族查询
Time Limit: 1sec Memory Limit:256MB Description某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚。如果x,y是亲戚,那么x的亲戚都是y的亲戚,y的亲戚也都是x的亲戚。(人数≤5000,询问亲戚关系次数≤500
2014-12-22 10:54:34 1195
转载 五级流水线CPU
对于相关问题的解决方案是最简单的暂停流水线跳转时流水线的处理方式是:排空流水线操作码格式:11xxxx://R类指令01xxxx: //I 类指令0110xx://I 类指令& 操作ALU0101xx://I类指令 & 写存储器0100xx://I类指令 & 读存储器0111xx://I类指令 & 实现跳转011100://I类指
2014-12-22 09:32:41 1863
原创 费马定理
题目概述:S = n^1 + n^2 + n^3 +...... + n^k,已知n、k,求S除以9901的余数。根据费马小定理:假如p是质数,且(a,p)=1(即a,p互质),那么 a^(p-1) ≡1(mod p)。即:假如p是质数,且a,p互质,那么a的(p-1)次方除以p的余数恒等于1。可知9901是质数,所以n^9900%9901=1,即存在:( n^ (9900+m)) % 9
2014-12-21 11:41:39 525
原创 sicily2501
题目概述:S = n^1 + n^2 + n^3 +...... + n^k,已知n、k,求S除以9901的余数。根据费马小定理:假如p是质数,且gcd(a,p)=1(即a,p互质),那么 a^(p-1) ≡1(mod p)。即:假如p是质数,且a,p互质,那么a的(p-1)次方除以p的余数恒等于1。可知9901是质数,所以n^9900%9901=1,即存在:( n^ (9900+m))
2014-12-21 11:34:41 467
转载 acmer的必备知识
ACM大量习题题库 ACM大量习题题库现在网上有许多题库,大多是可以在线评测,所以叫做Online Judge。除了USACO是为IOI准备外,其余几乎全部是大学的ACM竞赛题库。 USACO http://ace.delos.com/usacogate 美国著名在线题库,专门为信息学竞赛选手准备 TJU http://acm.tongji
2014-12-21 11:10:13 2903
原创 sicily2499
//先处理数组中的平方数,标记为1,然后再遍历一遍,两个平方数和的数标记为2,3个的和的数标记为3,剩下的为4#include using namespace std;#define N 60001int s[N] = {0};int main(){ for(int i=1;i*i<N;i++){ s[i*i] = 1; } for(int i=1;i<N;i++)
2014-12-21 10:52:56 390
原创 sicily1087
//s数学逻辑思维考虑一下,当n为1,2时显然是Alice赢的,但是当n>=3时,Alice拿一个Bob就拿2个coins,Alice拿2个,Bob就拿一个,因为前提是两个人足够聪明。#include using namespace std;int main(){ int n; while(cin>>n && n){ if(n == 1 || n == 2){ cout<<
2014-12-21 10:19:03 362
转载 毫秒计时器
// millitimer.v `timescale 1ns / 1ps module millitimer( input start_btn, input stop_btn, input inc_btn, input clk, input rst,
2014-12-16 17:56:38 784
转载 Verilog实现VGA显示控制器
Verilog实现VGA显示控制器 具体原理就不详细讲了,这里给出完整的代码以及Nexys3开发板的引脚文件。 最终实现的效果是: 以 640*480 的分辨率在显示器屏幕显示一个矩形方块,方块在屏幕中以 45 度的角度、60 像素/秒的速度移动,到达屏幕边沿的时候反弹。 Verilog代码 收藏代码 // 设计文件:vga
2014-12-15 17:28:21 8521 1
转载 Nexy3开发板Verilog Demo
Nexys3开发板Verilog Demo 这个学期开始学FPGA开发,使用的开发板是Nexys3,硬件编程语言是Verilog。苦于之前一直没有找到很好的代码学习资料,于是在这里将自己写过的一些相对简单的代码整理了一下分享开来,希望能对各位初学者有所帮助。 本文提供的Verilog代码都是属于Demo级别的,不过限于本人水平,也不免会有一些瑕疵,这里仅供参考,还请
2014-12-15 17:23:10 2281
原创 二叉搜索树的遍历
Description给定一组无序整数,以第一个元素为根节点,生成一棵二叉搜索树,对其进行中序遍历和先序遍历。Input输入包括多组数据,每组数据包含两行:第一行为整数m(1Output每组输入产生两行输出,第一行是中序遍历结果,第二行是先序遍历结果,每个整数后面带一个空格,每行中第一个整数前无空格。Sample Input Copy sampl
2014-12-14 21:35:32 1425
原创 Binary Tree
DescriptionYour task is very simple: Given a binary tree, every node of which contains one upper case character (‘A’ to ‘Z’); you just need to print all characters of this tree in pre-order.InputI
2014-12-14 21:34:53 743
原创 TheGameOfLife
#include (standard input &output输入输出)#include (定义杂项函数及内存分配函数)#include (对话框程序或者窗口程序)#include (从系统时钟获取时间方式)#include (字符函数)//define the size of the two-dimensional array(定义大小的二维数组)#define SIZE 40
2014-12-14 19:05:10 670
转载 从有限状态机图灵机到现代计算机
一、有限状态机 引子让我们先来看几个简单的概念:状态 - 系统的基本数学特征。状态机 - 一个离散数学模型。给定一个输入集合,根据对输入的接受次序来决定一个输出集合。有限状态机 - 输入集合和输出集合都是有限的,并只有有限数目的状态。有限状态机的定义课本中的组合电路+时序电路的模型就是一个有限状态机,我们不妨通过它来推测有限状态机应有的组
2014-12-13 10:55:01 4150
原创 我国水土流失严重地区
我国水土流失严重地区水土流失是指人类对土地的利用,特别是对水土资源不合理的开发和经营,使土壤的覆盖物遭受破坏,裸露的土壤受水力冲蚀,流失量大于母质层育化成土壤的量,土壤流失由表土流失、心土流失而至母质流失,终使岩石暴露。水土流失可分为水力侵蚀、重力侵蚀和风力侵蚀三种类型。一、 黄土高原西北黄土高原区从内蒙古河口镇至陕西、山西的龙门区间是中国水土流失最为严重的地区。形成的原因主要
2014-12-09 17:16:41 3398
原创 找基本组成字符串
Description有一字符串,是通过一个最基本的字符串不停复制拼接而成的。例如:1212121212121212是通过“12”不停的复制变成的。 第一次 12第二次 1212第三次 12121212第四次 1212121212121212 现在,给你这样一串字符串,希望你能找到合成这样一字符串的最短的基本字符串。
2014-12-08 00:06:24 524
原创 manacher算法
/*哈哈,最暴力的办法就是判断每一个字符串是否为回文,然后是的话记录长度,取出最长的那个值,但这里每次都要判断是否为回文开销时间多,复杂度为O(n*n)……now,现在manacher的算法复杂度是O(n),主要理解几点,图解我就不画了哈*/#include #include #include using namespace std;int p[10001];char s[
2014-12-03 17:20:20 412
转载 Manacher
最满意的一篇讲解!!!最长回文Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5158 Accepted Submission(s): 1755Problem Description给出一个
2014-12-03 16:55:21 855
原创 KMP
今天有兴致学习了一下kmp算法,这里复杂度从普通匹配的O(m*n) 变成了O(m+n)#include #include #include using namespace std;//先找到模式字符串的next函数,若p[k]=p[j],即p[next[j]]=p[j],那么:p[1]p[2]…p[k-1]p[k]= p[j-k+1]p[j-k+2]…p[j-1]p[j] vo
2014-12-03 12:08:36 388
转载 ACM进阶之路
第一阶段:练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码, 因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打 出来. 1.最短路(Floyd、Dijstra,BellmanFord) 2.最小生成树(先写个prim,kruscal要用并查集,不好写) 3.大数(高精度)加减乘除 4.二分查找. (代码可在五行以内)
2014-12-03 10:08:43 498
原创 《物种起源》带来的思考
作为一个技术男,作为未来的engineer,在大学再次接触到生物学科这类的知识的机会已经不多了,在这次公选的机会我跟着张老师学习了生命由来的相关知识,从微观到宏观,填补了高中对于生物的一些知识,从某一个层度来说拓展了个人的视野, 借着这次作业的机会,我终于还是读了这部已经家喻户晓的经典作品《物种起源》,十九世纪三大科学发现之一的作品。此外, “物竞天择,适者生存”的影响力早已超越生物界,
2014-12-03 00:43:11 1863 1
原创 文本的读写
#include "stdio.h"#include int main(){ FILE *fp1;//定义文件流指针,用于打开读取的文件 FILE *fp2;//定义文件流指针,用于打开写操作的文件 char text[1024];//定义一个字符串数组,用于存储读取的字符 fp1 = fopen("c:\\a.txt","r");//只读方式打开文件a.txt
2014-12-02 23:56:00 398
原创 二叉树的创建和遍历
/*二叉树的创建和遍历,有递归和非递归的形式*/#include #include #include #include //used in "malloc"using namespace std;//二叉树的节点typedef struct BitNode{ char data; struct BitNode *lchild,*rchild;}BitNode,*B
2014-12-02 17:18:26 372
转载 Catalan数
什么是Catalan数说到Catalan数,就不得不提及Catalan序列,Catalan序列是一个整数序列,其通项公式是我们从中取出的就叫做第n个Catalan数,前几个Catalan数是:1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670,
2014-12-02 15:33:54 395
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人