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

The 2023 ICPC Asia Regionals Online Contest (1)(A D I J K L)

The 2023 ICPC Asia Regionals Online Contest (1)(A D I J K L)

PTA | 程序设计类实验辅助教学平台

A Qualifiers Ranking Rules(模拟)

考虑先对第一场和第二场分别去重(取最好) , 归并排序后再次去重即可。

#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
#define int long long
const int N = 2e4 + 10;
const int mod = 1e9 + 7;
typedef pair<int,int>PII;string x[N] , y[N] , all[N] , s;
map<string,bool>vis;
int n , m , cnt1 , cnt2 , cnt;
vector<string>ans;signed main(){cin >> n >> m;for(int i = 1 ; i <= n ; i ++) {cin >> s;if(vis[s]) continue;vis[s] = 1;x[++cnt1] = s;}vis.clear();for(int i = 1 ; i <= m ; i ++) {cin >> s;if(vis[s]) continue;vis[s] = 1;y[++cnt2] = s;		}int i = 1 , j = 1 ;while(i <= cnt1 && j <= cnt2) {all[++cnt] = x[i];all[++cnt] = y[j];i += 1;j += 1;}while(i <= cnt1) {all[++cnt] = x[i];i += 1;}while(j <= cnt2) {all[++cnt] = y[j];j += 1;}vis.clear();for(int i = 1 ; i <= cnt1 + cnt2 ; i ++) {if(vis[all[i]]) continue;vis[all[i]] = 1;ans.push_back(all[i]);}for(auto x : ans) {cout << x << "\n";}return 0;
}
//freopen("文件名.in","r",stdin);
//freopen("文件名.out","w",stdout);

D Transitivity(并查集)

考虑对于每一个连通块是否是一个完全图 , 如果都是 , 那么贡献就是合并两个最小的连通块需要加的边数 ,否则贡献是把所有连通块补成完全图所需要的边数。

#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
#define int long long
const int N = 2e6 + 10;
const int mod = 1e9 + 7;
typedef pair<int,int>PII;int fa[N] , siz1[N] , siz2[N];
int n , m;
int find(int x){if(x == fa[x]) return x;else return fa[x] = find(fa[x]);
}signed main(){IOScin >> n >> m;for(int i = 1 ; i <= n ; i ++) {fa[i] = i;siz1[i] = 1;siz2[i] = 0;}for(int i = 1 ; i <= m ; i ++) {int u , v;cin >> u >> v;u = find(u);v = find(v);if(u == v) {siz2[u] += 1;} else {fa[u] = v;siz1[v] += siz1[u];siz2[v] += siz2[u] + 1;}}bool tag = 0;int res = 0;vector<int>ve;for(int i = 1 ; i <= n ; i ++) {int v = find(i);if(v != i) continue;int x = siz1[i];x = (x - 1) * x / 2;int y = siz2[i];if(x == y) {ve.push_back(siz1[i]);} else {res += x - y;tag = 1;}}sort(ve.begin() , ve.end());if(!tag) res = ve[0] * ve[1];cout << res << "\n";return 0;
}
//freopen("文件名.in","r",stdin);
//freopen("文件名.out","w",stdout);

I Pa?sWorD(dp)

根据题目中给出的约束设计状态

d p [ n ] [ 63 ] [ 0 / 1 ] [ 0 / 1 ] [ 0 / 1 ] 为前  i 位第  i 位为 j 是否有小写,大写,数字的方案数 dp[n][63][0/1][0/1][0/1] ~为前 ~i~ 位第~i~位为j是否有小写,大写,数字的方案数 dp[n][63][0/1][0/1][0/1] 为前 i 位第 i 位为j是否有小写,大写,数字的方案数

时间复杂度

O ( n ∗ 6 2 2 ∗ 8 ) O(n*62^2*8) O(n6228)

空间复杂度

O ( n ∗ 62 ∗ 8 ) O(n*62*8) O(n628)

考虑优化

对于空间 ,不难发现每一位的状态只与前一位有关 , 考虑滚动数组优化。

优化后空间复杂度 O ( 2 ∗ 62 ∗ 8 ) 优化后空间复杂度O(2*62*8) 优化后空间复杂度O(2628)

对于时间 , 观察转移

