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(n∗622∗8)
空间复杂度
O ( n ∗ 62 ∗ 8 ) O(n*62*8) O(n∗62∗8)
考虑优化
对于空间 ,不难发现每一位的状态只与前一位有关 , 考虑滚动数组优化。
优化后空间复杂度 O ( 2 ∗ 62 ∗ 8 ) 优化后空间复杂度O(2*62*8) 优化后空间复杂度O(2∗62∗8)
对于时间 , 观察转移
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(n∗62∗8)
易错点:滚动数组要注意清空 , 前缀和数组要注意清空。
#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,(t−1)/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(模拟) 考虑先对第一场和第二场分别去重(取最好) , 归并排序后再次去重即可。 #include<bits/stdc.h> using namespace std;…...
C++ PrimerPlus 复习 第七章 函数——C++的编程模块(上)
第一章 命令编译链接文件 make文件 第二章 进入c 第三章 处理数据 第四章 复合类型 (上) 第四章 复合类型 (下) 第五章 循环和关系表达式 第六章 分支语句和逻辑运算符 第七章 函数——C的编程模块(上ÿ…...
2.求循环小数
题目 对于任意的真分数 N/M ( 0 < N < M ),均可以求出对应的小数。如果采用链表表示各个小数,对于循环节采用循环链表表示,则所有分数均可以表示为如下链表形式。 输入: N M 输出: 转换…...
zabbix监控告警邮箱提醒,钉钉提醒
一、注册网易邮箱及其配置邮箱 1、开启POP3/SMTP/IMAP 二、service端配置邮件服务 1.安装 mailx dos2unix yum install -y mailx dos2unix mailx:邮件服务 mos2unix:用于转换文本文件格式的实用工具 查看mailx版本 2.配置mailx配置文件 编辑…...
典型数据结构-栈/队列/链表、哈希查找、二叉树(BT)、线索二叉树、二叉排序树(BST树)、平衡二叉树(AVL树)、红黑树(RB树)
目录 典型数据结构列举 栈/队列/链表 树 二叉树 线索二叉树 二叉排序树 平衡二叉树(AVL树) 红黑树 其它树种和应用介绍 典型数据结构列举 栈/队列/链表 描述略。 一些基本的简单实现参考/数据结构简单实现/文件夹里面。 线性表详解ÿ…...
pyarmor 加密许可证的使用
一 pyarmor 许可证的用处 文档:5. 许可模式和许可证 — Pyarmor 8.3.6 文档 试用版本有如下的限制: 加密功能对脚本大小有限制,不能加密超过限制的大脚本。 混淆字符串功能在试用版中无法使用。 RFT 加密模式,BCC 加密模式在试…...
网络路径监控分析
不间断的连接应该是任何企业的首要任务。然而,确保网络中的源和目标之间持续、不间断的联系一直是网络通信中一个劳动密集型的过程。了解网络路径中的障碍、识别它们并迅速解决它们以维护健康、不间断的网络至关重要。 为什么要监控网络路径 维护网络运行状况是任…...
vue双向数据绑定是如何实现的?
Vue中的双向数据绑定主要是通过数据劫持和发布订阅模式来实现的。 数据劫持: Vue通过使用Object.defineProperty()方法来对data对象中的属性进行劫持,从而实现对数据的双向绑定。具体实现方式为: (1)在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 缓存产品有以下三个特点:Redis 优势 二、安装redis1.下载安装包2.创建服务器安装路径3.上传安装包4.解压安装包5.依赖安装6.编译 三、启动1)默认启动错误解决方式 2)指定配置启动2.1&#x…...
关于命令行交互自动化,及pyinstaller打包wexpect的问题
Python自动化工具 用来执行命令并进行交互,比如需要输入账号密码或者确认的场景 linux平台可以用pexpect,但是windows平台有一些差异,比较好用的是pexpect的变种wexpect,如果脚本中用了wexpect,并且要打包成onefile&a…...
8.4 【MySQL】文件系统对数据库的影响
因为 MySQL 的数据都是存在文件系统中的,就不得不受到文件系统的一些制约,这在数据库和表的命名、表的大小和性能方面体现的比较明显,比如下边这些方面: 数据库名称和表名称不得超过文件系统所允许的最大长度。 每个数据库都对应…...
Python WEB框架FastAPI (二)
Python WEB框架FastAPI (二) 最近一直在使用fastapi,随着使用的深入发现我对于它的了解还是太少了,以至于踩了一些坑。所以在这里记录一下,愿看到的小伙伴不迷路。 路径传参并发问题 一、路径传参 这是对上一个传参…...
基于Java网络书店商城设计实现(源码+lw+部署文档+讲解等)
博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…...
怒刷LeetCode的第3天(Java版)
目录 第一题 题目来源 题目内容 解决方法 方法一:动态规划 第二题 题目来源 题目内容 解决方法 方法一:模拟 方法二:数学规律 方法三:分组 第三题 题目来源 题目内容 解决方法 方法一:数学方法 方法…...
JavaScript数组去重常用方法
数组去重是在 JavaScript 开发中经常遇到的问题。本文将从前言、分析、使用场景、具体实现代码和注意事项等方面,详细讨论 JavaScript 数组去重的方法。 前言: 在 JavaScript 中,数组是一种常用的数据结构,用于存储多个值。然而…...
蓝牙电话之HFP—电话音频
1 媒体音频: 播放蓝牙音乐的数据,这种音频对质量要求高,数据发送有重传机制,从而以l2cap的数据形式走ACL链路。编码方式有:SBC、AAC、APTX、APTX_HD、LDAC这五种编码方式,最基础的编码方式是SBC࿰…...
JDBC基本概念
什么是JDBC JDBC概念 JDBC(Java DataBase Connectivity)是一套统一的基于Java语言的关系数据库编程接口规范。 该规范允许将SQL语句作为参数通过JDBC接口发送给远端数据库, …...
leetcode876 链表的中间节点
题目 给你单链表的头结点 head ,请你找出并返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例 输入:head [1,2,3,4,5] 输出:[3,4,5] 解释:链表只有一个中间结点,值为 3 。 输入&a…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...
android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...
Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案
在大数据时代,海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构,在处理大规模数据抓取任务时展现出强大的能力。然而,随着业务规模的不断扩大和数据抓取需求的日益复杂,传统…...
《信号与系统》第 6 章 信号与系统的时域和频域特性
目录 6.0 引言 6.1 傅里叶变换的模和相位表示 6.2 线性时不变系统频率响应的模和相位表示 6.2.1 线性与非线性相位 6.2.2 群时延 6.2.3 对数模和相位图 6.3 理想频率选择性滤波器的时域特性 6.4 非理想滤波器的时域和频域特性讨论 6.5 一阶与二阶连续时间系统 6.5.1 …...
JS红宝书笔记 - 3.3 变量
要定义变量,可以使用var操作符,后跟变量名 ES实现变量初始化,因此可以同时定义变量并设置它的值 使用var操作符定义的变量会成为包含它的函数的局部变量。 在函数内定义变量时省略var操作符,可以创建一个全局变量 如果需要定义…...
