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

AtCoder Beginner Contest 380(A-F)

比赛链接:AtCoder Beginner Contest 380(A-F)

A - 123233

题意

给出一个数字 N N N,问这个数字中是否 1 1 1 恰好出现了 1 1 1 次, 2 2 2 恰好出现了 2 2 2 次, 3 3 3 恰好出现了 3 3 3 次。

数据范围

100000 ≤ N ≤ 999999 100000 \le N \le 999999 100000N999999

思路

N N N 当字符串处理,然后直接遍历字符串,统计每种数字的数量,判断是否符合条件即可

复杂度

时间复杂度 O ( ∣ N ∣ ) O(|N|) O(N),空间复杂度 O ( ∣ N ∣ ) O(|N|) O(N)

代码实现

// Problem: A - 123233
// Contest: AtCoder - AtCoder Beginner Contest 380
// URL: https://atcoder.jp/contests/abc380/tasks/abc380_a
// Memory Limit: 1024 MB
// Time Limit: 2000 ms
//
// Powered by CP Editor (https://cpeditor.org)#include <bits/stdc++.h>
using namespace std;#define int long longconst int N = 1e6 + 5;void solve()
{string s;cin >> s;int cnt[10] = { 0 };for (char c : s) {cnt[c - '0']++;}if (cnt[1] == 1 && cnt[2] == 2 && cnt[3] == 3)cout << "Yes";elsecout << "No";
}signed main()
{ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int T = 1;// cin >> T;while (T--) {solve();}
}

B - Hurdle Parsing

题意

有一个长度为 n n n 的序列 A A A,通过序列 A A A 以如下方式构造出字符串 S S S

  • S S S ′ ∣ ′ '|' 开头。 然后进行 n n n 次操作:
  • 在第 i i i 次操作时,添加 A i A_i Ai ′ − ′ '-' S S S
    结尾,然后添加 ′ ∣ ′ '|' S S S 结尾。

现在给出字符串 S S S,求出序列 A A A

数据范围

3 ≤ ∣ S ∣ ≤ 100 , n ≥ 1 3\le |S| \le 100,n \ge 1 3S100n1

思路

A i A_i Ai S S S 中第 i i i 个字符 ′ − ′ '-' 的连续段的长度,因此可以从左到右遍历 S S S,每遇到一个字符 ′ − ′ '-' ,就以该字符为开头,向右遍历完其所在的连续段,从而得到该连续段的长度。
在遍历完一个连续段后,就直接跳到连续段之后的下一个位置遍历,这样就可以遍历到所有的连续段并得到对应长度。

复杂度

时间复杂度 O ( ∣ S ∣ ) O(|S|) O(S),空间复杂度 O ( ∣ S ∣ ) O(|S|) O(S)

代码实现

// Problem: B - Hurdle Parsing
// Contest: AtCoder - AtCoder Beginner Contest 380
// URL: https://atcoder.jp/contests/abc380/tasks/abc380_b
// Memory Limit: 1024 MB
// Time Limit: 2000 ms
//
// Powered by CP Editor (https://cpeditor.org)#include <bits/stdc++.h>
using namespace std;#define int long longconst int N = 1e6 + 5;void solve()
{string s;cin >> s;int n = s.size();for (int i = 0; i < n; i++) {if (s[i] == '-') {int j = i;while (j < n && s[j] == '-')j++;cout << j - i << ' ';i = j - 1;}}
}signed main()
{ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int T = 1;// cin >> T;while (T--) {solve();}
}

C - Move Segment

题意

给出一个长度为 n n n 01 01 01 S S S

定义 ′ 1 − b l o c k ′ '1-block' 1block 为只含 1 1 1 的子串,且该子串前后都不存在 1 1 1,换句话说,若子串对应的区间为 [ l , r ] [l,r] [l,r],则 l = 1 l=1 l=1 S l − 1 = 0 S_{l-1} = 0 Sl1=0,且 r = n r = n r=n S r + 1 = 0 S_{r+1} = 0 Sr+1=0

