摘要: View Code 1 /* 2 DP: 3 状态转移方程: 4 DP[i][j]记录的是 前 i 个人完成 j 个 A 工作后 还可以 完成多少 B 5 二分: 6 找到可能花费的最小时间 maxtime,和最大时间 mintime 7 midtime=(maxtime+mintime)>>1; 8 9 midtime 就相当于背包容量10 看是否能装下 11 12 */ 13 #include<iostream>14 #include<cstdio>15 #include<cstring>16 using namespace std;17 1 阅读全文
posted @ 2012-05-11 21:13 知行执行 阅读(237) 评论(0) 推荐(0) 编辑
摘要: View Code 1 /* 2 简单的 BFS 相当于三维迷宫 3 4 */ 5 #include<iostream> 6 #include<cstdio> 7 #include<cstring> 8 #include<queue> 9 using namespace std; 10 11 const int size = 55; 12 13 int map[size][size][size]; 14 struct node 15 { 16 int x,y,z; 17 int step; 18 }sta[size*size*size]; 19 阅读全文
posted @ 2012-05-11 16:38 知行执行 阅读(139) 评论(0) 推荐(0) 编辑
摘要: View Code 1 /* 2 思路: 3 枚举 + 贪心 4 首先枚举只在前 i 个Lake钓鱼(1<=i<=n) 5 因为每段路上只走一次 那么总时间减去 从第一个Lake到第 i 个Lake 6 路上所花的时间 ,剩下的时间就是钓鱼所用的时间(这样就可以这样处理: 7 从一个Lake可以立即到另一个Lake)这就可以利用贪心 每次在 期待鱼最多的 8 Lake中钓鱼了 9 */ 10 #include<iostream>11 #include<cstdio>12 #include<cstring>13 using namespace st 阅读全文
posted @ 2012-05-11 15:43 知行执行 阅读(147) 评论(0) 推荐(0) 编辑
摘要: View Code 1 /* 2 思路: 3 dijkstra变形 4 因为有等级限制 5 我们就假设 第 i 个人参加交易 以他的等级为最大等级 6 把不符合等级要求的人的 flag[i]=true(相当于这个人不参与交易 也即不在这个最短路图中) 7 这就把所有可以参加交易的人留了下来 8 price[i][j]存放的是 在有物品 i 的 情况下 的到物品 j 的优惠价格(相当于边的权值) 9 10 在应用 dijkstra时有点变形11 此时没有明确的起点 d[i] 的初值就是 直接买 这个物品的价格 12 */13 #include<iostream>14 #include 阅读全文
posted @ 2012-05-11 10:22 知行执行 阅读(248) 评论(0) 推荐(0) 编辑