
acmer
mmciel
这个作者很懒,什么都没留下…
展开
-
【菜鸟er】搜索专题_优化线性搜索
#include <bits/stdc++.h>#include <time.h>using namespace std;#define N 1000template<typename T>int line_search(T a[],T flagnum, T n){ int i = 0; a[n] = flagnum; while(a[...原创 2018-03-16 22:51:38 · 242 阅读 · 0 评论 -
【菜鸟er】常见问题_伪斐波那契
#include <bits/stdc++.h>using namespace std;int main(){ //打表 int a[50]={0}; a[1]=1;a[2]=2;a[3]=4; for(int i = 4;i<50;i++){ a[i]=a[i-1]+a[i-2]+a[i-3]; } int ...原创 2018-04-17 17:57:02 · 211 阅读 · 0 评论 -
【菜鸟er】动态规划_01背包
#include <bits/stdc++.h>#define MAX_N 1000using namespace std;int v[MAX_N],w[MAX_N];int dp[100][100];int n;int wmax,vmax;int main(){ //输入 cin>>n; for(int i=0;i<n;i...原创 2018-04-17 18:01:47 · 228 阅读 · 0 评论 -
【菜鸟er】动态规划_思想入门
/** DP:1.DP与分治: DP与分治区别在于划分的子问题是有重叠的, 解过程中对于重叠的部分只要求解一次,记录下结果,其他子问题直接使用即可,减少了重复计算过程。 DP在求解一个问题最优解的时候,不是固定的计算合并某些子问题的解,而是根据各子问题的解的情况选择其中最优的。 2.性质: 最优子结构性质 子问题重叠性质 解释: 最优子结构性质: 最优解包含了其...原创 2018-04-17 18:03:58 · 224 阅读 · 0 评论 -
【菜鸟er】动态规划_最长递增子序列
#include <bits/stdc++.h>using namespace std;#define MAX_N 100int a[MAX_N];int dp[MAX_N][MAX_N];int dpLCS[MAX_N][MAX_N];int n,m;//方法1:公共子序列法;int LCS(void);//方法2:动态规划算法;int LISdp(void);...原创 2018-04-17 18:07:07 · 196 阅读 · 0 评论 -
【菜鸟er】动态规划_最长公共子序列
//LCS#include <bits/stdc++.h>using namespace std;#define MAX_N 100int a[MAX_N],b[MAX_N];int dp[MAX_N][MAX_N];int main(){ int n,m; cin>>n>>m; for(int i=0;i<n;i+...原创 2018-04-17 18:08:10 · 156 阅读 · 0 评论 -
【菜鸟er】模板专题_template函数模板
/* 模板,实现类型参数化,把类型定义为参数。 函数模板和类模板允许用户构造:模板函数和模板类 类模板:这个类是一个模板//与函数模板是兄弟 模板类:从模板产生的类//有时候作为类模板的同义词*/#include <bits/stdc++.h>using namespace std;//==>>函数模板template <...原创 2018-04-17 18:09:51 · 293 阅读 · 0 评论 -
【菜鸟er】模板专题_幂运算快速取模
#include <bits/stdc++.h>using namespace std;#define LL long longLL power_mod(LL a,LL b, LL mod){ LL res = 1; a %= mod; while(b){ if(b & 1) res = (res * a)%mod; ...原创 2018-04-17 18:10:53 · 214 阅读 · 0 评论 -
【菜鸟er】C语言数据结构_动态栈应用
#include <stdio.h>#include <malloc.h>#include <stdlib.h>//#include <bits/stdc++.h>//using namespace std;//链表定义typedef struct node{ int data; struct node * pnext;...原创 2018-04-17 18:12:08 · 227 阅读 · 0 评论 -
【菜鸟er】C语言数据结构_链表应用
#include <stdio.h>#include <malloc.h>#include <stdlib.h>//#include <bits/stdc++.h>//using namespace std;//链表定义typedef struct node{ int data; struct node * pnext;...原创 2018-04-19 19:27:51 · 312 阅读 · 0 评论 -
【菜鸟er】C语言数据结构_入门
/**链表入门: 首节点:第一个有效节点 尾节点:最后一个有效节点 头节点: 第一个有效节点之前的那个节点 不存放数据 方便操作 头指针,尾指针:指向头尾节点的指针变量 *确定一个链表需要几个参数: 一个参数:头指针定义: struct node{ int data; //数据域 //存放复杂数据 struct node * pnext; ...原创 2018-04-19 19:31:15 · 2286 阅读 · 0 评论 -
【菜鸟er】搜索专题_选择插入排序
/** 选择排序法(记录下标) 思路: 分为已排序和未排序 在未排序部分找到最小值的下标 与未排序部分的第一个数交换 直到未排序结束*/void select_sort(int a[], int n){ int i,j; int min_index; int temp; for(i...原创 2018-04-19 19:35:08 · 205 阅读 · 0 评论 -
【菜鸟er】常见问题_约瑟夫问题(猴子选大王)
题目描述n只猴子围坐成一个圈,按顺时针方向从1到n编号。然后从1号猴子开始沿顺时针方向从1开始报数,报到m的猴子出局,再从刚出局猴子的下一个位置重新开始报数,如此重复,直至剩下一个猴子,它就是大王。输入输入两个整数n和m,1<=m<=n<=100。输出输出猴王的编号样例输入8 3样例输出7#include <bits/stdc++...原创 2018-03-19 20:38:31 · 1518 阅读 · 0 评论 -
【菜鸟er】STL_stringstream
#include <bits/stdc++.h>using namespace std;//应用://--------------数字转字符串,使用sprintf(char数组名,类型,数字变量名)//--------------字符串转数字,使用sscanf(char数组名,类型,&数字变量名)void Cfun(){ int num1 = 123; ...原创 2018-07-30 20:10:33 · 228 阅读 · 0 评论 -
【菜鸟er】博弈论入门
巴什博奕/**问题: A和B一块报数,每人每次报最少1个,最多报4个,看谁先报到30。 **巴什博奕:只有一堆n个物品,两个人轮流从中取物,规定每次最少取一个,最多取m个,最后取光者为胜。*//**解析: 只和先手后手有关, 比如第一次报数,A报k个数,那么B报5-k个数, 那么B报数之后问题就变为:A和B一块报数,看谁先报到25了;进而变为20,15,1...原创 2018-07-30 20:15:46 · 217 阅读 · 0 评论 -
【菜鸟er】常见问题_第n个素数+常见问题_斯特林公式解阶乘位数
第n个素数 //题目分析:输出第k个素数/**用筛法求素数的基本思想是:把从1开始的、某一范围内的正整数从小到大顺序排列,1不是素数,首先把它筛掉。剩下的数中选择最小的数是素数,然后去掉它的倍数。依次类推,直到筛子为空时结束。如有:1 2 3 4 5 6 7 8 9 1011 12 13 14 15 16 17 18 19 2021 22 23 24 25 26 27 ...原创 2018-07-30 20:17:56 · 349 阅读 · 0 评论 -
【菜鸟er】常用模板_最大公约数(快速算法)+常用模板_大数阶乘
#include <bits/stdc++.h>using namespace std;//最小公倍数:lcm(a,b)=a/gcd(a,b)*b//最大公约数://辗转相除法:int gcd(int a,int b){ while(b!=0) { int r=b; b=a%b; a=r; } ...原创 2018-07-30 20:22:37 · 317 阅读 · 0 评论 -
【菜鸟er】常见问题_ 最大公约数之和
//求1-n的每个数同n的最大公约数之和:欧拉函数法/**1-12与12的最大公约数和就为φ(1)*12+φ(2)*6+φ(3)*4+φ(4)*3+φ(6)*2+φ(12)*1*/#include <bits/stdc++.h>using namespace std;#define LL long longLL euler(LL x) {//调用欧拉函数 LL ...原创 2018-04-17 17:51:20 · 257 阅读 · 0 评论 -
【菜鸟er】常见问题_ 位运算
/** 左移一位就是乘以2,右移一位就是除以2. 乘2^k: n<<k。除2^k: n>>k。 mod 2^k 呢?(对2的倍数取模) n & ((1<<k)-1) 判断int型变量a是奇数还是偶数 a&1 = 1 奇数 a&1 = 0 偶数 swap(a,b) == a^=b^=a^=...原创 2018-04-17 17:42:29 · 259 阅读 · 0 评论 -
【菜鸟er】常见问题_ 欧拉函数
//欧拉函数:小于或等于n的数中与n互质的数的数目/**p^k型欧拉函数:若N是质数p(即N=p), φ(n)= φ(p)=p-p^(k-1)=p-1。若N是质数p的k次幂(即N=p^k),φ(n)=p^k-p^(k-1)=(p-1)p^(k-1)。mn型欧拉函数设n为正整数,以φ(n)表示不超过n且与n互素的正整数的个数,称为n的欧拉函数值。若m,n互质,φ(mn)=(m-1)(...原创 2018-04-15 20:50:27 · 448 阅读 · 0 评论 -
【菜鸟er】搜索专题_二分搜索模板
#include <bits/stdc++.h>using namespace std;template <typename T>bool er_search(T a[],T n,T num){ int left = 0, right = n; int mid; while(left < right){ mid = (...原创 2018-03-16 23:35:50 · 288 阅读 · 0 评论 -
【菜鸟er】搜索专题_STL搜索
#include <iostream>#include <algorithm>#include <vector>using namespace std;int main(){ //二分搜索:lower_bound() upper_bound() binary_search() int a[10] = {12,23,45,56,78,...原创 2018-03-17 09:36:21 · 256 阅读 · 0 评论 -
【菜鸟er】搜索专题_二分思想的应用_计算最优解
/***参考书:挑战程序设计竞赛_算法与数据结构_第二版 P106*problem:传送带送来了n个货物,依次装到k辆卡车(最大运载量p一致)。*限制:n, k <=10000;//更改了原题的规模*input: 第一行输入 n k, 接下来n行,输入重量a[i]*output: 最大运载量p*example: in: ...原创 2018-03-17 10:27:49 · 265 阅读 · 0 评论 -
【菜鸟er】模板专题_阶乘模板
#include <bits/stdc++.h>using namespace std;template<long long N>struct fact{ enum {sum = N*fact<N-1>::sum};};template<>struct fact<1>{ enum {sum=1};};...原创 2018-03-17 10:45:50 · 271 阅读 · 0 评论 -
【菜鸟er】STL专题_入门概念
/**STL的组成 STL的组成 : 容器 算法 迭代器 容器适配器 函数对象等; 容器:容纳一些数据的模板类,就是说存数据的东西 是一种储存T类型值得有限集合,内部实现一般是类。 算法:处理容器内数据的操作方法,就是说对数据进行的处理 由函数模板实现,不是容器类的成员函数,而是独立的函数,通用性较高。 迭代器:按照预先的顺序在容器内的成员间移动...原创 2018-03-17 12:57:25 · 267 阅读 · 0 评论 -
【菜鸟er】STL专题_vector
/*vector vector(向量): 通俗解释:一个动态数组(随意更改大小),在不知道规模的输入下常常申请的一种数据结构(类) 使用方法: 头文件#include <vector> 申请空间:vector <int> a;(一维数组) vector<vector<int>> a;(二维数组) 或者:vect...原创 2018-03-17 12:58:29 · 218 阅读 · 0 评论 -
【菜鸟er】STL专题_优先队列
/**优先队列:插入一个数值+获得一个最值(获得+删除)实现原理:堆结构stl:priority_queuepush():插入数值pop():删除最值top();获取最值重点: priority_queue<int> a; ------取出的是最大值 priority_queue<int,vector<int>, greater<int...原创 2018-04-15 17:48:18 · 180 阅读 · 0 评论 -
【菜鸟er】经典题目_划分整数
#include <bits/stdc++.h>using namespace std;#define MAX_N 400int dp[MAX_N][MAX_N];int part_sum(int ,int );//输出种数int part_print(int,int,int,int sec[],int);int max_part;int sec[MAX_N];int ...原创 2018-04-15 17:58:06 · 186 阅读 · 0 评论 -
【菜鸟er】经典题目_逆波兰表示法
#include <bits/stdc++.h>using namespace std;/**写在前面: 对于所有容器,属性判断一定要放在操作判断的前面 也就是说,top出的数据是否等于val这个条件一定要放在能否top后面,否则会异常*/stack<string> str;//生成期的临时符号栈stack<int> num;//运算期...原创 2018-04-15 18:14:03 · 780 阅读 · 0 评论 -
【菜鸟er】STL专题_deque
#include <bits/stdc++.h>using namespace std;void print(int num){ cout << num << " ";}int main(){ //1. 初始化 deque<int> v; deque<int>::iterator iv; //iterat...原创 2018-04-15 20:34:59 · 274 阅读 · 0 评论 -
【菜鸟er】STL专题_list应用
#include <bits/stdc++.h>using namespace std;int main () { list<int> mylist1, mylist2; list<int>::iterator it; // 初始化 for (int i = 1; i <= 4; ++i) mylist...原创 2018-04-15 20:40:30 · 216 阅读 · 0 评论 -
【菜鸟er】STL专题_set-multiset-map-multimap
//set应用#include <bits/stdc++.h>using namespace std;int main(){ ///1. 初始化 set<int> num; set<int>::iterator iter; cout << num.max_size() << endl;///set容...原创 2018-04-15 20:42:21 · 220 阅读 · 0 评论 -
【菜鸟er】STL专题_函数补充
/*函数补充1.count()函数:这个函数使用一对迭代器和一个值做参数,返回这个值出现次数的统计结果。 int num = count(v.begin() , v.end() , searchValue);2.count_if() 统计某个条件成立的次数 上代码: bool g(int value){ //返回真假的一个函数 return value >10; ...原创 2018-04-15 20:43:50 · 252 阅读 · 0 评论 -
【菜鸟er】STL专题_容器常用函数
/*vector vector(向量): 通俗解释:一个动态数组(随意更改大小),在不知道规模的输入下常常申请的一种数据结构(类) 使用方法: 头文件#include <vector> 申请空间:vector <int> a;(一维数组) vector<vector<int>> a;(二维数组) ...原创 2018-04-15 20:46:16 · 554 阅读 · 1 评论 -
【菜鸟er】常见问题_ 韩信点兵算法
#include <bits/stdc++.h>using namespace std;//韩信点兵算法:中国剩余定理int main(){ int a,b,c; while(cin>>a>>b>>c){ int sum = 70*a+21*b+15*c; sum%=105; c...原创 2018-04-15 20:49:00 · 388 阅读 · 0 评论 -
【菜鸟er】常用模板_stringstream实现逆波兰
/**样例输入21.000+2/4=((1+2)*5+1)/4=样例输出1.504.00*/#include <bits/stdc++.h>using namespace std;int Judge(char ch){ //运算符进行优先级划分 if(ch == '+') return 1; if(ch == '-') return 1;...原创 2018-07-30 20:23:25 · 252 阅读 · 0 评论