【饿了么笔试题汇总】[全网首发]2024-04-12-饿了么春招笔试题-三语言题解(CPP/Python/Java)

🍭 大家好这里是KK爱Coding ,一枚热爱算法的程序员

✨ 本系列打算持续跟新饿了么近期的春秋招笔试题汇总~

💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导

👏 感谢大家的订阅➕ 和 喜欢💗

📧 KK这边最近正在收集近一年互联网各厂的笔试题汇总,如果有需要的小伙伴可以关注后私信一下 KK领取,会在飞书进行同步的跟新。

文章目录

    • ❤️ 01.K小姐的生日派对
      • 问题描述
      • 输入格式
      • 输出格式
      • 样例输入
      • 样例输出
      • 数据范围
      • 题解
      • 参考代码
    • 🧡02.K小姐的珠宝盒
      • 问题描述
      • 输入格式
      • 输出格式
      • 样例输入
      • 样例输出
      • 数据范围
      • 题解
      • 参考代码
    • 🤍 03.K小姐的旅行计划
      • 问题描述
      • 输入格式
      • 输出格式
      • 样例输入
      • 样例输出
      • 数据范围
      • 题解
      • 参考代码
    • 写在最后
    • 📧 KK这边最近正在收集近一年互联网各厂的笔试题汇总,如果有需要的小伙伴可以关注后私信一下 KK领取,会在飞书进行同步的跟新。

❤️ 01.K小姐的生日派对

问题描述

K小姐要举办一个生日派对,她邀请了 n n n 个好朋友。每个朋友都准备了一份礼物,其中第 i i i 个朋友的礼物价值为 a i a_i ai

K小姐想知道,这些礼物中一共有多少种不同价值的礼物。但是她不希望统计那些太便宜的礼物,所以她不会统计价值为 1 1 1 的礼物。

输入格式

第一行包含一个正整数 n n n,表示朋友的人数。

第二行包含 n n n 个正整数 a 1 , a 2 , ⋯ , a n a_1, a_2, \cdots, a_n a1,a2,,an,表示每个朋友礼物的价值。

输出格式

输出一个整数,表示有多少种不同价值的礼物(不包括价值为 1 1 1 的礼物)。

样例输入

3
20 2 4

样例输出

3

数据范围

  • 1 ≤ n ≤ 2 × 1 0 5 1 \leq n \leq 2 \times 10^5 1n2×105
  • 1 ≤ a i ≤ 2 × 1 0 5 1 \leq a_i \leq 2 \times 10^5 1ai2×105

题解

这道题的关键是要统计出有多少种不同的礼物价值,但不包括价值为 1 1 1 的礼物。我们可以用一个集合(set)来存储所有出现过的礼物价值,这样可以自动去重。

具体步骤如下:

  1. 读入朋友人数 n n n 和所有礼物价值 a i a_i ai
  2. 将所有礼物价值存入一个集合中,这样可以自动去重。
  3. 如果集合中有价值为 1 1 1 的礼物,就将其删除。
  4. 输出集合的大小,即为不同价值礼物的数量。

时间复杂度 O ( n ) O(n) O(n),空间复杂度 O ( n ) O(n) O(n)

参考代码

  • Python
import sys
input = lambda: sys.stdin.readline().strip()n = int(input())
gifts = set(map(int, input().split()))
if 1 in gifts:gifts.remove(1)
print(len(gifts))
  • Java
import java.io.*;
import java.util.*;public class Main {public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));int n = Integer.parseInt(br.readLine());String[] arr = br.readLine().split(" ");Set<Integer> gifts = new HashSet<>();for (String s : arr) {gifts.add(Integer.parseInt(s));}gifts.remove(1);System.out.println(gifts.size());}
}
  • Cpp
#include <iostream>
#include <set>using namespace std;int main() {int n;cin >> n;set<int> gifts;for (int i = 0; i < n; i++) {int x;cin >> x;gifts.insert(x);}gifts.erase(1);cout << gifts.size() << endl;return 0;
}

🧡02.K小姐的珠宝盒

问题描述

K小姐有一个由 n n n 颗宝石组成的珠宝盒。每颗宝石都有一个能量值 a i a_i ai