01 01 01 串中保证至少有 k k k ′ 1 − b l o c k ′ '1-block' 1block,现在要求把第 k k k ′ 1 − b l o c k ′ '1-block' 1block 移动到 第 k − 1 k-1 k1 ′ 1 − b l o c k ′ '1-block' 1block 的后面,然后输出修改后的 S S S

数据范围

1 ≤ n ≤ 5 ∗ 1 0 5 , 2 ≤ k 1 \le n \le 5*10^5,2 \le k 1n5105,2k

思路

模拟题,从左到右遍历字符串,然后记录上一个 ′ 1 − b l o c k ′ '1-block' 1block 的末尾下标 p r e pre pre,当遍历到第 k k k ′ 1 − b l o c k ′ '1-block' 1block 时,将其移动到 p r e pre pre 接下去的位置即可。

复杂度

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

代码实现

// Problem: C - Move Segment
// Contest: AtCoder - AtCoder Beginner Contest 380
// URL: https://atcoder.jp/contests/abc380/tasks/abc380_c
// Memory Limit: 1024 MB
// Time Limit: 2000 ms
//
// Powered by CP Editor (https://cpeditor.org)#include <bits/stdc++.h>
using namespace std;#define int long longconst int N = 1e6 + 5;int n, k;
string s;void solve()
{cin >> n >> k >> s;int pre = -1, cnt = 0;for (int i = 0; i < n; i++) {if (s[i] == '1') {cnt++;int j = i;while (j < n && s[j] == '1') {j++;}if (cnt == k) {int len = j - i;for (int i1 = 1; i1 <= len; i1++) {s[i + i1 - 1] = '0';}for (int i1 = 1; i1 <= len; i1++) {s[pre + i1] = '1';}break;}pre = i = j - 1;}}cout << s;
}signed main()
{ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int T = 1;// cin >> T;while (T--) {solve();}
}

D - Strange Mirroring

题意

给出一个字符串 S S S,对 S S S 进行 1 0 100 10^{100} 10100 次如下操作:

  • 新建一个字符串 T T T,通过转换 S S S 每个位置的字母的大小写得到。

  • S S S 变成 S + T S+T S+T

现在进行 q q q 次查询,第 i i i 次查询给出一个数字 k i k_i ki,问字符串 S S S k i k_i ki 个字母是什么?

数据范围

1 ≤ ∣ S ∣ , q ≤ 2 ∗ 1 0 5 , 1 ≤ k i ≤ 1 0 18 1 \le |S|,q \le 2*10^5,1 \le k_i \le 10^{18} 1S,q2105,1ki1018

思路

n n n 为初始时 S S S 的长度。

不考虑大小写的话,第 k i k_i ki 个字母即为 S k i % n + 1 S_{k_i \% n +1} Ski%n+1

现在要考虑第 k i k_i ki 个字母的大小写形式。

因为不考虑大小写的情况下,每次操作都是把 S S S 变成 S + S S+S S+S,所以第 i i i 次操作后, S S S 会翻倍 i i i 次, S S S 的长度为 2 i ∗ n 2^i*n 2in

f ( w , i d ) f(w,id) f(w,id) 为第 i d id id 个位置的字母的大小写,是否与初始时 S S S 对应位置的字母的大小写相同, 0 0 0 表示相同, 1 1 1 表示不同。
同时,第 w w w 次操作后,恰好包含了第 i d id id 个位置,换句话说, w w w 为满足 2 w ∗ n ≥ i d 2^w*n \ge id 2wnid 的最小值。

S S S 中前一半和后一半对应位置的大小写相反,具体的说,当 S S S 的长度为 2 w ∗ n 2^w*n 2wn 时,第 i i i 个位置 ( 1 ≤ i ≤ 2 w − 1 ∗ n ) (1 \le i \le 2^{w-1}*n) (1i2w1n) 与 第 i + 2 w − 1 ∗ n i+2^{w-1}*n i+2w1n 的位置的字母相同,大小写相反。

