字节跳动 秋招第一批
第一题 AC 80
#include<bits/stdc++.h> using namespace std; int main() { int N,hi,mi,x,goclass; int res = 0; cin >> N; int getup[N]; for(int i = 0; i < N; ++i) { cin >> hi >> mi; getup[i] = hi*60 + mi; } cin >> x >> hi >> mi; goclass = hi * 60 + mi; for(int i = 0; i < N; ++i) { if(getup[i] + x <= goclass && getup[i] > res) res = getup[i]; } cout << res/60 << " " << res % 60 << endl; return 0; }第二题 AC 84
#include<bits/stdc++.h> using namespace std; int main() { int N,K; cin >> N >> K; vector<int>a; string str; cin >> str; for(int i=0;i<str.size();i++) { a.push_back(str[i]-'0'); } vector<int>res(N,0); res[0] = a[0]; int z; for(int i=1;i<N;i++) { if(i < K){ z = 0; for(int j=0;j<i;j++) { z ^= res[j]; } res[i] = a[i] ^ z; } else { z = 0; for(int j=i-1;j>=i-K+1;j--) { z ^= res[j]; } res[i] = a[i] ^ z; } } for(int i=0;i<N;i++) cout << res[i]; return 0; }第三题 AC 100
#include <iostream> #include <vector> #include <algorithm> #include <set> #include <math.h> #include <string> #include <queue> #include <stdlib.h> #include <stdio.h> using namespace std; int main() { int n; cin >> n; int sum = 0; vector<int>a; vector<int>m; while(n--) { int b; cin >> b; a.push_back(b); } for(int i=0;i<a.size();i++) { if(i == 0) m.push_back(100); else { if(a[i] > a[i-1]) m.push_back(m[i-1] + 100); else m.push_back(100); } } for(int i=a.size()-2;i>=0;i--) { if(a[i] > a[i+1]) m[i] = max(m[i], m[i+1]+100); } for(int i=0;i<m.size();i++) { sum += m[i]; } cout << sum << endl; }第四题 图结构刚写完……还没来及