现在她想对珠宝盒进行 Q Q Q 次查询。每次查询时,她会选择一个区间 [ l , r ] [l, r] [l,r],然后给出一个能量阈值 k k k。她想知道在区间 [ l , r ] [l, r] [l,r] 中,是否存在一个位置 i i i,使得将区间 [ l , i ] [l, i] [l,i] 中所有宝石的能量值进行按位或运算的结果等于 k k k。如果存在这样的位置 i i i,她希望知道最小的 i i i 是多少;如果不存在,则输出 − 1 -1 1

输入格式

第一行包含两个正整数 n n n Q Q Q,分别表示宝石的数量和查询的次数。

第二行包含 n n n 个正整数 a 1 , a 2 , ⋯ , a n a_1, a_2, \cdots, a_n a1,a2,,an,表示每颗宝石的能量值。

接下来 Q Q Q 行,每行包含三个正整数 l , r , k l, r, k l,r,k,表示一次查询。

输出格式

对于每次查询,输出一行一个整数,表示答案。如果不存在满足条件的位置 i i i,则输出 − 1 -1 1

样例输入

5 5
3 2 3 3 6
1 2 3
1 5 7
1 4 7
2 2 2
2 3 7

样例输出

1
5
-1
2
-1

数据范围

  • 1 ≤ n , Q ≤ 1 0 6 1 \leq n, Q \leq 10^6 1n,Q106
  • 1 ≤ l ≤ r ≤ n 1 \leq l \leq r \leq n 1lrn
  • 0 ≤ a i , k < 2 30 0 \leq a_i, k < 2^{30} 0ai,k<230

题解

本题可以使用前缀或和二分查找来解决。

首先预处理出一个二维数组 c n t cnt cnt,其中 c n t [ i ] [ j ] cnt[i][j] cnt[i][j] 表示在前 i i i 个数中,第 j j j 位二进制表示中 1 1 1 的个数。可以通过以下方式计算:

c n t [ i ] [ j ] = { c n t [ i − 1 ] [ j ] + 1 a [ i ] 的第  j 位为  1 c n t [ i − 1 ] [ j ] otherwise cnt[i][j] = \begin{cases} cnt[i-1][j] + 1 & a[i] \text{ 的第 } j \text{ 位为 } 1 \\ cnt[i-1][j] & \text{otherwise} \end{cases} cnt[i][j]={cnt[i1][j]+1cnt[i1][j]a[i] 的第 j 位为 1otherwise

然后对于每次查询 [ l , r , k ] [l, r, k] [l,r,k],我们可以通过 c n t cnt cnt 数组快速求出区间 [ l , r ] [l, r] [l,r] 中每一位二进制表示中 1 1 1 的个数。具体地,第 j j j 位二进制表示中 1 1 1 的个数为 c n t [ r ] [ j ] − c n t [ l − 1 ] [ j ] cnt[r][j] - cnt[l-1][j] cnt[r][j]cnt[l1][j]

接下来,我们在区间 [ l , r ] [l, r] [l,r] 上进行二分查找,每次取中点 m i d mid mid:

  • 如果区间 [ l , m i d ] [l, mid] [l,mid] 中每一位二进制表示中 1 1 1 的个数都大于等于 k k k 在对应位置上的二进制表示中 1 1 1 的个数,说明 m i d mid mid 有可能是答案,我们继续在左半区间 [ l , m i d ] [l, mid] [l,mid] 上二分查找;
  • 否则,说明 m i d mid mid 不可能是答案,我们在右半区间 [ m i d + 1 , r ] [mid+1, r] [mid+1,r] 上继续二分查找。

最后,我们检查二分查找的结果 i i i 是否满足条件,如果满足则输出 i i i,否则输出 − 1 -1 1

时间复杂度 O ( ( n + Q ) log ⁡ n ) O((n+Q) \log n) O((n+Q)logn),空间复杂度 O ( n ) O(n) O(n)

参考代码

  • Python
import sys
input = lambda: sys.stdin.readline().strip()def main():n, q = map(int, input().split())gems = list(map(int, input().split()))cnt = [[0] * 32 for _ in range(n + 1)]for i, val in enumerate(gems):for j in range(32):if val >> j & 1:cnt[i + 1][j] = cnt[i][j] + 1else:cnt[i + 1][j] = cnt[i][j]def check(left, right, k):bits = [0] * 32for j in range(32):bits[j] = cnt[right][j] - cnt[left - 1][j]for j in range(32):if k >> j & 1:if bits[j] == 0:return Falsereturn Truefor _ in range(q):l, r, k = map(int, input().split())left, right = l, rwhile left < right:mid = (left + right) >> 1if check(l, mid, k):right = midelse:left = mid + 1if check(l, left, k):print(left)else:print(-1)if __name__ == "__main__":main()
  • Java
import java.io.*;
import java.util.*;public class Main {static int[][] cnt;public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String[] input = br.readLine().split(" ");int n = Integer.parseInt(input[0]);int q = Integer.parseInt(input[1]);int[] gems = new int[n];input = br.readLine().split(" ");for (int i = 0; i < n; i++) {gems[i] = Integer.parseInt(input[i]);}cnt = new int[n + 1][32];for (int i = 0; i < n; i++) {for (int j = 0; j < 32; j++) {if ((gems[i] >> j & 1) == 1) {cnt[i + 1][j] = cnt[i][j] + 1;} else {cnt[i + 1][j] = cnt[i][j];}}}while (q-- > 0) {input = br.readLine().split(" ");int l = Integer.parseInt(input[0]);int r = Integer.parseInt(input[1]);int k = Integer.parseInt(input[2]);int left = l, right = r;while (left < right) {int mid = (left + right) >> 1;if (check(l, mid, k)) {right = mid;} else {left = mid + 1;}}if (check(l, left, k)) {System.out.println(left);} else {System.out.println(-1);}}}static boolean check(int left, int right, int k) {int[] bits = new int[32];for (int j = 0; j < 32; j++) {bits[j] = cnt[right][j] - cnt[left - 1][j];}for (int j = 0; j < 32; j++) {if ((k >> j & 1) == 1) {if (bits[j] == 0) {return false;}}}return true;}
}
  • Cpp
#include <iostream>
#include <vector>using namespace std;vector<vector<int>> cnt;bool check(int left, int right, int k) {vector<int> bits(32);for (int j = 0; j < 32; j++) {bits[j] = cnt[right][j] - cnt[left - 1][j];}for (int j = 0; j < 32; j++) {if (k >> j & 1) {if (bits[j] == 0) {return false;}}}return true;
}int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int n, q;cin >> n >> q;vector<int> gems(n);for (int i = 0; i < n; i++) {cin >> gems[i];}cnt.assign(n + 1, vector<int>(32));for (int i = 0; i < n; i++) {for (int j = 0; j < 32; j++) {if (gems[i] >> j & 1) {cnt[i + 1][j] = cnt[i][j] + 1;} else {cnt[i + 1][j] = cnt[i][j];}}}while (q--) {int l, r, k;cin >> l >> r >> k;int left = l, right = r;while (left < right) {int mid = (left + right) >> 1;if (check(l, mid, k)) {right = mid;} else {left = mid + 1;}}if (check(l, left, k)) {cout << left << '\n';} else {cout << -1 << '\n';}}return 0;
}

本题的关键是利用前缀和快速求出任意区间内每一位二进制表示中 1 1 1 的个数,然后再结合二分查找找到满足条件的最小位置 i i i。预处理前缀和数组的时间复杂度为 O ( n log ⁡ C ) O(n \log C) O(nlogC),其中 C C C 为数据范围,本题中 C = 2 30 C = 2^{30} C=230。每次二分查找的时间复杂度为 O ( log ⁡ n ) O(\log n) O(logn),共进行 Q Q Q 次查询,因此总时间复杂度为 O ( ( n + Q ) log ⁡ n ) O((n+Q) \log n) O((n+Q)logn)

🤍 03.K小姐的旅行计划

问题描述

K小姐计划去 n n n 个城市旅行。这些城市之间有 m m m 条双向道路相连,每条道路都有一个美景值 w w w

K小姐希望选择一些道路,使得最终所有城市恰好被分成两个连通块。她可以获得所有被选择的道路的美景值之和。

现在K小姐想知道,她能获得的最大的美景值是多少?如果初始时这些城市已经形成了两个或更多的连通块,则输出 − 1 -1 1

输入格式

第一行包含两个正整数 n n n m m m,分别表示城市的数量和道路的数量。