因此,若 i d ≤ 2 w − 1 ∗ n id \le 2^{w-1}*n id2w1n,那么 f ( w , i d ) = f ( w − 1 , i d ) f(w,id) = f(w-1,id) f(w,id)=f(w1,id),否则 f ( w , i d ) = f ( w − 1 , i d − 2 w − 1 ∗ n ) ⊕ 1 f(w,id) = f(w-1,id-2^{w-1}*n) \oplus 1 f(w,id)=f(w1,id2w1n)1

特别的,当 w = 0 w=0 w=0 时,表示未操作时的初始串, f ( 0 , i d ) = 0 f(0,id)=0 f(0,id)=0

因为上一个状态的长度都是当前状态长度的一半,所以求解 f ( w , i d ) f(w,id) f(w,id) 的复杂度为 O ( log ⁡ 2 i d ) O(\log_2id) O(log2id)

复杂度

时间复杂度 O ( q ∗ log ⁡ 2 k i ) O(q*\log_2 k_i) O(qlog2ki),空间复杂度 O ( ∣ S ∣ ) O(|S|) O(S)

代码实现

// Problem: D - Strange Mirroring
// Contest: AtCoder - AtCoder Beginner Contest 380
// URL: https://atcoder.jp/contests/abc380/tasks/abc380_d
// Memory Limit: 1024 MB
// Time Limit: 2000 ms
//
// Powered by CP Editor (https://cpeditor.org)#include <bits/stdc++.h>
using namespace std;#define int long longconst int N = 1e6 + 5;int n, q;
string s;// 代码实现和思路有些不同,w传的是倍数,思路中传的是指数
int f(int w, int id)
{if (w == 1) {return 0;}int len = w * n;if (id <= len / 2) {return f(w / 2, id);} else {return f(w / 2, id - w / 2 * n) ^ 1;}
}void solve()
{cin >> s >> q;n = s.size();s = ' ' + s;while (q--) {int id;cin >> id;int p = (id - 1) % n + 1;char c = s[p];for (int i = 0; i <= 63; i++) {int w = 1ll << i;if (w * n >= id) {int op = f(w, id);if (op) {if (islower(c))c = toupper(c);elsec = tolower(c);}break;}}cout << c << ' ';}
}signed main()
{ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int T = 1;// cin >> T;while (T--) {solve();}
}

E - 1D Bucket Tool

题意

n n n 个单元格,初始时第 i i i 个单元格的颜色为 i i i,第 i i i 个单元格与第 i + 1 i+1 i+1 个单元格相邻。

进行 q q q 次查询,查询有两种情况:

  1. 修改第 x x x 个单元格所在的同色连通块的颜色为 c c c
  2. 输出颜色为 c c c 的单元格有多少个。

数据范围

1 ≤ n ≤ 5 ∗ 1 0 5 , 1 ≤ q ≤ 2 ∗ 1 0 5 1 \le n \le 5*10^5,1 \le q \le 2*10^5 1n5105,1q2105

思路

考虑用并查集维护同色连通块,并查集上需要维护连通块的单元格数,左边界和右边界。

对于操作 1 1 1,首先第 x x x 个单元格的颜色的单元格数会减少所在连通块的单元格数,然后把颜色 c c c 的单元格数增加所在连通块的单元格数。

如果修改颜色后,和左边连通块或者右边连通块颜色相同,则合并在一起。

对于操作 2 2 2,则直接输出记录的对应颜色单元格数即可。

复杂度

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

代码实现

