首页 > 代码库 > 京东4.7实习笔试题
京东4.7实习笔试题
官方题解:http://discuss.acmcoder.com/topic/58e78ec01a2f85620527f2d0
1. 站队,小偷和警察,刚开始想找每个小偷最近的警察,但是发现,如果找最近的警察,但是他的能力可能是小的,不满足要求,那就需要其他办法。然后从警察的角度看,他能抓住的小偷,由于每个警察
最多遍历前后一共19个位置,所以复杂度是19n,线性的,满足要求。
注意边界的检查。
1 #include<bits/stdc++.h> 2 #define pb push_back 3 #define FOR(i, n) for (int i = 0; i < (int)n; ++i) 4 #define dbg(x) cout << #x << " at line " << __LINE__ << " is: " << x << endl 5 typedef long long ll; 6 using namespace std; 7 typedef pair<int, int> pii; 8 const int maxn = 1e5 + 10; 9 bool a[maxn];10 void solve() {11 int n;12 string s;13 cin >> n >> s;14 int id = -1;15 n = s.size();16 for (int i = 0; i < n; i++) {17 if(isdigit(s[i])) {18 int v = s[i] - ‘0‘;19 for (int j = max(0, i - v); j < min(n, i + v + 1); j++)20 if(s[j] == ‘X‘) a[j] = 1;21 }22 }23 int res = 0;24 for (int i = 0; i < n; i++) res += a[i];25 cout << res << endl;26 }27 int main() {28 //freopen("test.in", "r", stdin);29 //freopen("test.out", "w", stdout);30 //ios::sync_with_stdio(0);31 //cin.tie(0); cout.tie(0);32 solve();33 return 0;34 }
2. 分队。
上来一定先要读懂题意,看例子是怎么解的。这是最关键的地方。题目要求仅是相邻的不同,然后和为n。
不难想到k1k1k1的情况,然后我就这样做了,只过了30%,然后考虑哪里错了,我写出k1k1k1k1k1,发现变成(k + 1), k, (k + 1), k, (k + 1), 可以省出很多1,然后就考虑这种方式,这种情况下,是比较好计算的,然后就过了。
1 #include<bits/stdc++.h> 2 #define pb push_back 3 typedef long long ll; 4 using namespace std; 5 typedef pair<int, int> pii; 6 const int maxn = 1e3 + 10; 7 8 void solve() { 9 ll x, y;10 while(cin >> x)11 {cin >> y;12 if(y == 1) {13 ll res = x / 3;14 ll d = x % 3;15 res *= 2;16 if(d > 0) {17 res++;18 }19 cout << res << endl;20 continue;21 }22 ll res = x / (y * 2 + 1);23 res *= 2;24 ll d = x % (y * 2 + 1);25 if(d >= y) res++;26 cout << res << endl;27 }28 }29 30 int main() {31 freopen("test.in", "r", stdin);32 //freopen("test.out", "w", stdout);33 ios::sync_with_stdio(0);34 cin.tie(0); cout.tie(0);35 solve();36 return 0;37 }
其他的题目没有看,有时间看一下。
感觉基础还不是很熟练,一些套路掌握的不是很好。
想想真是可怕,以前做的都是错的,怪不得挂了。
京东4.7实习笔试题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。