接下来 m m m 行,每行包含三个正整数 u , v , w u, v, w u,v,w,表示城市 u u u 和城市 v v v 之间有一条美景值为 w w w 的道路。

输出格式

输出一个整数,表示K小姐能获得的最大美景值。如果初始时这些城市已经形成了两个或更多的连通块,则输出 − 1 -1 1

样例输入

3 3
1 2 4
2 3 3
1 3 2

样例输出

7

数据范围

  • 2 ≤ n ≤ 1 0 5 2 \leq n \leq 10^5 2n105
  • 0 ≤ m ≤ 1 0 5 0 \leq m \leq 10^5 0m105
  • 1 ≤ u , v ≤ n 1 \leq u, v \leq n 1u,vn
  • 1 ≤ w ≤ 1 0 9 1 \leq w \leq 10^9 1w109

题解

本题可以使用 Kruskal 算法求解最小生成树。我们可以先将所有道路按照美景值从小到大排序,然后依次考虑每条道路:

  • 如果当前道路连接的两个城市已经在同一个连通块中,那么选择这条道路会形成环,因此不能选择。
  • 否则,选择这条道路,将两个城市所在的连通块合并。

在选择道路的过程中,我们需要记录最后一条被选择的道路的美景值 m a x v maxv maxv。当算法结束时:

  • 如果所有城市最终形成了一个连通块,那么我们需要删除最后一条被选择的道路,答案为 t o t a l − m a x v total - maxv totalmaxv,其中 s u su su 为所有道路的美景值之和。
  • 如果所有城市最终形成了两个连通块,那么答案为 s u su su
  • 如果所有城市最终形成了三个或更多的连通块,那么答案为 − 1 -1 1

时间复杂度 O ( m log ⁡ m ) O(m \log m) O(mlogm),空间复杂度 O ( n ) O(n) O(n)

参考代码

  • Python
import sys
input = lambda: sys.stdin.readline().strip()
sys.setrecursionlimit(10**6)def find(p, x):if p[x] != x:p[x] = find(p, p[x])return p[x]def main():n, m = map(int, input().split())roads = []total = 0for _ in range(m):u, v, w = map(int, input().split())roads.append((u, v, w))total += wroads.sort(key=lambda x: x[2])p = list(range(n + 1))cnt = nmaxv = 0for u, v, w in roads:u = find(p, u)v = find(p, v)if u != v:p[u] = vtotal -= wcnt -= 1maxv = max(maxv, w)if cnt == 1:print(total + maxv)elif cnt == 2:print(total)else:print(-1)if __name__ == "__main__":main()
  • Java
import java.io.*;
import java.util.*;public class Main {static int[] p;public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String[] input = br.readLine().split(" ");int n = Integer.parseInt(input[0]);int m = Integer.parseInt(input[1]);int[][] roads = new int[m][3];long total = 0;for (int i = 0; i < m; i++) {input = br.readLine().split(" ");roads[i][0] = Integer.parseInt(input[0]);roads[i][1] = Integer.parseInt(input[1]);roads[i][2] = Integer.parseInt(input[2]);total += roads[i][2];}Arrays.sort(roads, (a, b) -> a[2] - b[2]);p = new int[n + 1];for (int i = 1; i <= n; i++) {p[i] = i;}int cnt = n;int maxv = 0;for (int[] road : roads) {int u = find(road[0]);int v = find(road[1]);if (u != v) {p[u] = v;total -= road[2];cnt--;maxv = Math.max(maxv, road[2]);}}if (cnt == 1) {System.out.println(total + maxv);} else if (cnt == 2) {System.out.println(total);} else {System.out.println(-1);}}static int find(int x) {if (p[x] != x) {p[x] = find(p[x]);}return p[x];}
}
  • Cpp
#include <iostream>
#include <vector>
#include <algorithm>using namespace std;vector<int> p;int find(int x) {if (p[x] != x) {p[x] = find(p[x]);}return p[x];
}int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int n, m;cin >> n >> m;vector<vector<int>> roads(m, vector<int>(3));long long total = 0;for (int i = 0; i < m; i++) {cin >> roads[i][0] >> roads[i][1] >> roads[i][2];total += roads[i][2];}sort(roads.begin(), roads.end(), [](const vector<int>& a, const vector<int>& b) {return a[2] < b[2];});p.resize(n + 1);for (int i = 1; i <= n; i++) {p[i] = i;}int cnt = n;int maxv = 0;for (auto& road : roads) {int u = find(road[0]);int v = find(road[1]);if (u != v) {p[u] = v;total -= road[2];cnt--;maxv = max(maxv, road[2]);}}if (cnt == 1) {cout << total + maxv << '\n';} else if (cnt == 2) {cout << total << '\n';} else {cout << -1 << '\n';}return 0;
}

