C/C++
henuzsh
感觉以前太幼稚了,不写了 ---2019/12/28
展开
-
设计模式之工厂模式
查看目录请点人家 ˙ω˙问题引出,关于实例化创建一个类的实例很简单,new一下就行了,但是用new实在实例化一个具体类,不是在针对接口编程。这样会导致代码缺乏弹性,给维护带来麻烦。 比如有许多鸭子类,创建某种具体鸭子对象时:Duck * duck;if(picnic){ duck = new MallardDUck();}else if(hunting){ ...转载 2018-09-14 18:54:31 · 158 阅读 · 0 评论 -
质数筛选(欧拉筛法)
#includeconst int SIZE=10000+1;//筛取上限10000int main(){ int check[SIZE]={0};//0代表是素数 int prime[SIZE]={0};//升序存放素数 int pos=0;//记素数在prime中存放的下标 int flag; for(int i=2;i<SIZE;i++)原创 2018-02-01 09:39:49 · 2014 阅读 · 0 评论 -
bfs 3D迷宫
#include#include#include#include#includeusing namespace std;const int maxn=35;bool vst[maxn][maxn][maxn]; // 访问标记char map[maxn][maxn][maxn];int z,x,y,ac;//题目输入int dir[6][3]={ {1,0,0},{-1原创 2018-02-01 09:38:13 · 200 阅读 · 0 评论 -
dfs 哈密顿绕行世界(回溯法遍历)
#include #include #include const int maxx=21;using namespace std;int map[maxx][3];//于m城连接的三个城市bool vst[maxx];//访问标记int step[maxx];//路线int cas=1;//方法计数void dfs(int now,int len,int aim){ vs原创 2018-02-01 09:36:22 · 250 阅读 · 0 评论 -
dfs 求解联通快
#includeusing namespace std;const int MAX = 110;int N,M;char Map[MAX][MAX];void dfs(int x,int y){ Map[x][y] = '.'; for(int dx = -1;dx 1;++dx){ for(int dy = -1;dy 1;++dy){原创 2018-02-01 09:34:34 · 2458 阅读 · 2 评论 -
dijkstra 最短路问题
#include #include #include #include #include#includeusing namespace std;const int maxn=2001;const int INF=0x3f3f3f3f;int map[maxn][maxn];int dis[maxn];bool vst[maxn];int T,N;void dijkstra原创 2018-02-01 09:31:50 · 160 阅读 · 0 评论 -
floyd 任意两点最短路
#include #include #include #include #include#include#includeusing namespace std;const int maxn=101;const int INF=0x3f3f3f3f;stringstream sstd;int map[maxn][maxn];int main(){ int n;cin>原创 2018-02-01 09:29:30 · 183 阅读 · 0 评论 -
kruskal求最小生成树(并查集法)
//并查集 kruskal#include#include#include#includeusing namespace std;const int MAXN=1010;int F[MAXN];//下标的father节点int n,re;//边数--用户输入数据 结果struct side{ int a,b;//边的端点 int len;//边的长度};sid原创 2018-02-01 09:27:45 · 275 阅读 · 0 评论 -
prim 求最小生成树(邻接表)
#include #include #include using namespace std;const int INF=0x3f3f3f3f;//无穷数const int maxn=1e5+5;//最大边数;struct ac{//to city int v,dis;};vector adj[maxn];//dataint n,dis[maxn];//dis 每个点距当原创 2018-02-01 09:21:55 · 583 阅读 · 4 评论 -
prim 求最小生成树(邻接矩阵)
#include #include #include using namespace std;const int INF=0x3f3f3f3f;//无穷数const int maxn=100;//最大城市数;int guide[maxn][maxn];//邻接矩阵int n,dis[maxn];//城市数 距当前树距离bool vst[maxn]={false};//访问标记i原创 2018-02-01 09:20:11 · 521 阅读 · 0 评论 -
c++知识点大全(基础与提高)
#if 0#include &lt;iostream&gt;#include &lt;iomanip&gt;#include &lt;string&gt;#include &lt;stdio.h&gt;using namespace std;2.2cout控制输出长度.格式: cout&lt;&lt;setw(8)&原创 2017-12-23 16:22:34 · 1148 阅读 · 0 评论 -
C 素数判断&生成素数表
#include #include int main(){ int isorno=1,m,i; printf("请输入一个数\n"); scanf("%d",&m); for(i=2;isqrt(m);i++) { if(m%i==0) { isorno=0; break;原创 2016-07-21 08:48:35 · 453 阅读 · 0 评论 -
欧拉函数
/*https://www.cnblogs.com/jackge/archive/2012/12/18/2823235.html */#include #includeusing namespace std;const int N=3000010;int prime[N],isprime[N]={0};//0为质数int phi[N];//存n的欧拉函数值void get_p原创 2018-02-01 10:13:09 · 162 阅读 · 0 评论 -
设计模式之装饰者模式
转载自www.404notfind.xyz 查看目录请点人家 ˙ω˙咖啡订单系统有一家咖啡连锁店,发展的很快,所以他们准备更新订单系统,以合乎他们的饮料供应需求。 他们原先的类是这样设计的。。。 购买咖啡时,可以购买不同的口味,例如:蒸奶(Steamed Milk),豆浆(Soy),摩卡(Mocha)或者奶泡。。。。。咖啡店根据不同调料收取不同的费用,订单系统要考虑这些调料部分。...转载 2018-09-13 18:39:00 · 139 阅读 · 0 评论 -
设计模式之观察者模式
转载自www.404notfind.xyz 查看目录请点人家 ˙ω˙气象观测站你的团队接到一个任务,建立一个能显示气象站数据的应用,可以添加或移除布告板,布告板默认有 目前状况,气象统计,天气预测。用户可以随时添加或移除布告板。提供一个WeatherData对象,可以从气象站获得温度,湿度,气压等信息。 大概长这样 错误的实现WeatherData类长这样 直接再函...转载 2018-08-26 14:52:41 · 198 阅读 · 0 评论 -
POJ 3061 Subsequence
原文:www.404notfind.xyz题目描述A sequence of N positive integers (10 < N < 100 000), each of them less than or equal 10000, and a positive integer S (S < 100 000 000) are given. Write a program...转载 2018-08-16 09:25:32 · 2250 阅读 · 0 评论 -
设计模式之策略模式
转载自 zsh’s 颓废史查看目录请点人家 ˙ω˙模拟鸭子Joe上班的公司做了一套相当成功的模拟鸭子游戏:SimDuck。游戏中会出各种鸭子。用OO的方式设计,会游泳,呱叫。 现在我们得让鸭子能飞Joe直接在父类中添加了fly()方法 但是问题出现出现了一只会叫的橡皮鸭RubberDuck 因为橡皮鸭继承父类,所以就自带fly()方法,但这是不合理的 ...转载 2018-08-12 18:30:58 · 181 阅读 · 0 评论 -
virtual table 多态实现原理
转载请注明出处 www.404notfind.xyz多态原理在c++中,多态是通过一张虚函数表(virtual table)来实现的,简称v-table,在这个表中主要是一个类的虚函数地址,通过这张表来实现继承,覆写。 比如,一个父类有一个虚函数,这个虚函数地址放在v-table中,有一个子类继承了这个父类,并且覆写了这个虚函数,是如何复写的呢,由于虚函数表也继承了过来,就用新的虚函数...转载 2018-08-14 21:04:50 · 829 阅读 · 0 评论 -
algorithm 二分搜索
binary_search() :查找指定值,存在返回下标,否则返回假idx = binary_search(A,A+n,want);lower_bound() :返回一个迭代器,指向第一个 大于等于 指定值得元素找不到时返回末尾迭代器,可以计算距离如果大于最大下标则不存在#include<iostream>#include<algorithm&...原创 2018-04-01 11:12:54 · 242 阅读 · 0 评论 -
数据结构 C++STL
什么是数据结构: 数据集合规则操作栈 stack:规则:last in first out 后入先出 LIFO操作:stack<> name;push(x) :在栈顶添加元素xpop() :从栈顶弹出元素empty() :检查栈是否为空size() :返回大小top() :返回元素个数队列 queue:规则 :先入先出 FIFO操作: q...原创 2018-04-01 10:26:17 · 165 阅读 · 0 评论 -
母函数
/*https://www.cnblogs.com/linyujun/p/5207730.html 求用1分、2分、3分的邮票贴出不同数值的方案数:(每张邮票的数量是无限的) 那么 1分:(1+x^1+x^2+x^3+x^4+......) 2分:(1+x^2+x^4+x^6+x^8+......) 3分:(1+x^3+x^6+x^9+x^12+......) 然后这3个乘起来 对于原创 2018-02-02 12:01:05 · 187 阅读 · 0 评论 -
母函数(指数型)
/* HDOJ 1521 */#include#includeusing namespace std;typedef int LL;const int N=32768+1;const int MAX=4;double c1[N]={0},c2[N]={0}; //注意类型double fi[N]={0};//存放N!int n;void initfi()//记忆化搜索,递归原创 2018-02-02 11:56:38 · 2294 阅读 · 0 评论 -
母函数(指数型)(泰勒展开式)
/*http://blog.sina.com.cn/s/blog_79b832820100x8pa.html HDU 2065 "红色病毒"问题 (泰勒级数推导) */#include #includeusing namespace std;const int MOD=100;int Qpower(int a,long long b){ int ans=1,base=a;原创 2018-02-02 11:48:54 · 5213 阅读 · 0 评论 -
异或的魅力
0^0就是0,1^1就是0,0^1就是1,a^x^x=a,x^x=0,异或交换a b//a b地址不能一样,否则为0a^=b;b^=a;a^=b;取石子游戏&异或和 http://blog.csdn.net/qq_33346538/article/details/77507726原创 2017-12-16 13:28:28 · 163 阅读 · 0 评论 -
C语言常用字符串操作函数总结
http://m.blog.csdn.net/leeds1993/article/details/60956971原创 2017-12-14 23:16:21 · 209 阅读 · 0 评论 -
DoubleBufferPrint不闪屏打印
//http://www.cnblogs.com/zmjarek/p/4228399.html 学习#include <stdio.h>#include <windows.h>#include <stdlib.h>#include <iostream>using namespace std;void onebufferprint();//原打印void doublebufferpri原创 2017-12-14 20:10:02 · 247 阅读 · 0 评论 -
大数相加
#include <stdio.h>int getmax(char a[]);int main(){ char a[1005]={0},b[1005]={0},c[1005]={0}; int along=0,blong=0,clong=0;//a b c的长度 int jw=0,sum=0;//进位 相加的值while(scanf("%s",a)!=EOF)原创 2017-12-14 20:14:27 · 138 阅读 · 0 评论 -
快速幂
#include<stdio.h>#include<iostream>#include <math.h>//以b==11为例,b=>1011,二进制从右向左算,但乘出来的顺序是 a^(2^0)*a^(2^1)*a^(2^3),//是从左向右的。我们不断的让base*=base目的即是累乘,以便随时对ans做出贡献using namespace std;long long Qpower(i原创 2017-12-14 20:12:59 · 103 阅读 · 0 评论 -
汉诺塔问题hanoi
#include <stdio.h>#include<iostream>using namespace std;void hanoi(int,char,char,char);int main(){ char x='X',y='Y',z='Z'; int n; cout<<"请输入层数"; cin>>n; hanoi(n,x,y,z); retu原创 2017-12-14 20:12:02 · 201 阅读 · 0 评论 -
C/C++ 文件操作
.原创 2016-07-23 13:24:46 · 254 阅读 · 0 评论 -
ASCII编码及转义字符
实践:键盘上输入一个小写字母,显示这个小写字母及它所对应的大写字母以及它们的ASCII码值#include <stdio.h>int main(){ int ch1,ch2; printf("请输入一个小写字母:\n"); ch1=getchar(); ch2=ch1-32; printf("小写:\t%c\t大写:\t%c\n",ch1,ch2);翻译 2016-06-25 10:44:21 · 702 阅读 · 0 评论 -
C算术运算符与算术表达式 优先级
除法运算 / 两个整数相除结果为整数 如:5/3=1 “向零取整”:-5/3的结果为-1模运算/取余运算 % %两侧均为整型数据 如7%4的结果为3 如何让10+3.5f的结果变为float型(它是一个double型) 用强制类型转换 语法 (类型)(表达式) 如:(float)(10+3.5f);本课练习:输入一个三位整数,输出它的个十百位分别是多少#in原创 2016-06-20 09:36:46 · 845 阅读 · 0 评论 -
C 数值数据类型及表示范围
*注:图片来自贺利坚老师C语言及程序设计初步教程的课件中 教程地址:http://edu.csdn.net/course/detail/271转载 2016-06-19 19:59:45 · 718 阅读 · 0 评论 -
矩阵快速幂&递推的妙解
https://www.cnblogs.com/dwtfukgv/articles/5595078.html原创 2017-12-22 20:25:33 · 243 阅读 · 0 评论 -
快速排序&sort()用法
#include <iostream>#include <algorithm>using namespace std;void quick_sort(int arry[],int maxlen,int op,int ed);int main(){ int a[10]={2,1,7,4,6,8,2,3,1,0}; //sort(a,a+10); quick_sort(原创 2017-12-14 20:16:05 · 2725 阅读 · 0 评论