
算法系列
文章平均质量分 62
Dynamic5210
这个作者很懒,什么都没留下…
展开
-
moving tables贪心算法
题目描述The famous ACM (Advanced Computer Maker) Company has rented a floor of a building whose shape is in the following figure.The floor has 200 rooms each on the north side and south side along原创 2016-10-09 08:21:58 · 763 阅读 · 0 评论 -
kmf算法
问题 A: 算法4-6:KMP字符串模式匹配算法实现时间限制: 1 Sec内存限制: 32 MB提交: 210解决: 106提交状态题目描述KMP算法是字符串模式匹配算法中较为高效的算法之一,其在某次子串匹配母串失败时并未回溯母串的指针而是将子串的指针移动到相应的位置。严蔚敏老师的书中详细描述了KMP算法,同时前面的例原创 2016-10-02 19:02:34 · 1778 阅读 · 0 评论 -
快速排序
c语言//快速排序 从小到大 #include int a[101];void quicksort(int left, int right){//left和right是一组数组里面最左边和最右边的下标 int temp,t,i,j; if(left > right) return ; temp = a[left];//temp是基准值就是拿来比较的数 i原创 2016-09-22 07:45:02 · 242 阅读 · 0 评论 -
利用结构体来写冒泡排序问题
#include#include#define MAX_SIZE 10typedef struct{ int r[MAX_SIZE + 1]; int length;} SqList;void swap( SqList* L, int i, int j ){ int temp = L->r[i]; L->r[i] = L->r[j]; L->r[j] = temp;原创 2016-10-20 09:26:21 · 1262 阅读 · 0 评论 -
dp
这里先提一下dp的基本概念:动态规划程序设计是对解最优化问题的一种途径、一种方法,而不是一种特殊算法。不像搜索或数值计算那样,具有一个标准的数学表达式和明确清晰的解题方法。动态规划程序设计往往是针对一种最优化问题,由于各种问题的性质不同,确定最优解的条件也互不相同,因而动态规划的设计方法对不同的问题,有各具特色的解题方法,而不存在一种万能的动态规划算法,可以解决各类最优化问题。因此读者在学习时,除转载 2016-11-10 22:27:09 · 239 阅读 · 0 评论 -
quicksort
#include #include typedef struct{ int r[100]; int length; }sqlist;int partition(sqlist*l,int low,int high){int pivotkey;pivotkey=l->r[low];l->r[0]=pivotkey;while(low<high){ while(lowr[h原创 2016-11-02 14:04:54 · 340 阅读 · 0 评论 -
完全背包
完全背包GoodscapacityweightA23B12C34D22问题:有n种物品,每种物品有无限个,每个物品的重量为weight[i],每个物品的价值为v原创 2016-11-18 18:49:02 · 379 阅读 · 0 评论 -
多重背包
多重背包 WeightValueAmountA233B122C341D222问题:有n种物品,每种物原创 2016-11-18 23:01:40 · 238 阅读 · 0 评论 -
算法时间复杂度
题目:已知数组a[n]中的元素为整型,设计算法将其调整为左右两部分,左边所有的元素为奇数,右边所有元素为偶数,并要求算法的时间复杂度为O(n^2)。#include int main(){ int i,j,a[100],k,m,l,n,z,w,b; scanf("%d",&m); for(i=0;i<m;i++){ scanf("%d",&a[i]); } z=m/2; n=原创 2016-11-19 15:16:51 · 481 阅读 · 0 评论 -
01背包(dp)
0,1背包问题GoodscapacityweightA23B12C34D22 题目:有N件物品和一个容量为V的背包。第i件物品的重量是weight[i],价原创 2016-11-18 12:19:35 · 292 阅读 · 0 评论 -
完全背包(改进一维数组)
完全背包GoodscapacityweightA23B12C34D22问题:有n种物品,每种物品有无限个,每个物品的重量为weight[i],每个物品的价值为v原创 2016-11-18 20:12:19 · 297 阅读 · 0 评论 -
dfs
靠靠靠~~~~这个程序debug了半天最后发现就是一个小问题,不过还好找到了includeint book[100][100],a[100][100],n,m,p,q,min=9999999; void dfs(int x,int y,int step){ int next[4][2]={{0,1},{1,0},{0,-1},{-1,0}}; int tx,ty,i; if(x==q &原创 2016-11-07 22:41:53 · 239 阅读 · 0 评论 -
全排列
我只能说,对于这个代码我想了很久很久,好吧,怪我脑子笨,理解这个全排列得完全了解递归,其实这里就是三个关键点。1:标记数组的运用book[ i]2:关键的变量就是step和i,清楚每个阶段step的值和i的值;3:最后就是有关递归的知识了#include int n,a[10],book[10];void dfs(int temp){ int i; if(temp==n原创 2016-09-28 22:48:38 · 282 阅读 · 0 评论 -
桶排列
题目:让计算机读入五个数然后将这五个数从大到小和从小到大输出;//桶排序 (从小到大) #include int main(){ int book[100]={0},i,t,m; for(i=0;i<5;i++){ scanf("%d",&t); book[t]++; } for(i=0;i<10;i++){ for(m=0;m<book[i];m++){原创 2016-09-19 23:14:45 · 345 阅读 · 0 评论 -
rightmost digit
竞技场测试中 可以使用acmclub各校账号登录问题 B: Rightmost Digit时间限制: 1 Sec内存限制: 32 MB提交: 105解决: 23提交状态题目描述Given a positive integer N, you should outpu原创 2016-09-23 09:11:22 · 275 阅读 · 0 评论 -
书籍摆放问题
讨论1:请回想一下曾经用过哪几种方法在自己的书架上放书。对于不同的方法,描述一下上述两个操作的步骤。然后想一想在容量巨大的图书馆里该如何存放图书,并且快速找到某一本指定的图书。整理出一封报告。两个基本操作:操作1:图书怎么插入?操作2:怎么找到某本指定的书?我的放书方法:我书架上的图书,首先是按种类分,一种类别的书放一层,然后再把同种类别的图籍按从高到低的摆放在一层。我如果想在原创 2016-09-20 13:17:48 · 4210 阅读 · 0 评论 -
冒泡排序
c语言代码#include //输入n个数,最后按从大到小的顺序输出 cint main(){ int shu[100],n,m,i,c,t; scanf("%d",&c); for(i=0;i<c;i++){ scanf("%d",&shu[i]); } for(n=0;n<c;n++){ for(m=0;m<c-n;m++){ if(shu[m+1]>shu[m])原创 2016-09-21 22:48:04 · 288 阅读 · 0 评论 -
排列习题
#include void quicksort(int *a,int left,int right){ int temp,j,i,t; if(left > right) return; temp=a[left]; i = left; j = right; while(i != j){ while(a[j] >= temp && i < j) j--; w原创 2016-09-22 09:27:58 · 297 阅读 · 0 评论 -
递推
题目描述我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目。比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示。输入输入数据的第一行是一个整数n(0输出对于每个测试实例,请输出平面的最大分割数,每个实例的输出占一行。样例输入12样例输出27#原创 2016-10-13 21:51:55 · 240 阅读 · 0 评论 -
递推2
题目描述设有n条封闭曲线画在平面上,而任何两条封闭曲线恰好相交于两点,且任何三条封闭曲线不相交于同一点,问这些封闭曲线把平面分割成的区域个数。输入对每一笔测资,输入只有一行:整数n (0输出一行:一个整数样例输入131030500样例输出2892872249502#include int a(int n)原创 2016-10-13 21:54:02 · 523 阅读 · 0 评论 -
递推3
题目描述在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数. 例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图: 输入输入数据由多行组成,每行包含一个整数n,表示该测试实例的长方形方格的规格是2×n (0 输出对于每个测试实例,请输出铺放方案的总数,每个实例的输出占一行。原创 2016-10-13 21:58:13 · 278 阅读 · 0 评论 -
递推4
题目描述人称“AC女之杀手”的超级偶像LELE最近忽然玩起了深沉,这可急坏了众多“Cole”(LELE的粉丝,即"可乐"),经过多方打探,某资深Cole终于知道了原因,原来,LELE最近研究起了著名的RPG难题: 有排成一行的n个方格,用红(Red)、粉(Pink)、绿(Green)三色涂每个格子,每格涂一色,要求任何相邻的方格不能同色,且首尾两格也不同色.求全部的满足要求的涂法.原创 2016-10-13 22:00:01 · 280 阅读 · 0 评论 -
Fibonacci
问题 C: Fibonacci时间限制: 1 Sec内存限制: 64 MB提交: 28解决: 12提交状态题目描述In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn − 1 + Fn − 2 for n ≥ 2. For exampl原创 2016-09-23 09:13:00 · 369 阅读 · 0 评论 -
广度优先搜索
感觉半夜打代码就好像特务似的#includestruct note{ int x; int y; int s;};int main(){ int next[4][2]={{1,0},{0,-1},{-1,0},{0,1}}; int tx,ty,flag,m,n,i,j,a[100][100]={0},book[100][100]={0},q,p,startx,starty; s原创 2016-11-07 23:44:26 · 286 阅读 · 0 评论