写在最后

📧 KK这边最近正在收集近一年互联网各厂的笔试题汇总,如果有需要的小伙伴可以关注后私信一下 KK领取,会在飞书进行同步的跟新。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/306624.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL视图的语法以及限制

语法 创建&#xff1a;create view view_name as select 语句; mysql能够通过创建视图的方式来创建一个虚拟表&#xff0c;它内容由select 语句决定。 并且创建的视图的变化会影响到主表&#xff0c;主表的变化也会影响视图。 删除: drop view view_name; 其实我们能够发现&am…

2023全国青少年信息素养大赛总决赛C++小学组真题

2023 全国青少年信息素养大赛总决赛C小学组真题 第一题 给定一个五位数x&#xff0c;你需要重复做以下操作: 把数的各个数位进行由大到小排序和由小到大排序&#xff0c;得到的最大值和最小值&#xff0c;进行求差后作为新的x。 可以证明&#xff0c;在经过有限次操作后&…

mybatis05:复杂查询:(多对一,一对多)

mybatis05&#xff1a;复杂查询&#xff1a;&#xff08;多对一&#xff0c;一对多&#xff09; 文章目录 mybatis05&#xff1a;复杂查询&#xff1a;&#xff08;多对一&#xff0c;一对多&#xff09;前言&#xff1a;多对一 &#xff1a; 关联 &#xff1a; 使用associatio…

GPT-5将在6月发布前进行「红队进攻测试」

“GPT-5将在6月发布”的消息刷屏了AI朋友圈。这则消息之所以被无数人相信并转发&#xff0c;是因为已经有不少技术人员在社交平台上晒出了「红队进攻测试」邀请。 基于 GPT系列庞大的用户体量和影响力&#xff0c;OpenAI 将更加重视GPT-5 的安全性&#xff0c;作为GPT-5上市前的…

DVWA靶场的下载与搭建

目录 什么是靶场 DVWA靶场下载 下载地址 安装 什么是靶场 靶场就是人为提供的带有安全漏洞的服务&#xff0c;每一个学习者都可以在本地快速搭建来实操&#xff0c;回溯漏洞的发生原理以及操作方式。DVWA靶场呢就是一个可以通过浏览器访问的拥有可视化页面的web靶场。 DVW…

前端图片详解(最全面、最新)

前言 当我们在做前端性能优化的时候&#xff0c;总是会离不开图片&#xff0c;尤其在首次内容绘制&#xff08;FCP&#xff09;和最大内容绘制 (LCP)中&#xff0c;图片显得格外关键&#xff0c;而我发现关于图片格式的文章&#xff0c;一般不全&#xff0c;或者是偏旧。 所以…

Bitmap OOM

老机器Bitmap预读仍然OOM&#xff0c;无奈增加一段&#xff0c;终于不崩溃了。 if (Build.VERSION.SDK_INT < 21)size 2; 完整代码&#xff1a; Bitmap bitmap; try {//Log.e(Thread.currentThread().getStackTrace()[2] "", surl);URL url new URL(surl);…

数据结构--链式栈

一.链式栈的栈顶在哪里? 二.链栈的结构: typedef struct LSNode{ int data; struct LSNode* next; }LSNode ,*PLStack; //链栈的节点.由于栈顶在第一个数据节点,所以不需要top指针 三.链式栈的实现: //初始化LSNode* p (LSNode*)malloc(sizeof(LSNode));assert(p ! NULL)…

Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066

很奇怪的问题,在使用nifi的时候碰到的,这里是用NIFI,把数据从postgresql中同步到mysql中, 首先postgresql中的源表,中是没有create_time这个字段的,但是同步的过程中报错了. 报错的内容是说,目标表中有个create_time字段,这个字段是必填的,但是传过来的flowfile文件中,的数据没…