for(int i = 0 ; i <= 62 ; i ++) {//枚举前一位for(int j = 0 ; j <= 62 ; j ++) {//枚举当前位if(i == j) continue;for(int k = 0 ; k <= 1 ; k ++) {for(int l = 0 ; l <= 1 ; l ++) {for(int m = 0 ; m <= 1 ; m ++) {if(id >= 1 && id <= 26)  dp[now][i][1][l][m] = (dp[now][i][1][l][m] + dp[pre][j][k][l][m]) % mod;if(id >= 27 && id <= 52) dp[now][i][k][1][m] = (dp[now][i][k][1][m] + dp[pre][j][k][l][m]) % mod;if(id >= 53 && id <= 62) dp[now][i][k][l][1] = (dp[now][i][k][l][1] + dp[pre][j][k][l][m]) % mod;}}}}	}

不难发现只有当(i == j) 的时候不加 , 其余时候都要加 , 可以把加法转化为减法 , 用前缀和维护。

优化后时间复杂度 O ( n ∗ 62 ∗ 8 ) 优化后时间复杂度O(n*62*8) 优化后时间复杂度O(n628)

易错点:滚动数组要注意清空 , 前缀和数组要注意清空。

#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
#define int long long
const int N = 2e6 + 10;
const int mod = 998244353;
typedef pair<int,int>PII;string s;
int get(char c){if(c >= 'a' && c <= 'z') return c - 'a' + 1;if(c >= 'A' && c <= 'Z') return c - 'A' + 27;if(c >= '0' && c <= '9') return c - '0' + 53;return 63;
}
int dp[2][63][2][2][2] , n , res;
int sum[2][2][2] , noww[2][2][2];signed main(){IOScin >> n >> s;s = 'x' + s;dp[0][0][0][0][0] = 1;for(int i = 1 ; i <= n ; i ++) {int now = i & 1;int pre = 1 - now;int id = get(s[i]);int id1 = get(toupper(s[i]));for(int j = 0 ; j <= 62 ; j ++) {for(int k = 0 ; k <= 1 ; k ++) {for(int l = 0 ; l <= 1 ; l ++) {for(int m = 0 ; m <= 1 ; m ++) {dp[now][j][k][l][m] = 0;}	}}}for(int j = 0 ; j <= 62 ; j ++) {for(int k = 0 ; k <= 1 ; k ++) {for(int l = 0 ; l <= 1 ; l ++) {for(int m = 0 ; m <= 1 ; m ++) {if(id >= 1 && id <= 26 && j != id)  dp[now][id][1][l][m] = (dp[now][id][1][l][m] + dp[pre][j][k][l][m]) % mod;if(id >= 27 && id <= 52 && j != id) dp[now][id][k][1][m] = (dp[now][id][k][1][m] + dp[pre][j][k][l][m]) % mod;if(id >= 53 && id <= 62 && j != id) dp[now][id][k][l][1] = (dp[now][id][k][l][1] + dp[pre][j][k][l][m]) % mod;if(id == id1) continue;if(j != id1) dp[now][id1][k][1][m] = (dp[now][id1][k][1][m] + dp[pre][j][k][l][m]) % mod;}}}}if(id == 63) {for(int k = 0 ; k <= 1 ; k ++) {for(int l = 0 ; l <= 1 ; l ++) {for(int m = 0 ; m <= 1 ; m ++) {sum[k][l][m] = noww[k][l][m] = 0;}}}for(int j = 0 ; j <= 62 ; j ++) {for(int k = 0 ; k <= 1 ; k ++) {for(int l = 0 ; l <= 1 ; l ++) {for(int m = 0 ; m <= 1 ; m ++) {sum[k][l][m] = (sum[k][l][m] + dp[pre][j][k][l][m]) % mod;}}}}for(int j = 1 ; j <= 62 ; j ++) {for(int k = 0 ; k <= 1 ; k ++) {for(int l = 0 ; l <= 1 ; l ++) {for(int m = 0 ; m <= 1 ; m ++) {noww[k][l][m] = ((sum[k][l][m] - dp[pre][j][k][l][m]) % mod + mod) % mod;}}}for(int k = 0 ; k <= 1 ; k ++) {for(int l = 0 ; l <= 1 ; l ++) {for(int m = 0 ; m <= 1 ; m ++) {if(j >= 1 && j <= 26)  dp[now][j][1][l][m] = (dp[now][j][1][l][m] + noww[k][l][m]) % mod;if(j >= 27 && j <= 52) dp[now][j][k][1][m] = (dp[now][j][k][1][m] + noww[k][l][m]) % mod;if(j >= 53 && j <= 62) dp[now][j][k][l][1] = (dp[now][j][k][l][1] + noww[k][l][m]) % mod; }}}}}	}int res = 0;for(int i = 1 ; i <= 62 ; i ++) {res = (res + dp[n&1][i][1][1][1]) % mod;}cout << res << "\n";return 0;
}
//freopen("文件名.in","r",stdin);
//freopen("文件名.out","w",stdout);/*
3
a?0
52
*/

J Minimum Manhattan Distance(计算几何)

给出两个圆 C1 , C2 , 在 C2 中找一点 , 最小化这个点到 C1 中任意点曼哈顿距离的期望。

首先考虑转化期望 , 有一个很重要的条件就是两个圆 xy坐标是没有重合部分的 , 对于C1 中的任意一点 x1 , C2中的一个点 y , 我们都能在 C1 中找到 x1 关于圆心的对称点 x2 , 使得 y 到 x1 x2 的曼哈顿距离等于二倍 y 到 C1 圆心的曼哈顿距离 。 可证明如果C1C2 x y坐标不重合这样是成立的 。 这样就把期望转化成了到 C1 圆心的距离。如何在C2中找一个点使得其到C1曼哈顿距离最小呢 , 手模一下不难发现这个点一定在C1的四个45°方向的点上的 , 枚举一下即可。

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
#define int long long
const int N = 2e6 + 10;
const int mod = 1e9 + 7;
typedef pair<int,int>PII;const double eps = 1e-5;
const double pi = acos(-1);
inline double sqr(double x) {return x * x;} //平方
int sign(double x){if(fabs(x) < eps) return 0;if(x > 0) return 1;return -1;
}//符号
struct point{double x , y;point(){}point(double a , double b) : x(a) , y(b){}friend point operator + (const point &a , const point &b){return point(a.x + b.x , a.y + b.y);}friend point operator - (const point &a , const point &b){return point(a.x - b.x , a.y - b.y);}friend bool operator == (const point &a , const point &b){return !sign(a.x - b.x) && !sign(a.y - b.y);}friend point operator * (const point &a , const double &b){return point(a.x * b , a.y * b);}friend point operator * (const double &a , const point &b){return point(a * b.x , a * b.y);}friend point operator / (const point &a , const double &b){return point(a.x / b , a.y / b);}void output(){ cout << x << " " << y << "\n"; }//向量模长 double norm(){ return sqrt(sqr(x) + sqr(y));}
}; double dist(const point &a , const point &b){return (a - b).norm();
}double dist_m(const point &a , const point &b){return abs(a.x - b.x) + abs(a.y - b.y);
}int t;
point p[4] , o1 , o2;
double r;signed main(){cout << fixed << setprecision(10);cin >> t;while(t --){for(int i = 0 ; i < 4 ; i ++) {double x , y;cin >> x >> y;p[i] = point{x , y};}o1 = point{(p[0].x + p[1].x) / 2.0 , (p[0].y + p[1].y) / 2.0};o2 = point{(p[2].x + p[3].x) / 2.0 , (p[2].y + p[3].y) / 2.0};r = dist(p[2] , p[3]) / 2.0;r = r * sqrt(2) / 2.0;double minn = 9e18;minn = min(minn , dist_m(point{o2.x + r , o2.y - r} , o1));minn = min(minn , dist_m(point{o2.x - r , o2.y + r} , o1));minn = min(minn , dist_m(point{o2.x + r , o2.y + r} , o1));minn = min(minn , dist_m(point{o2.x - r , o2.y - r} , o1));cout << minn << "\n";}return 0;
}
//freopen("文件名.in","r",stdin);
//freopen("文件名.out","w",stdout);

K Minimum Euclidean Distance(计算几何)

以圆心为原点建立极坐标系 , 进行极坐标积分 , 可以算出答案就是

1 2 r 2 + d 2 \frac{1}{2}r^2+d^2 21r2+d2

d 是凸包上的点到圆心的距离

判断圆心是否在多边形内即可 , 在内 d =0 , 否则计算圆心到每一条边的距离 , 取最小。

#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
#define int long long
const int N = 2e6 + 10;
const int mod = 1e9 + 7;
typedef pair<int,int>PII;/*
1/2r^2 + d^2
d 点到圆心的距离
*/const double eps = 1e-5;
const double pi = acos(-1);
inline double sqr(double x) {return x * x;} //平方
int sign(double x){if(fabs(x) < eps) return 0;if(x > 0) return 1;return -1;
}//符号
struct point{double x , y;point(){}point(double a , double b) : x(a) , y(b){}friend point operator + (const point &a , const point &b){return point(a.x + b.x , a.y + b.y);}friend point operator - (const point &a , const point &b){return point(a.x - b.x , a.y - b.y);}friend bool operator == (const point &a , const point &b){return !sign(a.x - b.x) && !sign(a.y - b.y);}friend point operator * (const point &a , const double &b){return point(a.x * b , a.y * b);}friend point operator * (const double &a , const point &b){return point(a * b.x , a * b.y);}friend point operator / (const point &a , const double &b){return point(a.x / b , a.y / b);}void output(){ cout << x << " " << y << "\n"; }//向量模长 double norm(){ return sqrt(sqr(x) + sqr(y));}
}; double det(const point &a , const point &b){return a.x * b.y - a.y * b.x;
}//叉积double dot(const point &a , const point &b){return a.x * b.x + a.y * b.y;
}//点积double dist(const point &a , const point &b){return (a - b).norm();
}//两点距离//判断点 p 是否在线段 st 上(包括端点)
bool point_on_segment(point p , point s , point t){return sign(det(p - s , t - s)) == 0 && sign(dot(p - s , p - t)) <= 0;
}// p 到 线段 st 的距离
double dis_point_segment(const point p , const point s , const point t){if(sign(dot(p - s , t - s)) < 0) return (p - s).norm();if(sign(dot(p - t , s - t)) < 0) return (p - t).norm();return fabs(det(s - p , t - p) / dist(s , t));
}struct polygon{int n;point p[N];int nex(int x){ return (x + 1) % n; }int pre(int x){ return (x - 1 + n) % n; }//多边形周长double perimeter(){double sum = 0;for(int i = 0 ; i < n ; i ++) sum += (p[nex(i)] - p[i]).norm();return sum;}//三角剖分求多边形面积double area(){double sum = 0;for(int i = 0 ; i < n ; i ++) sum += det(p[i] , p[nex(i)]);return sum / 2.0;}//判断点是否在多边形上bool point_on_poly(const point &now){for(int i = 0 ; i < n ; i ++) if(point_on_segment(now , p[i] , p[nex(i)])) return 1;return 0;}// 用光线投射法求回转数 回转数为 0 在外部 , 不为 0 在内部 , 借用回转数判断点的位置// 2 点在多边形上 1 点在多边形内 0 点在多边形外int point_int_poly(const point &now){int num = 0;for(int i = 0 ; i < n ; i ++){if(point_on_segment(now , p[i] , p[nex(i)])) return 2;int k = sign(det(p[nex(i)] - p[i] , now - p[i]));int d1 = sign(p[i].y - now.y);int d2 = sign(p[nex(i)].y - now.y);if(k > 0 && d1 <= 0 && d2 > 0) num += 1;if(k < 0 && d2 <= 0 && d1 > 0) num -= 1;}return num != 0;}
};polygon c;
point p[2] , o;
int q;
double r;signed main(){IOScout << fixed << setprecision(10);cin >> c.n >> q;for(int i = 0 ; i < c.n ; i ++) {double x , y;cin >> x >> y;c.p[i] = {x , y};}while(q --) {for(int i = 0 ; i < 2 ; i ++) {double x , y;cin >> x >> y;p[i] = {x , y};}o = point{(p[1].x + p[0].x) / 2.0 , (p[1].y + p[0].y) / 2.0};r = dist(o , p[0]);int now = c.point_int_poly(o);double ans = 0;if(now >= 1) {ans = r * r / 2.0;} else {double d = 9e18;for(int i = 0 ; i < c.n ; i ++) {d = min(d , dis_point_segment(o , c.p[i] , c.p[c.nex(i)]));}ans = r * r / 2.0 + d * d;}cout << ans << "\n";}return 0;
}
//freopen("文件名.in","r",stdin);
//freopen("文件名.out","w",stdout);

