当前位置: 首页 > news >正文

小红书2023/08/06Java后端笔试 AK

T1(模拟、哈希表)

#include <bits/stdc++.h>using namespace std;typedef long long LL;
typedef pair<string, int> PSI;const int N = 1e5 + 10;void solve() {string line, t;getline(cin, line);line += ' ';vector<PSI> ans;unordered_map<string, int> cnt;for(int i = 0; i < line.size(); i ++) {if(line[i] == ' ') cnt[t] ++ , t = "";else t += line[i];}for(auto kv : cnt) {if(kv.second >= 3) ans.push_back(make_pair(kv.first, kv.second));}sort(ans.begin(), ans.end(), [](PSI& a, PSI& b) {if(a.second != b.second) return a.second > b.second;return a.first < b.first;});for(auto ss : ans) cout << ss.first << endl;}int main() {cin.tie(0); cout.tie(0);std::ios::sync_with_stdio(false);int T = 1;
//	cin >> T;while(T --) {solve();}return 0;
}

T2(01背包)

#include <bits/stdc++.h>using namespace std;typedef long long LL;const int N = 55, M = 510;int n, t_limit, h_limit;
int t[N], h[N], a[N];
LL f[N][M][M];void solve() {cin >> n;cin >> t_limit >> h_limit;for(int i = 1; i <= n; i ++) cin >> t[i] >> h[i] >> a[i];for(int j = t[1]; j < M; j ++) {for(int k = h[1]; k < M; k ++) {f[1][j][k] = a[1];}}for(int i = 2; i <= n; i ++) {for(int j = 1; j <= t_limit; j ++) {for(int k = 1; k <= h_limit; k ++) {f[i][j][k] = max(f[i][j][k], f[i - 1][j][k]);if(j - t[i] < 0 || k - h[i] < 0) continue;f[i][j][k] = max(f[i][j][k], f[i - 1][j - t[i]][k - h[i]] + 0ll + a[i]);}}}LL ans = 0;for(int j = 1; j < M; j ++)for(int k = 1; k < M; k ++)ans = max(ans, f[n][j][k]);cout << ans << endl;
}int main() {cin.tie(0); cout.tie(0);std::ios::sync_with_stdio(false);int T = 1;
//	cin >> T;while(T --) {solve();}return 0;
}

T3(树形DP)

#include <bits/stdc++.h>using namespace std;typedef long long LL;const int N = 1e5 + 10, M = N * 2;int n, v[N];
int h[N], e[M], ne[M], idx;int cnt;
int primes[M];
bool st[M];int f[N][2];void add(int a, int b) {e[idx] = b, ne[idx] = h[a], h[a] = idx ++ ;
}void get_primes(int n) {st[1] = true;for(int i = 2; i <= n; i ++) {if(!st[i]) primes[cnt ++ ] = i;for(int j = 0; primes[j] <= n / i; j ++) {st[primes[j] * i] = true;if(i % primes[j] == 0) break;}}
}int dp(int u, int ban, int p) {int& cur_level = f[u][ban];if(cur_level != -1) return cur_level;cur_level = 0;int rec = 0, miv = M, node_id = -1;for(int i = h[u]; i != -1; i = ne[i]) {int j = e[i];if(j == p) continue;if(!st[v[u] + v[j]]) {if(ban) {cur_level += max(dp(j, 1, u) + 1, dp(j, 0, u));} else {rec += dp(j, 0, u);if(miv > dp(j, 0, u)) {miv = dp(j, 0, u);node_id = j;}}} else {cur_level += max(dp(j, 1, u), dp(j, 0, u));}}if(node_id != -1) cur_level += (rec - miv) + max(dp(node_id, 0, u), dp(node_id, 1, u) + 1);return cur_level;
}void solve() {cin >> n;for(int i = 1; i <= n; i ++) cin >> v[i];memset(f, -1, sizeof f);memset(h, -1, sizeof h);for(int i = 0; i < n - 1; i ++) {int a, b;cin >> a >> b;add(a, b), add(b, a);}cout << max(dp(1, 0, -1), dp(1, 1, -1)) << endl;
}int main() {cin.tie(0); cout.tie(0);std::ios::sync_with_stdio(false);get_primes(200000);int T = 1;
//	cin >> T;while(T --) {solve();}return 0;
}
http://www.lryc.cn/news/113653.html

相关文章:

  • 3、有序数组的平方
  • 用于自然语言处理 (NLP) 的 MLOps
  • C#抽象静态方法
  • 小研究 - Mysql快速全同步复制技术的设计和应用(一)
  • HTML <samp> 标签
  • C之(8)linux动态库编译框架
  • Zabbix网络拓扑配置
  • 2.4G芯片XL2408开发板,SOP16封装,芯片集成1T 8051内核单片机
  • iPhone苹果手机地震预警功能怎么开启?
  • Storm学习之使用官方Docker镜像快速搭建Storm运行环境
  • 【GTest学习】
  • [JAVAee]网络通信基础
  • 【HDFS】BlockManager#checkRedundancy方法详解
  • c++ 拷贝构造
  • MISRA 2012学习笔记(1)-Directives
  • 升级node版本后vue2的项目node-sass、sass-loader安装报错(14.x升级到16.x)
  • 深入理解CSS选择器:选择正确的方式掌控样式与布局
  • qt设置控件的风格样式
  • 简单易懂的Transformer学习笔记
  • C语言经典小游戏之三子棋(超详解释+源码)
  • 宝塔Linux面板点击SSL闪退打不开?怎么解决?
  • Problem: 6953. 判断是否能拆分数组
  • MobiSys 2023 | 多用户心跳监测的双重成形声学感知
  • Netty:ChannelInitializer添加到ChannelPipeline完成任务以后会自动删除自己
  • 【VUE】项目本地开启https访问模式(vite4)
  • 【状态估计】一维粒子滤波研究(Matlab代码实现)
  • 设计模式-迭代器模式在Java中使用示例
  • Maven入职学习
  • 【多音音频测试信号】具有指定采样率和样本数的多音信号,生成多音信号的相位降低波峰因数研究(Matlab代码实现)
  • LeetCode150道面试经典题-删除有序数组中的重复项(简单)