3.29携程笔试
记录一下,AK了,消消最近的霉运。
码风属于依托答辩,勿吐槽。
T1
// #define STRESS
#include <unordered_map>
#include <algorithm>
#include <iostream>
#include <iterator>
#include <cstring>
#include <sstream>
#include <numeric>
#include <iomanip>
#include <cassert>
#include <bitset>
#include <cstdio>
#include <string>
#include <vector>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
#include <set>
using namespace std;
typedef long long ll;
typedef set<int> si;
typedef vector<int> vi;
typedef unsigned int uint;
typedef map<int, int> mii;
typedef pair<int, int> pii;
typedef unsigned long long ull;
#ifdef STRESS
#include <random>
#include <chrono>
mt19937 rr(chrono::system_clock::now().time_since_epoch().count());
ll r(ll L, ll R) {uniform_int_distribution<ll> dist(L, R); return dist(rr);}
#endif
#ifdef LOCAL
#include "DEBUG.cpp"
#else
#define dbg(...) { }
#endif
#define rep(i, a, n) for(int i = (a); i <= (n); ++i)
#define per(i, a, n) for(int i = (a); i >= (n); --i)
#define IOS ios::sync_with_stdio(0); cin.tie(0);
#define mst(a, b) memset((a), (b), sizeof(a));
#define all(x) (x).begin(),(x).end()
#define tem template<class T> inline
#define sz(v) ((int)(v).size())
#define linf 0x3f3f3f3f3f3f3f3f
#define inf 0x3f3f3f3f
#define space putchar(' ')
#define enter puts("")
#define endl '\n'
#define pb push_back
#define fi first
#define se second
#define mid ((l + r) >> 1)
#define ls u << 1
#define rs u << 1 | 1
#define lson u << 1, l, mid
#define rson u << 1 | 1, mid + 1, r
const pii dir[] = { {1, 0}, { -1, 0}, {0, 1}, {0, -1}};
const double pi = acos(-1.0);
const double eps = 1e-8;
const uint mod = 1e9 + 7;
inline ll qpow(ll a, ll b) {assert(b >= 0); ll r = 1; for(; b; b >>= 1) {if(b & 1) r = r * a % mod; a = a * a % mod;} return r;}
inline ll inv(const ll &x) {return qpow(x, mod - 2);}
tem bool chkmax(T &a, T b) {if(a < b) {a = b; return 1;} return 0;}
tem bool chkmin(T &a, T b) {if(a > b) {a = b; return 1;} return 0;}
tem int sgn(T x) {return x > eps ? 1 : (x < -eps ? -1 : 0);}
inline int msb(const ll &x) {return x ? 63 - __builtin_clzll(x) : -1;}
inline int lsb(const ll &x) {return x ? __builtin_ctzll(x) : 64;}
inline int popcnt(const ll &x) {return __builtin_popcountll(x);}
inline int p2(const ll &x) {return 1ll << x;}
inline int lowbit(const ll &x) {return x & -x;}
inline ll sq(const ll &x) {return x * x;}
const int N = 2e5 + 5;
int a[N];
void solve() {
a[0] = a[6] = a[9] = 1;
a[8] = 2;
int ans =0;
string s; cin >> s;
for(auto c : s) {
ans += a[c - '0'];
}
cout <<ans<<endl;
}
int main() {
#ifdef LOCAL
freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
#endif
IOS; cout << fixed << setprecision(12);
solve();
return 0;
}
T2
// #define STRESS
#include <unordered_map>
#include <algorithm>
#include <iostream>
#include <iterator>
#include <cstring>
#include <sstream>
#include <numeric>
#include <iomanip>
#include <cassert>
#include <bitset>
#include <cstdio>
#include <string>
#include <vector>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
#include <set>
using namespace std;
typedef long long ll;
typedef set<int> si;
typedef vector<int> vi;
typedef unsigned int uint;
typedef map<int, int> mii;
typedef pair<int, int> pii;
typedef unsigned long long ull;
#ifdef STRESS
#include <random>
#include <chrono>
mt19937 rr(chrono::system_clock::now().time_since_epoch().count());
ll r(ll L, ll R) {uniform_int_distribution<ll> dist(L, R); return dist(rr);}
#endif
#ifdef LOCAL
#include "DEBUG.cpp"
#else
#define dbg(...) { }
#endif
#define rep(i, a, n) for(int i = (a); i <= (n); ++i)
#define per(i, a, n) for(int i = (a); i >= (n); --i)
#define IOS ios::sync_with_stdio(0); cin.tie(0);
#define mst(a, b) memset((a), (b), sizeof(a));
#define all(x) (x).begin(),(x).end()
#define tem template<class T> inline
#define sz(v) ((int)(v).size())
#define linf 0x3f3f3f3f3f3f3f3f
#define inf 0x3f3f3f3f
#define space putchar(' ')
#define enter puts("")
#define endl '\n'
#define pb push_back
#define fi first
#define se second
#define mid ((l + r) >> 1)
#define ls u << 1
#define rs u << 1 | 1
#define lson u << 1, l, mid
#define rson u << 1 | 1, mid + 1, r
const pii dir[] = { {1, 0}, { -1, 0}, {0, 1}, {0, -1}};
const double pi = acos(-1.0);
const double eps = 1e-8;
const uint mod = 1e9 + 7;
inline ll qpow(ll a, ll b) {assert(b >= 0); ll r = 1; for(; b; b >>= 1) {if(b & 1) r = r * a % mod; a = a * a % mod;} return r;}
inline ll inv(const ll &x) {return qpow(x, mod - 2);}
tem bool chkmax(T &a, T b) {if(a < b) {a = b; return 1;} return 0;}
tem bool chkmin(T &a, T b) {if(a > b) {a = b; return 1;} return 0;}
tem int sgn(T x) {return x > eps ? 1 : (x < -eps ? -1 : 0);}
inline int msb(const ll &x) {return x ? 63 - __builtin_clzll(x) : -1;}
inline int lsb(const ll &x) {return x ? __builtin_ctzll(x) : 64;}
inline int popcnt(const ll &x) {return __builtin_popcountll(x);}
inline int p2(const ll &x) {return 1ll << x;}
inline int lowbit(const ll &x) {return x & -x;}
inline ll sq(const ll &x) {return x * x;}
const int N = 2e5 + 5;
int n, k, a[N];
void solve() {
cin >> n >> k;
--k;
int i = 1;
for(i = 1; i <= 2 * k; i += 2) {
a[i] = i + 1;
a[i + 1] = i;
}
rep(j, 1, i - 1) cout << a[j] << ' ';
per(j, n, i) cout << j << ' ';
}
int main() {
#ifdef LOCAL
freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
#endif
IOS; cout << fixed << setprecision(12);
solve();
return 0;
}
T3
// #define STRESS
#include <unordered_map>
#include <algorithm>
#include <iostream>
#include <iterator>
#include <cstring>
#include <sstream>
#include <numeric>
#include <iomanip>
#include <cassert>
#include <bitset>
#include <cstdio>
#include <string>
#include <vector>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
#include <set>
using namespace std;
typedef long long ll;
typedef set<int> si;
typedef vector<int> vi;
typedef unsigned int uint;
typedef map<int, int> mii;
typedef pair<int, int> pii;
typedef unsigned long long ull;
#ifdef STRESS
#include <random>
#include <chrono>
mt19937 rr(chrono::system_clock::now().time_since_epoch().count());
ll r(ll L, ll R) {uniform_int_distribution<ll> dist(L, R); return dist(rr);}
#endif
#ifdef LOCAL
#include "DEBUG.cpp"
#else
#define dbg(...) { }
#endif
#define rep(i, a, n) for(int i = (a); i <= (n); ++i)
#define per(i, a, n) for(int i = (a); i >= (n); --i)
#define IOS ios::sync_with_stdio(0); cin.tie(0);
#define mst(a, b) memset((a), (b), sizeof(a));
#define all(x) (x).begin(),(x).end()
#define tem template<class T> inline
#define sz(v) ((int)(v).size())
#define linf 0x3f3f3f3f3f3f3f3f
#define inf 0x3f3f3f3f
#define space putchar(' ')
#define enter puts("")
#define endl '\n'
#define pb push_back
#define fi first
#define se second
#define mid ((l + r) >> 1)
#define ls u << 1
#define rs u << 1 | 1
#define lson u << 1, l, mid
#define rson u << 1 | 1, mid + 1, r
const pii dir[] = { {1, 0}, { -1, 0}, {0, 1}, {0, -1}};
const double pi = acos(-1.0);
const double eps = 1e-8;
const uint mod = 1e9 + 7;
inline ll qpow(ll a, ll b) {assert(b >= 0); ll r = 1; for(; b; b >>= 1) {if(b & 1) r = r * a % mod; a = a * a % mod;} return r;}
inline ll inv(const ll &x) {return qpow(x, mod - 2);}
tem bool chkmax(T &a, T b) {if(a < b) {a = b; return 1;} return 0;}
tem bool chkmin(T &a, T b) {if(a > b) {a = b; return 1;} return 0;}
tem int sgn(T x) {return x > eps ? 1 : (x < -eps ? -1 : 0);}
inline int msb(const ll &x) {return x ? 63 - __builtin_clzll(x) : -1;}
inline int lsb(const ll &x) {return x ? __builtin_ctzll(x) : 64;}
inline int popcnt(const ll &x) {return __builtin_popcountll(x);}
inline int p2(const ll &x) {return 1ll << x;}
inline int lowbit(const ll &x) {return x & -x;}
inline ll sq(const ll &x) {return x * x;}
const int N = 2e5 + 5;
#define int ll
int n, a[N];
map<int, pair<int, int>> m;
int f(int x, int y) {
return a[x] * y - y - n;
}
void solve() {
cin >> n;
m[n] = {1, 1};
a[1] = 1;
rep(i, 2, 12) a[i] = a[i - 1] * i;
rep(x, 3, 12) {
m[abs(f(x, 1))] = {x, 1};
int l = 3, r = 1e9;
while(l <= r) {
m[abs(f(x, mid))] = {x, mid};
m[abs(f(x, mid + 1))] = {x, mid + 1};
if(mid - 1 >= 3) m[abs(f(x, mid - 1))] = {x, mid - 1};
if(f(x, mid) > 0) r = mid - 1;
else l = mid + 1;
}
// cout << "x = " << x << ' ' << l << ' ' << r << endl;
rep(i, max(3ll, l - 5), r + 5) m[abs(f(x, i))] = {x, i};
}
auto [x, y] = m.begin()->second;
cout << x << ' ' << y << endl;
}
signed main() {
#ifdef LOCAL
freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
#endif
IOS; cout << fixed << setprecision(12);
solve();
return 0;
}
T4
// #define STRESS
#include <unordered_map>
#include <algorithm>
#include <iostream>
#include <iterator>
#include <cstring>
#include <sstream>
#include <numeric>
#include <iomanip>
#include <cassert>
#include <bitset>
#include <cstdio>
#include <string>
#include <vector>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
#include <set>
using namespace std;
typedef long long ll;
typedef set<int> si;
typedef vector<int> vi;
typedef unsigned int uint;
typedef map<int, int> mii;
typedef pair<int, int> pii;
typedef unsigned long long ull;
#ifdef STRESS
#include <random>
#include <chrono>
mt19937 rr(chrono::system_clock::now().time_since_epoch().count());
ll r(ll L, ll R) {uniform_int_distribution<ll> dist(L, R); return dist(rr);}
#endif
#ifdef LOCAL
#include "DEBUG.cpp"
#else
#define dbg(...) { }
#endif
#define rep(i, a, n) for(int i = (a); i <= (n); ++i)
#define per(i, a, n) for(int i = (a); i >= (n); --i)
#define IOS ios::sync_with_stdio(0); cin.tie(0);
#define mst(a, b) memset((a), (b), sizeof(a));
#define all(x) (x).begin(),(x).end()
#define tem template<class T> inline
#define sz(v) ((int)(v).size())
#define linf 0x3f3f3f3f3f3f3f3f
#define inf 0x3f3f3f3f
#define space putchar(' ')
#define enter puts("")
#define endl '\n'
#define pb push_back
#define fi first
#define se second
#define mid ((l + r) >> 1)
#define ls u << 1
#define rs u << 1 | 1
#define lson u << 1, l, mid
#define rson u << 1 | 1, mid + 1, r
const pii dir[] = { {1, 0}, { -1, 0}, {0, 1}, {0, -1}};
const double pi = acos(-1.0);
const double eps = 1e-8;
const uint mod = 1e9 + 7;
inline ll qpow(ll a, ll b) {assert(b >= 0); ll r = 1; for(; b; b >>= 1) {if(b & 1) r = r * a % mod; a = a * a % mod;} return r;}
inline ll inv(const ll &x) {return qpow(x, mod - 2);}
tem bool chkmax(T &a, T b) {if(a < b) {a = b; return 1;} return 0;}
tem bool chkmin(T &a, T b) {if(a > b) {a = b; return 1;} return 0;}
tem int sgn(T x) {return x > eps ? 1 : (x < -eps ? -1 : 0);}
inline int msb(const ll &x) {return x ? 63 - __builtin_clzll(x) : -1;}
inline int lsb(const ll &x) {return x ? __builtin_ctzll(x) : 64;}
inline int popcnt(const ll &x) {return __builtin_popcountll(x);}
inline int p2(const ll &x) {return 1ll << x;}
inline int lowbit(const ll &x) {return x & -x;}
inline ll sq(const ll &x) {return x * x;}
const int N = 2e5 + 5;
#define int ll
int n, f[N][2];
vector<pair<int, int>> e[N];
void dfs(int u, int fa) {
for(auto [v, w] : e[u]) {
if(v == fa) continue;
dfs(v, u);
}
for(auto [v, w] : e[u]) {
if(v == fa) continue;
f[u][0] += max(f[v][0], f[v][1]);
}
for(auto [v, w] : e[u]) {
if(v == fa) continue;
chkmax(f[u][1], f[u][0] - max(f[v][0], f[v][1]) + w + f[v][0]);
}
}
void solve() {
cin >> n;
rep(i, 1, n - 1) {
int u, v, w; cin >> u >> v >> w;
e[u].pb({v, w});
e[v].pb({u, w});
}
dfs(1, 0);
cout << max(f[1][0], f[1][1]) << endl;
}
signed main() {
#ifdef LOCAL
freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
#endif
IOS; cout << fixed << setprecision(12);
solve();
return 0;
}
#携程#

查看11道真题和解析
汤臣倍健公司氛围 396人发布