L KaChang!(签到)

答案就是   m a x ( 2 , ( t − 1 ) / T + 1 ) 答案就是~~max(2,(t - 1)/T+1) 答案就是  max(2,(t1)/T+1)

#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
#define int long long
const int N = 2e6 + 10;
const int mod = 1e9 + 7;
typedef pair<int,int>PII;int n , k , now;int res = 2;signed main(){IOScin >> n >> k;for(int i = 1 ; i <= n ; i ++) {cin >> now;res = max(res , (now - 1) / k + 1);}cout << res << "\n";return 0;
}
//freopen("文件名.in","r",stdin);
//freopen("文件名.out","w",stdout);

相关文章:

The 2023 ICPC Asia Regionals Online Contest (1)(A D I J K L)

The 2023 ICPC Asia Regionals Online Contest (1)(A D I J K L) PTA | 程序设计类实验辅助教学平台 A Qualifiers Ranking Rules(模拟) 考虑先对第一场和第二场分别去重(取最好) &#xff0c; 归并排序后再次去重即可。 #include<bits/stdc.h> using namespace std;…...

C++ PrimerPlus 复习 第七章 函数——C++的编程模块(上)

第一章 命令编译链接文件 make文件 第二章 进入c 第三章 处理数据 第四章 复合类型 &#xff08;上&#xff09; 第四章 复合类型 &#xff08;下&#xff09; 第五章 循环和关系表达式 第六章 分支语句和逻辑运算符 第七章 函数——C的编程模块&#xff08;上&#xff…...

