~~随笔---模板
文章平均质量分 62
idealistic
编程渣渣~~
展开
-
快速幂模板(详细版)
下面是 m^n % k 的快速幂:// m^n % kint quickpow(int m,int n,int k){ int b = 1; while (n > 0) { if (n & 1) b = (b*m)%k; n = n >> 1 ; m = (转载 2016-07-22 19:12:41 · 871 阅读 · 0 评论 -
计算表达式的值--顺序栈
实验题目:栈的应用-算术表达式求值 实验环境: Visual C++ 6.0 实验目的 :1.掌握栈的定义及实现;2.掌握利用栈求解算术表达式的方法。实验内容:通过修改完善教材中的算法3.4,利用栈来实现算术表达式求值的算法。对算法3.4中调用的几个函数要给出其实现过程:(1)原创 2016-10-07 17:44:00 · 3926 阅读 · 2 评论 -
学生信息管理系统--Sqlist-顺序表
#include#include#include#include#define OK 1#define ERROR 0#define OVERFLOW -2typedef int Status; //Status 是函数返回值类型,其值是函数结果状态代码。#define MAXSIZE 100 //顺序表可能达到的最大长度typedef struct{ char no[8原创 2016-09-21 21:48:09 · 5036 阅读 · 0 评论 -
汉诺塔
n个圆盘--移动次数2^n-1;#includelong count;//记录移动次数void hanoi(int n,char a,char b,char c)//要将n个从a移到c上,b作为辅助的柱 {if(n==1)printf("第%d次,%c-->%c柱\n",++count,a,c);else{ hanoi(n-1,a,c,b);//先将n-1个移到辅助柱上 p原创 2016-09-23 22:39:19 · 195 阅读 · 0 评论 -
计算机几何常用算法
1、矢量减法设二维矢量 P = (x1,y1) ,Q = (x2,y2)则矢量减法定义为: P - Q = ( x1 - x2 , y1 - y2 )显然有性质 P - Q = - ( Q - P )如不加说明,下面所有的点都看作矢量,两点的减法就是矢量相减;2、矢量叉积设矢量P = (x1,y1) ,Q = (x2,y2)则矢量叉积定义为: P × Q =转载 2016-09-20 18:17:51 · 1948 阅读 · 0 评论 -
约瑟夫环
//41个人围成环,数到3的自杀,下一个人重新开始数求最终剩下的人#include#include#define N 41//总人数 #define M 3//数到3出列 int main(){int man[N]={0};//保存出列的序号,为0的出列int count=1;//出列计数器int i=0;//报数计数器int pos=-1;//位置计数器 int alive=原创 2016-09-25 14:11:48 · 298 阅读 · 0 评论 -
博弈论
http://qianmacao.blog.163.com/blog/static/203397180201222945044622/kiki's gameTime Limit: 5000/1000 MS (Java/Others) Memory Limit: 40000/10000 K (Java/Others)Total Submission(s): 9890 Ac转载 2016-08-24 10:39:09 · 468 阅读 · 0 评论 -
直线-折线-封闭曲线分割平面 -递推
题目描述在一个平面上使用一条直线最多可以将一个平面分割成两个平面,而使用两条直线最多可将平面分割成四份,使用三条直线可将平面分割成七份……这是个经典的平面分割问题,但是too simple,作为一个可以对困难谈笑风生的人,我们现在将问题改一下,不再使用平面,而使用一个角来分割平面,一个角最多可以将平面分成两份,两个角最多可以将平面分成七份……那么n个角可以将平面分割成几个部分呢?再转载 2016-11-19 22:28:49 · 1021 阅读 · 0 评论 -
字符串匹配BF算法和KMP算法
16学年—17学年第 1 学期 数据结构 实验任务书专业名称: 实验学时: 2 课程名称:数据结构 任课教师: 翟海霞 实验题目: 串的模式匹配算法实现 实验环境: Visual C++ 6.0 实验目的 :理解原创 2016-10-16 19:55:05 · 1609 阅读 · 0 评论 -
数学小知识
判断一个数是否是2的幂次方#includeint main(){long long n;int t;scanf("%d",&t);while(t--){ scanf("%lld",&n); if(n&(n-1)) printf("No\n"); else printf("Yes\n"); } return 0; }原创 2016-11-26 14:46:01 · 655 阅读 · 0 评论 -
100个经典算法
语言的学习基础,100个经典的算法C语言的学习要从基础开始,这里是100个经典的算法-1C语言的学习要从基础开始,这里是100个经典的算法题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?_____________________________________转载 2016-11-27 09:34:10 · 661 阅读 · 0 评论 -
vector的用法
1 基本操作(1)头文件#include.(2)创建vector对象,vector vec;(3)尾部插入数字:vec.push_back(a);(4)使用下标访问元素,cout(5)使用迭代器访问元素.vectorint>::iterator it;for(it=vec.begin();it!=vec.end();it++) cout转载 2017-01-20 14:34:39 · 209 阅读 · 0 评论 -
set集合容器用法
set集合容器:实现了红黑树的平衡二叉检索树的数据结构,插入元素时,它会自动调整二叉树的排列,把元素放到适当的位置,以保证每个子树根节点键值大于左子树所有节点的键值,小于右子树所有节点的键值;另外,还得保证根节点左子树的高度与右子树高度相等。平衡二叉检索树使用中序遍历算法,检索效率高于vector、deque和list等容器,另外使用中序遍历可将键值按照从小到大遍历出来。构造set集合主要转载 2017-01-20 14:48:26 · 271 阅读 · 0 评论 -
【随笔】
1 char s[1010]; scanf("%s",s+1); 可以让字符串从s[1]开始存 s[0]空着原创 2016-08-09 19:34:43 · 267 阅读 · 0 评论 -
java学习入门
import java.util.Scanner;//声明类名,导入扫描仪public class Test{//文件名 public static void main(String[] args){ Scanner in=new Scanner(System.in);//声明扫描仪 System.out.pr原创 2016-12-09 21:36:59 · 361 阅读 · 0 评论 -
RSA算法基础
RSA定理:若P,Q是两个相异质数,另有正整数R,M;其中M的值与(P-1)*(Q-1)互质,并使得(RM)mod(P-1)(Q-1)=1.有正整数A,且A C=A的R次方 mod PQ; B=C的M次方 mod PQ;则有A==B;生成公钥和私钥:1.选择素数P,Q2.N=P*Q3原创 2016-09-14 16:11:25 · 332 阅读 · 0 评论 -
*哥德巴赫猜想
猜想:任何一个大于2的偶数都可以写成两个质数之和数值验证:#include#include#includeint f(int n,int prime[]){ int i,j; for(i=2;i<=n;i++) prime[i]=1; prime[0]=prime[1]=0; for(i=2;i*i<=n;i++) { if(prime[i]==1) {原创 2016-09-14 17:50:22 · 699 阅读 · 0 评论 -
背包问题
背包入门 http://www.cnblogs.com/tanky_woo/archive/2010/07/31/1789621.html 背包九讲 http://www.cnblogs.com/jbelial/articles/2116074.html转载 2016-08-09 20:39:00 · 232 阅读 · 0 评论 -
最小公倍数与最大公约数模板
#include __int64 GCD(__int64 a,__int64 b){if (a % b == 0)return b;elsereturn GCD(b,a%b);}__int64 LCM(__int64 a,__int64 b) // a * b / GCD(a,b){return a / GCD(a,b) * b ;}int main原创 2016-07-24 16:12:03 · 332 阅读 · 0 评论 -
sort与qsort
sort与qsort的用法转载 2016-07-24 16:04:27 · 244 阅读 · 0 评论 -
优先队列
在优先队列中,优先级高的元素先出队列。标准库默认使用元素类型的操作符来确定它们之间的优先级关系。优先队列的第一种用法,也是最常用的用法:priority_queueint> qi;通过操作符可知在整数中元素大的优先级高。故示例1中输出结果为:9 6 5 3 2第二种方法:在示例1中,如果我们要把元素从小到大输出怎么办呢?这时我们可以传入一个比较函数,使用func原创 2016-07-25 08:51:46 · 162 阅读 · 0 评论 -
素数打表模板
#includeint a[1000000+11]={1,1};int main(){int i;for(i=2;i{if(a[i]==1)continue;for(int j=2*i;ja[j]=1;}int n;while(~scanf("%d",&n)){if(a[n]==1)printf("非素数\n");elsepr原创 2016-07-24 16:28:36 · 285 阅读 · 0 评论 -
队列和栈
使用标准库的栈和队列时,先包含相关的头文件#include#include定义栈如下:stack stk;定义队列如下:queue q;栈提供了如下的操作[cpp] view plain copys.empty() 如果栈为空返回true,否则返回false s原创 2016-07-25 15:45:02 · 236 阅读 · 0 评论 -
poj题目分类
转载:http://www.cnblogs.com/kuangbin/archive/2011/07/29/2120667.html初期:一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(poj32转载 2016-07-29 18:18:38 · 204 阅读 · 0 评论 -
【最小生成树】
找到最小的边连起来,再找到次小的边,如果和前面的根不同,就连起来假设给定一个加权连通图G,G的边集合为E,顶点个数为n,要求其一棵最小生成树T。假设T中的边和顶点均涂成红色,其余边为白色。开始时G中的边均为白色。1)将所有顶点涂成红色;2)在白色边中,挑选一条权最小的边,使其与红色边不形成圈,将该白色边涂红;3)重复2)直到有n-1条红色边,这n-1条红原创 2016-08-03 10:01:23 · 363 阅读 · 0 评论 -
KMP算法详解
http://blog.csdn.net/joylnwang/article/details/6778316转载 2016-08-16 11:12:35 · 228 阅读 · 0 评论 -
扩展欧几里德详解
参考链接:http://blog.csdn.net/zhjchengfeng5/article/details/7786595转载 2016-08-16 15:16:42 · 227 阅读 · 0 评论 -
并查集模板
int findroot(int x)//寻找根节点{ int r=x;while(r!=f[r]) r=f[r]; int i=x,j; if(i!=r) { j=f[i]; f[i]=r; i=j; } return r;}void unine(int a,int b)//判断根节点是否相同 ,不同就合并 { int nx=findroot(a);原创 2016-08-01 11:27:42 · 377 阅读 · 0 评论 -
树状数组模板
链接:http://www.cnblogs.com/nanke/archive/2012/02/27/2370512.htmlint lowbit(int x){ return x & (-x);}void modify(int x,int add)//一维{ while(x { a[x]+=add; x+=lowbit(x转载 2016-08-16 20:43:45 · 2085 阅读 · 0 评论 -
树的直径模板~~最长路径
两次bfs:①任意从一个点u出发bfs,设其能到的最远点为v②从v出发重新bfs,设其能到达的最远点为s③则树的直径就是v->s证明:若能证明从任意一个点出发,bfs到的最远点一定在树的直径的端点上,那么第二次bfs就可以证明一定正确了,下面来证明第一次bfs正确性:①若选择的点u在直径上,那么能到的最远点v一定是树的直径的端点之一反证:若v不是树的直径的端点,原创 2016-08-02 17:30:18 · 828 阅读 · 0 评论 -
逆元详解
转载链接 http://blog.csdn.net/acdreamers/article/details/8220787今天我们来探讨逆元在ACM-ICPC竞赛中的应用,逆元是一个很重要的概念,必须学会使用它。 对于正整数和,如果有,那么把这个同余方程中的最小正整数解叫做模的逆元。 逆元一般用扩展欧几里得算法来求得,如果为素数,那么还可以根据费马转载 2016-08-07 20:41:41 · 636 阅读 · 0 评论 -
快捷键
F1显示程序或系统帮助内容F2重新命名所选项目F3搜索文件或文件夹F5刷新当前窗口F6循环切换屏幕元素F10激活当前程序中的菜单条Ctrl+A选中全部内容Ctrl+C复制Ctrl+X剪切Ctrl+V粘贴Ctrl+Z撤消Ctrl+Esc显示“开始”菜单Alt+Enter查看所选项目的属性Alt+F4关闭当前项目或退出程序Alt+空格键为当前窗口原创 2016-08-31 09:42:41 · 655 阅读 · 0 评论 -
map用法
map的详细用法:转自:http://blog.csdn.net/sunshinewave/article/details/8067862 map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部转载 2017-02-26 14:51:00 · 260 阅读 · 0 评论