SRM 578 Div II Level Three: WolfInZooDivTwo,Dynamic Programming,求教!
2013-07-30 10:28
459 查看
题目来源:http://community.topcoder.com/stat?c=problem_statement&pm=12533
这道题目没做出来,知道用动态规划,不过不知道怎么搞,参看这里的解答懂了,不过看别人的代码的时候发
现有个更简洁的解法,看了半天没有看懂,主要就是dp那一步不知道是怎么来的,贴出来求教一下,哪位大神看
懂了话望指点一下,代码如下:
这道题目没做出来,知道用动态规划,不过不知道怎么搞,参看这里的解答懂了,不过看别人的代码的时候发
现有个更简洁的解法,看了半天没有看懂,主要就是dp那一步不知道是怎么来的,贴出来求教一下,哪位大神看
懂了话望指点一下,代码如下:
#include <algorithm> #include <iostream> #include <sstream> #include <string> #include <vector> using namespace std; /************** Program Begin *********************/ typedef long long LL; int mn[350]; int dp[350]; class WolfInZooDivTwo { public: int count(int N, vector <string> L, vector <string> R) { for (int i = 0; i < 350; i++) { mn[i] = N; dp[i] = 0; } string sleft, sright; for (int i = 0; i < L.size(); i++) { sleft += L[i]; } for (int i = 0; i < R.size(); i++) { sright += R[i]; } int a, b; istringstream lss(sleft), rss(sright); while (lss >> a && rss >> b) { mn[a] = min(mn[a], b); } for (int i = N - 2; i >= 0; i--) { mn[i] = min(mn[i], mn[i+1]); } dp[0] = 1; for (int i = 0; i <= N; i++) { for (int j = i + 1; j <= mn[i] + 1; j++) { dp[j] = (dp[j] + dp[i]) % 1000000007; } } return dp[N+1]; } }; /************** Program End ************************/
相关文章推荐
- SRM 578 Div II Level Two: GooseInZooDivTwo, DFS
- SRM DIV2 578 GooseInZooDivTwo
- SRM 222 Div II Level Two: GroceryBagger,STL map 用法
- SRM 219 Div II Level Two: HealthFood
- SRM 233 Div II Level Two: PipeCuts
- SRM 514 MagicalGirlLevelThreeDivTwo
- SRM 212 Div II Level Two: WinningRecord,Brute Force
- SRM 299 Div II Level Two: Projections
- SRM 586 Div II Level Three: StringWeightDiv2,Dynamic Programming or Math
- SRM 212 Div II Level Three: LargestCircle,Brute Force
- [TopCoder] SRM 578 DIV 2, Wolf In Zoo, Solution
- SRM 223 Div II Level Two: BlackAndRed,O(N)复杂度
- SRM 483 Div II Level Two: MovieSeating, TopCoder上正确率不到%10的题
- SRM 577 Div II Level Two: EllysRoomAssignmentsDiv2
- SRM 579 Div II Level Two: UndoHistory
- SRM 207 Div II Level Two: RegularSeason,字符串操作(sstream),多关键字排序( 比较函数 )
- SRM 584 Div II Level Two: Egalitarianism,DFS,BFS算法
- SRM 584 Div Ii Level Three: Excavations2, Dynamic Programming
- SRM 582 Div II Level Three: ColorTheCells, Brute Force 算法
- SRM 583 Div II Level Three:GameOnABoard,Dijkstra最短路径算法