2.求循环小数

题目 对于任意的真分数 N/M &#xff08; 0 < N < M &#xff09;&#xff0c;均可以求出对应的小数。如果采用链表表示各个小数&#xff0c;对于循环节采用循环链表表示&#xff0c;则所有分数均可以表示为如下链表形式。 输入&#xff1a; N M 输出&#xff1a; 转换…...

zabbix监控告警邮箱提醒,钉钉提醒

一、注册网易邮箱及其配置邮箱 1、开启POP3/SMTP/IMAP 二、service端配置邮件服务 1.安装 mailx dos2unix yum install -y mailx dos2unix mailx&#xff1a;邮件服务 mos2unix&#xff1a;用于转换文本文件格式的实用工具 查看mailx版本 2.配置mailx配置文件 编辑&#xf…...

典型数据结构-栈/队列/链表、哈希查找、二叉树(BT)、线索二叉树、二叉排序树(BST树)、平衡二叉树(AVL树)、红黑树(RB树)

目录 典型数据结构列举 栈/队列/链表 树 二叉树 线索二叉树 二叉排序树 平衡二叉树&#xff08;AVL树&#xff09; 红黑树 其它树种和应用介绍 典型数据结构列举 栈/队列/链表 描述略。 一些基本的简单实现参考/数据结构简单实现/文件夹里面。 线性表详解&#xff…...