// Problem: E - 1D Bucket Tool
// Contest: AtCoder - AtCoder Beginner Contest 380
// URL: https://atcoder.jp/contests/abc380/tasks/abc380_e
// Memory Limit: 1024 MB
// Time Limit: 2000 ms
//
// Powered by CP Editor (https://cpeditor.org)#include <bits/stdc++.h>
using namespace std;#define int long longconst int N = 1e6 + 5;int n, q;
int p[N], lx[N], rx[N], sz[N], col[N], cnt[N];int find(int x)
{return x == p[x] ? x : p[x] = find(p[x]);
}void merge(int x, int y)
{x = find(x), y = find(y);if (x != y) {p[x] = y;lx[y] = min(lx[y], lx[x]);rx[y] = max(rx[y], rx[x]);sz[y] += sz[x];}
}void solve()
{cin >> n >> q;for (int i = 1; i <= n; i++) {cnt[i] = sz[i] = 1;p[i] = lx[i] = rx[i] = col[i] = i;}while (q--) {int op;cin >> op;if (op == 1) {int x, c;cin >> x >> c;x = find(x);cnt[col[x]] -= sz[x];col[x] = c;cnt[c] += sz[x];if (lx[x] != 1) {int fl = find(lx[x] - 1);if (col[fl] == c) {merge(x, fl);}}if (rx[x] != n) {int fr = find(rx[x] + 1);if (col[fr] == c) {merge(x, fr);}}} else {int c;cin >> c;cout << cnt[c] << '\n';}}
}signed main()
{ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int T = 1;// cin >> T;while (T--) {solve();}
}

F - Exchange Game

题意

T a k a h a s h i Takahashi Takahashi n n n 张卡片, A o k i Aoki Aoki m m m 张卡片,初始时桌子上有 L L L 张卡片,每张卡片上都有数字。

T a k a h a s h i Takahashi Takahashi A o k i Aoki Aoki 先后出牌, T a k a h a s h i Takahashi Takahashi 先手出牌,当前轮到某人出牌时,如果无牌可出则输,否则,可以出一张牌,如果当前桌子上有一张比刚出的牌更小的牌,则当前的出牌人可以拿起这张牌。

问哪个人必赢?

数据范围

n + m + L ≤ 12 n+m+L \le 12 n+m+L12,牌上的数字为正数,不超过 1 0 9 10^9 109

思路

注意到总牌数很少,对应的情况数必然不超过 3 n + m + L 3^{n+m+L} 3n+m+L,最大为 531 , 441 531,441 531,441,因此可以记忆化搜索所有的博弈状态,从而确定哪个人必赢。

其中可以加个小剪枝,就是如果要在出牌后,在桌子上拿牌的话,取小于刚出的牌的最大的牌是最优的,因为取得的牌越大,后面再打出就可能可以再次在桌上取牌,从而保持有牌的状态避免失败。

复杂度

时间复杂度 O ( 3 n + m + L ) O(3^{n+m+L}) O(3n+m+L),空间复杂度 O ( 3 n + m + L ) O(3^{n+m+L}) O(3n+m+L)

代码实现

// Problem: F - Exchange Game
// Contest: AtCoder - AtCoder Beginner Contest 380
// URL: https://atcoder.jp/contests/abc380/tasks/abc380_f
// Memory Limit: 1024 MB
// Time Limit: 2000 ms
//
// Powered by CP Editor (https://cpeditor.org)#include <bits/stdc++.h>
using namespace std;#define int long longconst int N = 1e6 + 5;int n, m, k;map<array<multiset<int>, 3>, int> f[2];int dfs(array<multiset<int>, 3> st, int op)
{if (f[op].count(st))return f[op][st];if (!st[op].size())return f[op][st] = 0;for (int x : st[op]) {auto it = st[2].lower_bound(x);int y = -1;if (st[2].size() && it != st[2].begin()) {y = *(--it);}array<multiset<int>, 3> ne = st;ne[op].erase(ne[op].lower_bound(x));if (y != -1) {ne[2].erase(ne[2].lower_bound(y));ne[op].insert(y);}ne[2].insert(x);if (!dfs(ne, op ^ 1))return f[op][st] = 1;}return f[op][st] = 0;
}void solve()
{cin >> n >> m >> k;array<multiset<int>, 3> st;for (int i = 0; i < n; i++) {int x;cin >> x;st[0].insert(x);}for (int i = 0; i < m; i++) {int x;cin >> x;st[1].insert(x);}for (int i = 0; i < k; i++) {int x;cin >> x;st[2].insert(x);}int flag = dfs(st, 0);cout << (flag ? "Takahashi" : "Aoki") << '\n';
}signed main()
{ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int T = 1;// cin >> T;while (T--) {solve();}
}

相关文章:

