算法
ZMST
这个作者很懒,什么都没留下…
展开
-
递归学习小结(全排列)
分治(分而治之):分治法将原问题划分成若干个规模较小而结构与原问题相同或相似的子问题然后分别解决这些子问题最后合并子问题的解即可得到原问题的解即三个步骤:①分解②解决③合并注意:分治法分解出的子问题应当是相互独立、没有交叉的。 如果存在两个子问题有交叉部分,那么不应该使用分治法解决从广义上讲:分治法分解的子问题个数只要大于0即可但严格...原创 2018-08-14 15:34:09 · 297 阅读 · 0 评论 -
PAT——A1092(hash)
题目链接#include<cstdio>#include<cstring>#include<iostream>using namespace std;int HashTable[1010]={0};int miss[1010]={0};int change(char c){ if(c>='0'&&c<='9...原创 2018-08-13 14:49:35 · 128 阅读 · 0 评论 -
PAT——B1042(hash)
题目链接:#include<cstdio>#include<cstring>#include<iostream>using namespace std;string str;int HashTable[30]={0};int main(){ getline(cin,str); int len=str.length(); ...原创 2018-08-13 15:30:48 · 122 阅读 · 0 评论 -
PAT——B1043(hash)
题目链接:#include<cstdio>#include<cstring>#include<iostream>using namespace std;string str;int HashTable[6]={0};char zm[6]={'P','A','T','e','s','t'};int main(){ getline(ci...原创 2018-08-13 15:43:00 · 139 阅读 · 0 评论 -
PAT——A1041(hash)
题目链接:#include<cstdio>#include<cstring>#include<iostream>using namespace std;int a[100010];int HashTable[10001]={0};int main(){ int m; scanf("%d",&m); int fl...原创 2018-08-13 16:15:57 · 353 阅读 · 0 评论 -
PAT——B1047(hash 水)
题目链接:#include<cstdio>#include<cstring>#include<iostream>using namespace std;int a[100010];int HashTable[10001]={0};int main(){ int m; int dd,rm; string s; i...原创 2018-08-13 16:25:28 · 147 阅读 · 0 评论 -
PAT——A1050
题目链接:#include<cstdio>#include<cstring>#include<iostream>using namespace std;#define maxn 10005//char a[maxn],b[maxn];string a,b;bool HashTable[128];int main(){ getlin...原创 2018-08-14 18:28:52 · 135 阅读 · 0 评论 -
PAT——B1005(25)(hash)
题目链接:#include<stdio.h>#include<cstring>#include<iostream>#include<algorithm>using namespace std;#define maxn 10005//char a[maxn],b[maxn];int a[110];bool HashTable[10...原创 2018-08-14 18:28:43 · 155 阅读 · 0 评论 -
PAT——A1048(hash)
题目链接:#include<stdio.h>#include<cstring>#include<iostream>#include<algorithm>using namespace std;#define maxn 10005//char a[maxn],b[maxn];int a[100010];int HashTable[...原创 2018-08-14 18:28:31 · 273 阅读 · 0 评论 -
CSU Rectangle (模拟)
题目链接:#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>using namespace std;#define maxn 1000010int cnta[30],cntb[30],cntc[30]...原创 2018-08-18 11:15:42 · 119 阅读 · 0 评论 -
Rectangle (01-背包)
题目链接:参考博客#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>using namespace std;#define maxn 1000010int dp[maxn],s[maxn];in...原创 2018-08-18 13:03:53 · 100 阅读 · 0 评论 -
动态规划问题小结
动态规划(Dynamic Progamming,DP)是一种用来解决一类最优化问题的算法思想简单来说动态规划将一个复杂的问题分解成若干个子问题通过子问题的最优解来得到原问题的最优解tips:动态规划如何记录子问题的解来避免下次遇到相同的子问题时的重复计算以斐波那契数列代码为例有很多重复计算的过程为避免重复计算开一个一维数组dp用以保存已经计算过的结果其中...原创 2018-08-18 14:43:01 · 204 阅读 · 0 评论 -
PAT——1033(hash)
一开始的题意就没有完全弄懂+号的意思是第二行所有大写的都不输出总是有1分过不了因为很有可能没有坏键输入此时scanf和cin就不能用了可以用getlineget(不知道为何pat总显示编译错误)但getline是string型的#include<cstdio>#include<cstring>#include<iostream&g...原创 2018-08-13 14:11:46 · 112 阅读 · 0 评论 -
PAT——B1029(hash)
要解决的两个问题:①如何在英文字母不区分大小写的情况下判断在的一个字符串中有哪些字符没有在第二个字符串中出现枚举小写变大写找不到相等就直接输出②如何保证同一个字符(不区分大小写)只输出一次,且英文字母均使用大写输出设置bool HashTable[128]表示字符是否已经输出则可以判断是否输出注意:HashTable数组的大小只要能把题目给出的字符包括即可一般可...原创 2018-08-13 13:06:41 · 289 阅读 · 0 评论 -
递归:n皇后问题
n皇后问题是指在一个n*n的国际象棋棋盘上放置n个皇后使得这n个皇后两两均不在同一行、同一列、同一条对角线上求合法的方案数【分析】多国采用组合数的方式来枚举每一种情况(即从n^2个位置中选择n个位置)那么将需要C^n n*n个枚举量 太大的数过不了换个思路考虑到每行只能放一个皇后每列也只能放一个皇后那么如果把n列皇后所在的行号依次写出那么就会是1~n的一...原创 2018-08-14 16:05:39 · 643 阅读 · 0 评论 -
codeup(简单递归)1907
题目链接:#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>using namespace std;int mm(int n){ if(n==1) return 1; else if(n==2) ...原创 2018-08-14 16:26:53 · 152 阅读 · 0 评论 -
codeup2018(递归)
题目链接:#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>using namespace std;int ff(int n){ if(n==1) return 0; else if(n==2) ...原创 2018-08-14 17:54:39 · 114 阅读 · 0 评论 -
codeup——2044(递归)(还有dp的解法 等学到了再学)
题目链接:#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>using namespace std;#define maxn 21int A[maxn];int ff(int num,int i){ if(num==0) ...原创 2018-08-14 18:25:30 · 118 阅读 · 0 评论 -
codeup——2046(递归)(学到dfs再回来做)
题目链接:#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>using namespace std;#define maxn 93#define n 8int i=1,P[maxn][n]={0},T[n+1];bool HashTable...原创 2018-08-14 19:23:11 · 119 阅读 · 0 评论 -
PAT——B1020 A1070(贪心)
题目链接:#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>using namespace std;struct cake{ double store,sell,price;}ca[1010];bool cmp(cake a,cake...原创 2018-08-14 20:11:02 · 187 阅读 · 0 评论 -
map学习小结
map可以将任何基本类型(包括STL容器)映射到任何基本类型(包括STL容器),当然也可以建立string型到int型的映射适用场合如:需要判断给定的一些数字在某个文件中是否出现过头文件#include<map>using namespace std;1、map的定义:单独定义一个map:map<typename1,typename2>mp;ma...转载 2018-08-12 20:37:05 · 215 阅读 · 0 评论 -
散列(hash)知识总结
散列是常用的算法思想之一应用如,给出N个正整数,再给出M个正整数问:M个数中的每个数是否在N个数中出现过如果N,M<=10^5,可以用遍历来做,但时间复杂度很大这时就可以用空间换时间即设定一个bool型数组hash Table[100010],这样在一开始读入N个正整数时就进行预处理代码:#include<cstdio>#define maxn...原创 2018-08-13 10:48:44 · 1095 阅读 · 0 评论 -
PAT——A1037(局部贪心)
题目链接:处理正数和负数的条件不行#include<cstdio>#include<cmath>#include<iostream>#include<algorithm>using namespace std;int a[100010];int b[100010];int main(){ int n,m; s...原创 2018-08-15 20:10:57 · 356 阅读 · 0 评论 -
PAT——A1067(贪心)
题目链接:#include<cstdio>#include<cmath>#include<iostream>#include<algorithm>using namespace std;#define maxn 100010int pos[maxn];int main(){ int n; scanf("%d",&...原创 2018-08-15 21:00:04 · 334 阅读 · 0 评论 -
字符串hash初步(待补充进阶部分12.1)
如果key不是整数,设计散列函数:例子题目:如何将一个二维整点P的坐标映射为一个整数,使得整点P可以由该整数唯一地代表假设一个整点P的坐标是(x,y),其中0<=x,y<=Range那么可以令hash函数为H(P)=x*Range+y这样对数据范围内的任意两个整点p1,p2,H(p1)都不会等于H(p2)就可以用H(P)来唯一地代表该整点P接着可以通过证...转载 2018-08-13 11:18:02 · 210 阅读 · 0 评论 -
STL二分之lower_bound()和upper_bound()的用法总结
lower_bound()和upper_bound()都是利用二分查找的方法在一个排好序的数组中进行查找的在从小到大的排序数组中lower_bound(begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于或等于num的数字,找到返回数字的地址不存在则返回end通过返回的地址减去起始地址begin()得到找到数字在数组中的下标upper_bo...转载 2018-08-17 15:20:57 · 263 阅读 · 0 评论