pyarmor 加密许可证的使用

一 pyarmor 许可证的用处 文档&#xff1a;5. 许可模式和许可证 — Pyarmor 8.3.6 文档 试用版本有如下的限制&#xff1a; 加密功能对脚本大小有限制&#xff0c;不能加密超过限制的大脚本。 混淆字符串功能在试用版中无法使用。 RFT 加密模式&#xff0c;BCC 加密模式在试…...

网络路径监控分析

不间断的连接应该是任何企业的首要任务。然而&#xff0c;确保网络中的源和目标之间持续、不间断的联系一直是网络通信中一个劳动密集型的过程。了解网络路径中的障碍、识别它们并迅速解决它们以维护健康、不间断的网络至关重要。 为什么要监控网络路径 维护网络运行状况是任…...

vue双向数据绑定是如何实现的?

Vue中的双向数据绑定主要是通过数据劫持和发布订阅模式来实现的。 数据劫持&#xff1a; Vue通过使用Object.defineProperty()方法来对data对象中的属性进行劫持&#xff0c;从而实现对数据的双向绑定。具体实现方式为&#xff1a; &#xff08;1&#xff09;在Vue实例化时&a…...

el-date-picker 封装一个简单的日期组件, 主要是禁用日期

子组件 <template><div><el-date-pickerv-model"dateModel"type"datetimerange":picker-options"pickerOptions"range-separator"至"ref"picker"start-placeholder"开始日期"end-placeholder&quo…...