AtCoder Beginner Contest 380(A-F)

比赛链接&#xff1a;AtCoder Beginner Contest 380(A-F) A - 123233 题意 给出一个数字 N N N&#xff0c;问这个数字中是否 1 1 1 恰好出现了 1 1 1 次&#xff0c; 2 2 2 恰好出现了 2 2 2 次&#xff0c; 3 3 3 恰好出现了 3 3 3 次。 数据范围 100000 ≤ N ≤ 99…...

多线程-阻塞队列

目录 阻塞队列 消息队列 阻塞队列用于生产者消费者模型 概念 实现原理 生产者消费者主要优势 缺陷 阻塞队列的实现 1.写一个普通队列 2.加上线程安全和阻塞等待 3.解决代码中的问题 阻塞队列 阻塞队列&#xff0c;是带有线程安全功能的队列&#xff0c;拥有队列先进…...

el-table合并单元格之后,再进行隔行换色的且覆盖表格行鼠标移入的背景色的实现

el-table 中有现成的隔行换色功能&#xff0c;只要增加 stripe 属性即可。但是如果有单元格合并的话&#xff0c;这个属性就不可用了。这时候我们就需要动点小心思了。 基于相同字段进行合并 单元格合并&#xff1a;基于表头中的某一列&#xff0c;具有相同值的个数相加进行合…...

java模拟键盘实现selenium上下左右键 table中的左右滚动条实现滚动

在这篇文章中&#xff0c;我们将学习如何使用Java编程语言模拟键盘输入&#xff0c;特别是模拟上下左右方向键的操作。这是一个很有趣的项目&#xff0c;尤其适合刚入行的开发者。我们将分步进行&#xff0c;接下来&#xff0c;我们会通过表格展示整个实现过程&#xff0c;然后…...

SDF,一个从1978年运行至今的公共Unix Shell

关于SDF 最近发现了一个很古老的公共Unix Shell服务器&#xff0c;这个项目从1978年运行至今&#xff0c;如果对操作系统&#xff0c;对Unix感兴趣&#xff0c;可以进去玩一玩体验一下 SDF Public Access UNIX System - Free Shell Account and Shell Access 注册方式 我一…...

前馈神经网络 (Feedforward Neural Network, FNN)

代码功能 网络定义&#xff1a; 使用 torch.nn 构建了一个简单的前馈神经网络。 隐藏层使用 ReLU 激活函数&#xff0c;输出层使用 Sigmoid 函数&#xff08;适用于二分类问题&#xff09;。 数据生成&#xff1a; 使用经典的 XOR 问题作为数据集。 数据点为二维输入&#xff…...

【Python进阶】Python中的数据库交互:使用SQLite进行本地数据存储

1、数据持久化与访问效率 数据持久化是指程序运行过程中产生的数据能够长期保存&#xff0c;即使程序关闭或系统重启后仍可读取和修改。通过数据库&#xff0c;我们可以确保数据持久化的同时&#xff0c;实现数据的快速访问。例如&#xff0c;银行系统需要实时更新账户余额&am…...

ZooKeeper单机、集群模式搭建教程

单点配置 ZooKeeper在启动的时候&#xff0c;默认会读取/conf/zoo.cfg配置文件&#xff0c;该文件缺失会报错。因此&#xff0c;我们需要在将容器/conf/挂载出来&#xff0c;在制定的目录下&#xff0c;添加zoo.cfg文件。 zoo.cfg logback.xml 配置文件的信息可以从二进制包…...

函数指针示例

目录&#xff1a; 代码&#xff1a; main.c #include <stdio.h> #include <stdlib.h>int Max(int x, int y); int Min(int x, int y);int main(int argc, char**argv) {int x,y;scanf("%d",&x);scanf("%d",&y);int select;printf(&q…...

vue如何实现组件切换

一、使用条件渲染 (v-if) <template><div><button click"currentView ComponentA">Show Component A</button><button click"currentView ComponentB">Show Component B</button><component-a v-if"curren…...

计算机视觉 1-8章 (硕士)

