摘要: 双向广搜。。。呃,双向广搜一般都都用了HASH判重,这样可以更快判断两个方向是否重叠了。这道题用了双向的BFS,有效地减少了状态。但代码太长了,不写,贴一个别人的代码。。 1 #include 2 #include 3 #include 4 #include 5 using namespa... 阅读全文
posted @ 2014-06-22 22:21 chenjunjie1994 阅读(152) 评论(0) 推荐(0) 编辑
摘要: EASY 1 #include 2 #include 3 using namespace std; 4 5 bool prim[45]; 6 int n; 7 bool vis[45]; 8 int ans[25]; 9 10 void dfs(int top){11 if(top>n... 阅读全文
posted @ 2014-06-22 21:55 chenjunjie1994 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 经典DP。设dp[i][j]为前i分钟移动j次所得的最大苹果数,本来打算再设一状态表示当前在哪棵树,但发现移动的次数就能确定了。dp[i][j]=max(dp[i-1][k-1]+catc(k%2,app[i]),dp[i-1][k]+catc(k%2,app[i])); 1 #include ... 阅读全文
posted @ 2014-06-22 11:48 chenjunjie1994 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 选课[问题描述]在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课程之前学习,如高等数学总是在其它课程之前学习。现在有N门功课,每门课有个学分,每门课有一门或没有直接先修课(若课程a是课程b的先修课即只有学完了课程a,才能学习课程b)。一个学生要从... 阅读全文
posted @ 2014-06-22 11:05 chenjunjie1994 阅读(385) 评论(0) 推荐(0) 编辑