本人小渣,跪求昨晚美图笔试c++岗的两道编程题,思路!!

昨天参加了美图的笔试,后面两道题看起来有思路,写完之后又不知道错哪,跪求大佬指点一二,不胜感激!!!
全部评论
就是说蚂蚁没有掉头,,,只是插肩而过 反正他们的速度都是一样的 所以最后全部的蚂蚁出杆的时间是一样的 所以遍历一遍 分别求出每只蚂蚁向左走向右走的值 max 最大 和min最小值就是最后的结果
点赞 回复 分享
发布于 2017-09-05 09:40
第二题蚂蚁的速度都是一样的,最快的是都朝着较近的一段走,最慢的都朝着最远的一端走,不需要考虑碰撞问题啊
点赞 回复 分享
发布于 2017-09-05 09:32
第一题:01背包 #include <bits/stdc++.h> using namespace std; const int maxn = 1e4; int t[maxn], p[maxn]; int dp[maxn * 100]; int main() { int n, w; scanf("%d%d", &n, &w); for (int i = 0; i < n; ++i) scanf("%d%d", &t[i], &p[i]); for (int i = 0; i < n; ++i) { for (int j = w; j >= p[i]; --j) dp[j] = max(dp[j], dp[j - p[i]] + t[i]); } printf("%d\n", dp[w]); return 0; } 第二题,蚂蚁每次碰撞转向看成交换。 #include <bits/stdc++.h> using namespace std; const int maxn = 1e4 + 5; double pos[maxn]; int main() { ios::sync_with_stdio(false); cin.tie(0); int n;double k; double speed, mi, mx; cin >> n >> speed >> k; for (int i = 0; i < n; ++i) { cin >> pos[i]; double _mi = min(1.0 * pos[i] / speed, 1.0 * (k - pos[i]) / speed); double _mx = max(1.0 * pos[i] / speed, 1.0 * (k - pos[i]) / speed); if (i == 0) { mi = _mi; mx = _mx; } else { mi = min(mi, _mi); mx = max(mx, _mx); } } cout << mi << " " << mx << endl; return 0; } 都是ac的代码....应该是一样的题吧....
点赞 回复 分享
发布于 2017-09-05 09:11
点赞 回复 分享
发布于 2017-09-05 09:09
第一道题  砍树
点赞 回复 分享
发布于 2017-09-05 09:07
第一道01背包好像,我AC 50%。第二道编程之美原题,提示:理解成两个蚂蚁相撞以后不掉头,而是交换身份。
点赞 回复 分享
发布于 2017-09-05 09:01
题目在哪
点赞 回复 分享
发布于 2017-09-05 08:48
有题目吗
点赞 回复 分享
发布于 2017-09-05 08:42

相关推荐

今天要投简历吗?&nbsp;国庆期间真的不投比较好吗?&nbsp;emmmmmm
想要offer的每一...:可以去投,谁回你,你就拉黑他,国庆还上班,贼黑心
我的秋招日记
点赞 评论 收藏
分享
牛客83265014...:完了,连现在都没开始面,13号投的是不是晚了
秋招的第一个offer,...
点赞 评论 收藏
分享
头像 会员标识
08-20 18:46
门头沟学院 C++
投递华为技术有限公司等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
7
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务