保研复习-计算机组成原理

计算机组成原理 计算机组成冯诺依曼体系结构计算机系统的层次结构计算机的五大组成部件编译和解释的区别 CPUCPU的组成寄存器的类型指令类型指令功能指令执行过程 存储器存储器的层次结构寻址方式 输入和输出io方式有哪几种IO接口的基本结构 计算机组成 冯诺依曼体系结构 存储…...

linux环境安装redis(亲测完成)

linux环境安装redis 亲测完成 前言一、redis简介Redis 与其他 key - value 缓存产品有以下三个特点&#xff1a;Redis 优势 二、安装redis1.下载安装包2.创建服务器安装路径3.上传安装包4.解压安装包5.依赖安装6.编译 三、启动1)默认启动错误解决方式 2)指定配置启动2.1&#x…...

关于命令行交互自动化,及pyinstaller打包wexpect的问题

Python自动化工具 用来执行命令并进行交互&#xff0c;比如需要输入账号密码或者确认的场景 linux平台可以用pexpect&#xff0c;但是windows平台有一些差异&#xff0c;比较好用的是pexpect的变种wexpect&#xff0c;如果脚本中用了wexpect&#xff0c;并且要打包成onefile&a…...

8.4 【MySQL】文件系统对数据库的影响

因为 MySQL 的数据都是存在文件系统中的&#xff0c;就不得不受到文件系统的一些制约&#xff0c;这在数据库和表的命名、表的大小和性能方面体现的比较明显&#xff0c;比如下边这些方面&#xff1a; 数据库名称和表名称不得超过文件系统所允许的最大长度。 每个数据库都对应…...

Python WEB框架FastAPI (二)

Python WEB框架FastAPI &#xff08;二&#xff09; 最近一直在使用fastapi&#xff0c;随着使用的深入发现我对于它的了解还是太少了&#xff0c;以至于踩了一些坑。所以在这里记录一下&#xff0c;愿看到的小伙伴不迷路。 路径传参并发问题 一、路径传参 这是对上一个传参…...

基于Java网络书店商城设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…...

怒刷LeetCode的第3天(Java版)

目录 第一题 题目来源 题目内容 解决方法 方法一&#xff1a;动态规划 第二题 题目来源 题目内容 解决方法 方法一&#xff1a;模拟 方法二&#xff1a;数学规律 方法三&#xff1a;分组 第三题 题目来源 题目内容 解决方法 方法一&#xff1a;数学方法 方法…...

JavaScript数组去重常用方法

数组去重是在 JavaScript 开发中经常遇到的问题。本文将从前言、分析、使用场景、具体实现代码和注意事项等方面&#xff0c;详细讨论 JavaScript 数组去重的方法。 前言&#xff1a; 在 JavaScript 中&#xff0c;数组是一种常用的数据结构&#xff0c;用于存储多个值。然而…...

蓝牙电话之HFP—电话音频

1 媒体音频&#xff1a; 播放蓝牙音乐的数据&#xff0c;这种音频对质量要求高&#xff0c;数据发送有重传机制&#xff0c;从而以l2cap的数据形式走ACL链路。编码方式有&#xff1a;SBC、AAC、APTX、APTX_HD、LDAC这五种编码方式&#xff0c;最基础的编码方式是SBC&#xff0…...

JDBC基本概念

什么是JDBC JDBC概念 JDBC&#xff08;Java DataBase Connectivity&#xff09;是一套统一的基于Java语言的关系数据库编程接口规范。 该规范允许将SQL语句作为参数通过JDBC接口发送给远端数据库&#xff0c; …...

leetcode876 链表的中间节点

题目 给你单链表的头结点 head &#xff0c;请你找出并返回链表的中间结点。 如果有两个中间结点&#xff0c;则返回第二个中间结点。 示例 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[3,4,5] 解释&#xff1a;链表只有一个中间结点&#xff0c;值为 3 。 输入&a…...

