- 博客(17)
- 收藏
- 关注
转载 Protecting the Flowers(3262)
题解:考虑当前选哪个放在开头。设放在开头的为(d1,t1) 放在第二个的为(d2,t2)。那么放在开头的牛满足:无论第二个是什么,交换第一和第二总是不会变优。设当前剩余牛的d值和为ds。那么有:(ds-d1)*t1+(ds-d1-d2)*t2化简得: t2/d2>t1/d1。也就是说,当t[i]/d[i]>t[j]/t[j]时,j放在i前面更优。若开头的是t
2014-10-21 14:46:31 341
原创 Stall Reservations(3190)
大致题意:有一些奶牛只能在指定的时间内挤牛奶,而一个机器只能同时对一个奶牛工作。给你每头奶牛的指定时间的区间,问你最小需要多少机器
2014-10-20 15:45:00 344
原创 二分查找
#include #include #include #include using namespace std;int a[100];//在数组里找到第一个大于pp的数int search(int l, int r, int pp){ int res = -1; while(l <= r){ int mid = (l+r) / 2; i
2014-10-17 11:54:30 311
原创 用dfs的方法判断图中有没有负环
//原理:用一个点去更新和他相连的一条边,然后在用相连的点去更新和当前的点相连的边,一次下去, 当连到之前更新过的点的时候, 就说明有负环。dfs的深度是不会超过//当前这棵生成树的点数+2.
2014-10-17 10:59:25 1133
原创 最小生成树kruskal算法
#include #include #include #include using namespace std;int par[100], n, m;struct edge{ int x, y; int val;}pp[10000];bool cmp(edge a, edge b){ return a.val < b.val;}int find(int
2014-10-14 10:42:05 277
原创 最小生成树的prim算法
#include #include #include #include #define inf 999999using namespace std;int d[100], n, dis[100][100];bool deleted[100], vis[100];int main(){ int i, j; while(scanf("%d", &n)!=EOF){
2014-10-14 09:52:41 288
原创 最短路路径还原
#include #include #include #include #define inf 100000using namespace std;int n, m, d[100], pre[100], dis[100][100];bool vis[100];int main(){ int i, j; while(scanf("%d%d", &n, &m) == 2
2014-10-13 23:42:05 359
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人