Abandoned201710251949865 level
获赞
15
粉丝
1
关注
0
看过 TA
3
北京航空航天大学
2020
C++
IP属地:山西
暂未填写个人简介
私信
关注
2019-08-31 21:00
已编辑
北京航空航天大学 C++
思路 参考:https://blog.csdn.net/likewind1993/article/details/100176127 这次的两道编程题都比较简单,看到第二题大家用dfs来做的比较多,这里提供一个动态规划的思路。 设置两个长度为n+1的dp1、dp2数组,dp[i]表示某次停下是否能到第i个位置,dp[i] = 0表示不能到达,dp[i] = 1表示能到达,  初始dp1[1...n] = 1,表示可以从任意的位置出发, 对每走Di距离,方向可以向左走或向右走,那么走完Di距离后,可到达的位置用dp2表示,即,转移方程为: if (dp1[j] == 1 && j...
woshi1344:应该是这样的 void get_res(int n, int m, vector<int> & d) {     vector<int> dp1(n + 1, 1);     for (int i = 0; i < m; ++i)     {         vector<int> dp2(n + 1, 0);         for (int j = 1; j <= n; ++j)         {             if (dp1[j] == 1 && j + d[i] <= n)                 dp2[j + d[i]] = 1;             if (dp1[j] == 1 && j - d[i] >= 1)                 dp2[j - d[i]] = 1;         }         dp1 = dp2;     }     int ans = 0;     for (int i = 1; i <= n; ++i)     {         if (dp1[i] == 1)             ++ans;     }     cout << ans << endl; }
投递360集团等公司7个岗位
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务