
[课程]计算机算法设计与分析
文章平均质量分 54
你的微笑依然那样灿烂
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
最优二叉搜索树
const int maxn=6;double p[maxn]={0.00,0.15,0.10,0.05,0.10,0.20};double q[maxn]={0.05,0.10,0.05,0.05,0.05,0.10};int root[maxn][maxn];double w[maxn][maxn],ee[maxn][maxn];void BST(){ for(int i=原创 2017-10-21 16:10:09 · 523 阅读 · 0 评论 -
学生选择问题(回溯)-算法设计与分析
//// main.cpp// yybhjbl//// Created by liuzhe on 17/10/21.// Copyright © 2017年 liuzhe. All rights reserved.//#include #include #include #include #include #include #include #include原创 2017-11-18 20:35:17 · 541 阅读 · 0 评论 -
0/1背包(回溯法求解)-算法设计与分析
//// main.cpp// yybhjbl//// Created by liuzhe on 17/10/21.// Copyright © 2017年 liuzhe. All rights reserved.//#include #include #include #include #include #include #include #include原创 2017-11-18 20:33:52 · 1237 阅读 · 0 评论 -
符号三角形问题(回溯)-算法设计与分析
const int maxn=100;int n,a[maxn][maxn],ans,zero,one;bool judge(){ return n*(n+1)/2%2;}bool bound(int x){ memset(a,0,sizeof(a)); for(int i=1;i<=n;i++) { a[1][i]=x%2;原创 2017-11-18 20:32:44 · 1771 阅读 · 0 评论 -
最优服务次序问题(贪心)-算法设计与分析
//最优服务次序问题int n;int a[100];int main(){ cin>>n; for(int i=0;i>a[i]; sort(a,a+n); int ans=0; for(int i=0;i<n;i++) ans+=a[i]*(10-i); printf("%.2f\n",1.0*ans/n); return 0;}*//*Input:1056原创 2017-11-18 20:30:12 · 1161 阅读 · 0 评论 -
汽车加油问题(贪心)-算法设计与分析
//汽车加油问题int n,k,a[100],ans;vectorvec;int main(){ cin>>n>>k; for(int i=0;i>a[i]; int oil=n; for(int i=1;i<=k;i++) { oil-=a[i-1]; if(a[i]>oil) { ans++; oil=n; vec.push_back(i-1);原创 2017-11-18 20:29:10 · 2103 阅读 · 0 评论 -
区间相交问题(贪心)-算法设计与分析
//区间相交问题int n;struct node{ int x,y; bool operator<(const node &s)const { if(y!=s.y) return y<s.y; return x<s.x; }}a[100];int main(){ cin>>n; int ans=0; for(int i=0;i<n;i++) { cin>>原创 2017-11-18 20:28:05 · 1083 阅读 · 0 评论 -
流水作业调度(动态规划)-算法设计与分析
//流水作业调度const int maxn=5;int a[]={2,4,3,6,1};int b[]={5,2,3,1,7};int c[maxn];struct node{ int key,id; bool job;};int cmp(const node &a,const node &b){ return a.key<=b.key;}int f原创 2017-11-18 20:25:52 · 1546 阅读 · 0 评论 -
数字三角形问题(简单动态规划)-算法设计与分析
const int maxn=100;int a[maxn][maxn];int dp[maxn][maxn];int main(){ int n; cin>>n; memset(a,0,sizeof(a)); memset(dp,0,sizeof(dp)); for(int i=1;i<=n;i++) for(int j=1;j<=原创 2017-11-18 20:24:11 · 2805 阅读 · 0 评论 -
合并排序/归并排序(递归与分治)-算法设计与分析
const int maxn=100;int a[maxn];void Merge_Array(int l,int r){ int m=(l+r)>>1; int i=l,j=m+1,n=r; int k=0; int tmp[maxn]; while(i { if(a[i]a[j])tmp[k++]=a[i原创 2017-11-18 17:42:54 · 1649 阅读 · 0 评论 -
集合最大元问题(递归与分治)——算法设计与分析
int n,a[10];int solve(int l,int r){ if(l==r)return a[l]; returnmax(solve(l,(l+r)/2),solve((l+r)/2+1,r));}int main(){ cin>>n; for(int i=0;in;i++)cin>>a[i]; cout原创 2017-11-18 17:27:42 · 820 阅读 · 0 评论 -
多机调度问题 贪心策略
const int maxn=100;const int inf=0x3f3f3f3f;int a[maxn],n,m;struct node{ int data; bool operator<(const node &a)const { return data>a.data; }};priority_queueque;int main原创 2017-10-21 16:20:04 · 1358 阅读 · 0 评论 -
最短路(Dijkstra)Kuangbin大神的模板
const int INF=0x3f3f3f3f;const int MAXN=1000010;struct qnode{ int v; int c; qnode(int _v=0,int _c=0):v(_v),c(_c){} bool operator <(const qnode &r)const { return c>r.c;原创 2017-10-21 16:18:58 · 1031 阅读 · 0 评论 -
20世纪十大算法 The Best of the 20th Century: Editors Name Top 10 Algorithms
from SIAM News, Volume 33, Number 4The Best of the 20th Century: Editors Name Top 10 AlgorithmsBy Barry A. CipraAlgos is the Greek word for pain.Algor is Latin, to be cold. Neither is转载 2017-10-21 16:16:36 · 1324 阅读 · 0 评论 -
导弹拦截(动态规划)
int a[205],d[205];int main(){ int n,ans; while(cin>>n) { memset(d,0,sizeof(d)); for(int i=1;i>a[i]; d[1]=1; for(int i=2;i<=n;i++) { an原创 2017-10-21 16:15:23 · 702 阅读 · 0 评论 -
矩阵连乘(动态规划)
int n;int ans[100][100],a[100],s[100][100];void dfs(int l,int r);int main(){ while(cin>>n) { memset(ans,0,sizeof(ans)); for(int i=0;i>a[i]; for(int i=1;i<n;i++)原创 2017-10-21 16:14:20 · 566 阅读 · 0 评论 -
循环赛日程表(分治)
//循环赛日程表//思路:分治策略。使用递归函数分割,直到剩下两个人。//姓名:刘哲;学号:2015214189#include //头文件void table(int n);//函数声明void print(int n);//输出函数const int maxn=1e4;//假设最大人数int s[maxn][maxn];//表int n;int main(){ wh原创 2017-10-21 16:11:43 · 684 阅读 · 0 评论