文章目录 零、前言1.先行课程&#xff1a;python、深度学习、数字图像处理2.查文献3.环境安装 第一章&#xff1a;概论1.计算机视觉的概念2.机器学习 第二章&#xff1a;图像处理相关基础1.图像的概念2.图像处理3.滤波器4.卷积神经网络CNN5.图像的多层表示&#xff1a;图像金字…...

整数唯一分解定理

整数唯一分解定理&#xff0c;也称为算术基本定理&#xff0c;是由德国数学家高斯在其著作《算术研究》中首次提出的。本文回顾整数唯一分解定理以及对应的几个重要结论。 一、整数唯一分解定理 整数唯一分解定理&#xff0c;也称为算术基本定理&#xff0c;是数论中的一个重…...

Grass脚本2倍速多账号

前言&#xff0c;小编也是第一次撸空投&#xff0c;我是抱着试一试的态度&#xff0c;梦想总是要有的万一白嫖了呢 Grass 是什么&#xff1f; Grass 扩展程序是一款创新的工具&#xff0c;它可以帮助您释放未使用的网络资源的力量。 通过分享您的剩余带宽&#xff0c;您可以赚…...

15分钟学 Go 第 56 天:架构设计基本原则

第56天&#xff1a;架构设计基本原则 学习目标 理解和掌握基本的架构设计原则&#xff0c;以提升软件系统的可维护性、可扩展性和可重用性。 内容提纲 架构设计原则概述常见架构设计原则 单一职责原则 (SRP)开放/封闭原则 (OCP)里氏替换原则 (LSP)接口分离原则 (ISP)依赖反…...

HTML5 Video(视频)

HTML5 Video(视频) HTML5视频是现代网页设计中不可或缺的一部分,它允许开发者在网页中嵌入视频内容,为用户提供丰富多样的媒体体验。本文将深入探讨HTML5视频的各个方面,包括其基本用法、支持的格式、自定义播放器、浏览器兼容性以及最佳实践。 一、HTML5视频的基本用法 …...

开源模型应用落地-qwen模型小试-Qwen2.5-7B-Instruct-tool usage入门-串行调用多个tools(三)

一、前言 Qwen-Agent 是一个利用开源语言模型Qwen的工具使用、规划和记忆功能的框架。其模块化设计允许开发人员创建具有特定功能的定制代理,为各种应用程序提供了坚实的基础。同时,开发者可以利用 Qwen-Agent 的原子组件构建智能代理,以理解和响应用户查询。 本篇将介绍如何…...

MySQL:表设计

表的设计 从需求中获得类&#xff0c;类对应到数据库中的实体&#xff0c;实体在数据库中表现为一张一张的表&#xff0c;类中的属性就对应着表中的字段&#xff08;也就是表中的列&#xff09; 表设计的三大范式&#xff1a; 在数据库设计中&#xff0c;三大范式&#xff0…...

173. 二叉搜索树迭代器【 力扣(LeetCode) 】

文章目录 零、原题链接一、题目描述二、测试用例三、解题思路四、参考代码 零、原题链接 173. 二叉搜索树迭代器 一、题目描述 实现一个二叉搜索树迭代器类BSTIterator &#xff0c;表示一个按中序遍历二叉搜索树&#xff08;BST&#xff09;的迭代器&#xff1a; BSTIterato…...

大三学生实习面试经历(1)

最近听了一位学长的建议&#xff0c;不能等一切都准备好再去开始&#xff0c;于是就开始了简历投递&#xff0c;恰好简历过了某小厂的初筛&#xff0c;开启了线上面试&#xff0c;记录了一些问题&#xff1a; &#xff08;通过面试也确实了解到了自己在某些方面确实做的还不够…...

【论文复现】STM32设计的物联网智能鱼缸

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀STM32设计的物联网智能鱼缸 【1】项目功能介绍【2】设计需求总结【3】项目硬件模块组成 1.2 设计思路【1】整体设计思路【2】ESP8266工作模式…...

常见长选项和短选项对应表