Kali中间人攻击

中间人攻击 中间人攻击&#xff08;Man-in-the-Middle Attack&#xff0c;简称MITM&#xff09;是一种网络安全攻击&#xff0c;其中攻击者插入自己&#xff08;作为“中间人”&#xff09;在通信的两个端点之间&#xff0c;以窃取或篡改通过的数据。攻击者可以监视通信&#x…

Composer 安装与使用

文章目录 Composer的主要特点&#xff1a;Composer 的安装Windows 平台Linux 平台Mac OS 系统 Composer 的使用require 命令update 命令remove 命令search 命令show 命令 基本约束精确版本范围通配符波浪号 ~折音号 ^ 版本稳定性 Composer 是PHP编程语言的一个依赖管理工具。它…

【R语言从0到精通】-3-R统计分析(列联表、独立性检验、相关性检验、t检验)

上两次教程集中学习了R语言的基本知识&#xff0c;那么我们很多时候使用R语言是进行统计分析&#xff0c;因此对于生物信息学和统计科学来说&#xff0c;R语言提供了简单优雅的方式进行统计分析。教程参考《Rlearning》 3.1 描述性统计分析 3.1.1 载入数据集及summary函数 我…

广州南沙番禺联想SR530服务器主板传感器故障维修

今日分享一例广州市南沙区联想ThinkSystem SR530服务器sensor sysbrd vol故障问题维修案例&#xff1b; 服务器型号是&#xff1a;Lenovo thinksystem sr530 g6服务器 服务器所在位置&#xff1a;广东省广州市南沙区 服务器故障问题&#xff1a;机房异常停电&#xff0c;来电后…

HarmonyOS开发学习:【DevEco Device Tool 安装配置(问题全解)】

本文介绍如何在Windows主机上安装DevEco Device Tool工具。 坑点总结&#xff1a; 国内部分网络环境下&#xff0c;安装npm包可能会很慢或者超时&#xff0c;推荐使用国内npm源&#xff08;如淘宝源、华为源等&#xff09;&#xff1b;serialport这个npm包安装的过程中需要编…

透视晶圆制造黑匣子:RFID赋能智能生产,构建晶圆盒全程精准追溯体系

透视晶圆制造黑匣子&#xff1a;RFID赋能智能生产&#xff0c;构建晶圆盒全程精准追溯体系 应用背景 在全球半导体产业链中&#xff0c;晶圆盒作为承载硅片的重要载体&#xff0c;其生产过程的精细化管理和追溯显得至关重要。近年来&#xff0c;一种名为RFID&#xff08;Radi…

Fast-lio2运行时如何显示轨迹线

修改对应设备的.yaml文件&#xff0c;以velodyne为例&#xff1a; 将 path_en参数改为true即可&#xff0c;运行其他设备&#xff0c;修改对应的参数

mysql面试题 1

为什么要使用数据库 数据保存在内存 优点&#xff1a; 存取速度快缺点&#xff1a; 数据不能永久保存 数据保存在文件 优点&#xff1a; 数据永久保存缺点&#xff1a;1、速度比内存操作慢&#xff0c;频繁的IO操作。2、查询数据不方便 数据保存在数据库 数据永久保存使用SQL语…

跟TED演讲学英文:The inside story of ChatGPT‘s astonishing potential by Greg Brockman

The inside story of ChatGPT’s astonishing potential Link: https://www.ted.com/talks/greg_brockman_the_inside_story_of_chatgpt_s_astonishing_potential Speaker: Greg Brockman Date:April 2023 文章目录 The inside story of ChatGPTs astonishing potentialIntro…

path环境变量的作用

当我把一个运行文件的路径加入到了path环境变量&#xff0c;就可以在cmd命令行随时使用运行。 在path中有两个path上面的是用户的path&#xff0c;下面的是计算机的path

77、WAF攻防——权限控制代码免杀异或运算变量覆盖混淆加密传参

文章目录 WAF规则webshell免杀变异 WAF规则 函数匹配 工具指纹 webshell免杀变异 php 传参带入 eval可以用assert来替换,assert也可以将字符串当作php代码执行漏洞 php 变量覆盖 php 加密 使用加密算法对php后门进行加密 php 异或运算 简化:无字符webshellP 无数字字母rc…