DeepSeek代码质量评估实战手册:7步完成从混沌到可度量的质变跃迁

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;DeepSeek代码质量评估的底层逻辑与核心价值 DeepSeek代码质量评估并非简单地统计行数或检测语法错误&#xff0c;而是基于多维语义理解构建的推理系统。其底层逻辑融合了静态分析、符号执行与大语言模型生成式…...

Unity安卓构建实战指南:解决APK真机安装闪退与构建失败

1. 这不是一本“从零开始”的书&#xff0c;而是一份你真正上手Unity安卓游戏开发前必须撕开的说明书我带过三届Unity实习工程师&#xff0c;也帮二十多个独立开发者把Demo打包进Google Play。每次看到新人在“安卓构建失败”报错里反复挣扎&#xff0c;或者对着“IL2CPP编译卡…...

苏州创新药20年,站上全球产业洗牌暴风眼

一个城市的创新药产业集群如何从无到有&#xff0c;又如何在全球化临界点寻找自己的位置。文&#xff5c;徐鑫编&#xff5c;任晓渔过去一年多&#xff0c;苏州是全球创新药产业版图中一个绕不过去的城市。大额海外授权交易频繁传出&#xff0c;在中国高端制造走出去的背景下&a…...

SkillVLA:通过技能复用应对双-臂操纵中的组合多样性

26年3月来自新加坡国立、北京中关村学院、上海创新研究院、上海AI实验室、上海交大和复旦的论文“SkillVLA: Tackling Combinatorial Diversity in Dual-Arm Manipulation via Skill Reuse”。 视觉-语言-动作&#xff08;VLA&#xff09;模型近期取得的进展&#xff0c;已充分…...

ARM PMU性能监控单元原理与实践指南

1. ARM PMU性能监控单元概述性能监控单元&#xff08;PMU&#xff09;是现代ARM处理器中用于硬件级性能分析的核心组件。它通过一组可编程的硬件计数器&#xff0c;实现对处理器内部各种关键事件的精确测量。这些事件涵盖了从指令执行、缓存访问到内存子系统行为等处理器活动的…...

美团外卖mtgsig与waimai_sign双层签名逆向解析

1. 这不是“爬虫教程”&#xff0c;而是一份反向工程现场笔记你搜到这篇内容&#xff0c;大概率正卡在某个调试窗口前&#xff1a;抓包看到mtgsig和waimai_sign两个参数像两堵墙&#xff0c;无论怎么改请求头、换UA、清缓存&#xff0c;返回永远是{"code":403,"…...

Web渗透测试能力成长地图:从工具使用到漏洞认知跃迁

1. 这不是工具清单&#xff0c;而是一张Web渗透测试的“能力成长地图”你刚点开这篇文章&#xff0c;大概率正站在两个路口之间&#xff1a;一边是网上铺天盖地的“十大免费扫描器推荐”&#xff0c;点进去全是截图下载链接一句“一键扫漏洞”&#xff0c;结果装完跑两下&#…...

从零到上机:我的第一个Quest 3空间锚点应用是如何跑起来的(附完整Unity工程)

从零到上机&#xff1a;我的第一个Quest 3空间锚点应用是如何跑起来的&#xff08;附完整Unity工程&#xff09;第一次戴上Meta Quest 3时&#xff0c;那种虚拟与现实交织的震撼感至今难忘。但作为开发者&#xff0c;更让我着迷的是如何让虚拟物体在真实空间中"记住"…...

微信小程序项目实战:从npm安装Vant Weapp到解决样式冲突的完整避坑指南

微信小程序工程化实战&#xff1a;Vant Weapp集成与样式冲突解决方案全解析 第一次在小程序里引入Vant Weapp时&#xff0c;我对着满屏错位的组件样式发呆了半小时——原本优雅的按钮变成了扭曲的色块&#xff0c;表单元素叠在一起像抽象画。这不是个例&#xff0c;根据社区反…...

网飞成立 AI 动画工作室,开启流媒体“原生 AI 制片时代”,中外布局逻辑有何不同?

1. Netflix“偷跑”在影视巨头关于 AIGC 的军备竞赛中&#xff0c;Netflix 再次加速。据外媒 TheVerge 报道&#xff0c;网飞于今年 3 月成立了名为 "INKubator" 的工作室&#xff0c;这是全球流媒体巨头中首个以生成式人工智能为核心的动画制作部门。此动作引发全球…...