长选项和短选项的等效形式 在命令行工具中&#xff0c;这种长选项&#xff08;如--delete&#xff09;和短选项&#xff08;如-d&#xff09;等效的情况很常见。例如--verbose和-v&#xff08;用于输出详细信息&#xff09;&#xff0c;--quiet和-q&#xff08;用于安静模式&a…...

Ubuntu24 上安装搜狗输入法

link 首先在终端中依次输入以下代码 sudo apt update sudo apt install fcitx 找到语言支持 在终端中依次输入 sudo cp /usr/share/applications/fcitx.desktop /etc/xdg/autostart/ sudo apt purge ibus 进入网页 搜狗输入法linux-首页​ shurufa.sogou.com/linux 找到刚才下…...

【AI图像生成网站Golang】JWT认证与令牌桶算法

AI图像生成网站 目录 一、项目介绍 二、雪花算法 三、JWT认证与令牌桶算法 四、项目架构 五、图床上传与图像生成API搭建 六、项目测试与调试(等待更新) 三、JWT认证与令牌桶算法 在现代后端开发中&#xff0c;用户认证和接口限流是确保系统安全性和性能的两大关键要素…...

关于强化学习的一份介绍

在这篇文章中&#xff0c;我将介绍与强化学习有关的一些东西&#xff0c;具体包括相关概念、k-摇臂机、强化学习的种类等。 一、基本概念 所谓强化学习就是去学习&#xff1a;做什么才能使得数值化的收益信号最大化。学习者不会被告知应该采取什么动作&#xff0c;而是必须通…...

Python3.11.9+selenium,获取图片验证码以及输入验证码数字

Python3.11.9+selenium,获取图片验证码以及输入验证码数字 1、遇到问题:登录或修改密码需要验证码 2、解决办法: 2.1、安装ddddocr pip install ddddocr 2.2、解析验证码函数 import ddddocr def get_capcha_text():#获取验证码图片ele_pic = driver.find_element(By.XPAT…...

Flutter:事件队列,异步操作,链式调用。

Flutter分2种队列 1、事件队列&#xff1a;异步的处理&#xff0c;按顺序执行 import package:flutter/material.dart; main(){testFuture1();testFuture2(); }// 按顺序执行处理A->B->C testFuture1() async {Future((){return 任务A;}).then((value){print(按顺序执行&…...

从零开始学习 sg200x 多核开发之 eth0 自动使能并配置静态IP

前文提到 sophpi 默认没有使能有线网络&#xff0c;需要手工配置&#xff1a; [rootsg200x]~# ifconfig eth0 up [rootsg200x]~# udhcpc -i eth0 [rootsg200x]~# ifconfig eth0 Link encap:Ethernet HWaddr EA:BD:18:08:1E:87 inet addr:192.168.188.142 Bcast:192.1…...

《TCP/IP网络编程》学习笔记 | Chapter 11:进程间通信

《TCP/IP网络编程》学习笔记 | Chapter 11&#xff1a;进程间通信 《TCP/IP网络编程》学习笔记 | Chapter 11&#xff1a;进程间通信进程间通信的基本概念通过管道实现进程间通信通过管道进行进程间双向通信 运用进程间通信习题&#xff08;1&#xff09;什么是进程间通信&…...

开源模型应用落地-qwen模型小试-Qwen2.5-7B-Instruct-tool usage入门-集成心知天气(二)

一、前言 Qwen-Agent 是一个利用开源语言模型Qwen的工具使用、规划和记忆功能的框架。其模块化设计允许开发人员创建具有特定功能的定制代理,为各种应用程序提供了坚实的基础。同时,开发者可以利用 Qwen-Agent 的原子组件构建智能代理,以理解和响应用户查询。 本篇将介绍如何…...

通过声纹或者声波来切分一段音频

通过声纹识别或基于声波特征的模型&#xff0c;确实可以帮助切分一段音频并区分出不同讲话者的语音片段。这种技术被称为 基于声纹的语音分割 或 基于说话人识别的音频分割。其核心原理是利用每个说话者的 声纹特征&#xff08;即每个人独特的语音特征&#xff09;来识别和切分…...