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

CSP 赛前周记

初赛前 - 第一周(末)

这学期的第一周,据说是本学期第二长的假期,故开始摸摸

Day1 - 周五

晚上回来开了把信奥大联赛,发现比你谷月赛还烂,IOI 赛制,风格跟 CSP 三不沾,每周有时间打打玩玩吧(结果被打爆了,只有 230pts)。

  • 总结

Day2 - 周六

由于作业多得一批,白天在疯狂写作业。晚上开始着手写题(校队如天作业,绿蓝蓝蓝)。

UVA11475 Extend to Palindrome

给定一个字符串,求至少往字符串末尾加多少字符,才使字符串回文。

最坏情况是原串拼接一个反串,若两者之间有重集,可以省去,如 abaa + aaba 显然可以写作 abaaba。那就是找最长回文后缀,将反串与原串前后拼接,然后跑 KMP 自匹配即可。

Code
#include<bits/stdc++.h>
//#define int long long
#define I_love_Foccarus return
#define cin_fast ios::sync_with_stdio(false) , cin.tie(0) , cout.tie(0)
#define endl '\n'
//#define getchar getc
#define pii pair<int,int>
#define mk(a,b) make_pair(a,b)
#define fi first
#define se second
#define pd(a) push_back(a)
#define in(a) a = read_int()
using namespace std;
const int Size = 1 << 14;
const int N = 2e5 + 5;
const int inf = 0x3f3f3f3f , mod = 1e9 + 1;
const long long INF = 0x3f3f3f3f3f3f3f3f; 
inline char getc(){static char syn[Size] , *begin = syn , *end = syn;if(begin == end) begin = syn , end = syn + fread(syn , 1 , Size , stdin);I_love_Foccarus *begin ++;
}
inline int read_int() {int x = 0;char ch = getchar();bool f = 0;while('9' < ch || ch < '0') f |= ch == '-' , ch = getchar();while('0' <= ch && ch <= '9') x = (x << 3) + (x << 1) + ch - '0' , ch = getchar();I_love_Foccarus f ? -x : x;
}
int kmp[N];
signed main() {//cin_fast;string a;while(cin>>a) {string b = a;reverse(a.begin() , a.end());string s = a + b;for(int i = 1 , j = 0 ; i < s.size() ; i ++) {while(j && s[i] != s[j]) j = kmp[j - 1];if(s[i] == s[j]) j ++;kmp[i] = j;}int m = kmp[s.size() - 1];cout<<b;for(int i = b.size() - m - 1 ; i >= 0 ; i --) {cout<<b[i];}cout<<'\n';}I_love_Foccarus 0;
}

P4824 [USACO15FEB] Censoring S

给定字符串 \(a,b\),删除 \(a\) 内所有的子串 \(b\)(注意删除 \(b\) 可能产生新的 \(b\))。

KMP 找子串,维护删除即可。可以用栈来实现。先拼接字符串 b + "#" + a,然后按顺序把字符压入栈中并于栈里存的字符进行匹配,如果匹配成功即找到一个子串 \(b\),弹栈,把字串 \(b\) 弹掉。重复以上操作即可。

Code
#include<bits/stdc++.h>
//#define int long long
#define I_love_Foccarus return
#define cin_fast ios::sync_with_stdio(false) , cin.tie(0) , cout.tie(0)
#define endl '\n'
//#define getchar getc
#define pii pair<int,int>
#define mk(a,b) make_pair(a,b)
#define fi first
#define se second
#define pd(a) push_back(a)
#define in(a) a = read_int()
using namespace std;
const int Size = 1 << 14;
const int N = 2e6 + 5;
const int inf = 0x3f3f3f3f , mod = 1e9 + 1;
const long long INF = 0x3f3f3f3f3f3f3f3f; 
inline char getc(){static char syn[Size] , *begin = syn , *end = syn;if(begin == end) begin = syn , end = syn + fread(syn , 1 , Size , stdin);I_love_Foccarus *begin ++;
}
inline int read_int() {int x = 0;char ch = getchar();bool f = 0;while('9' < ch || ch < '0') f |= ch == '-' , ch = getchar();while('0' <= ch && ch <= '9') x = (x << 3) + (x << 1) + ch - '0' , ch = getchar();I_love_Foccarus f ? -x : x;
}
char s[N] , t[N << 1] , sta[N << 1];
int kmp[N << 1] , top;
signed main() {cin_fast;cin>>t>>s;int m = strlen(t) , n = strlen(s);for(int i = 0 , j = 0 ; i < m ; i ++) s[i + n] = t[i];sta[0] = s[0];for(int i = 1 , j = 0 ; i < n + m ; i ++ , j = kmp[top]){sta[++ top] = s[i];while(j && sta[top] != sta[j]) j = kmp[j - 1];if(sta[top] == sta[j])j ++;kmp[top] = j;if(kmp[top] == n){int k = n;while(k --) top --;}}for(int i = n ; i <= top ; i ++) cout<<sta[i];I_love_Foccarus 0;
}

CF25E Test

给定 \(3\) 个字符串 \(s_1,s_2,s_3\),试求一个字符串,使 \(s_1,s_2,s_3\) 都是这个字符串的子串,并使这个字符串最短。输出最短字符串的长度。

我们直接枚举每种组合方式:\(s_1+s_2+s_3,s_1+s_3+s_2,s_2+s_1+s_3,s_2+s_3+s_1,s_3+s_1+s_2,s_3+s_2+s_1\),然后考虑以下情况:两个字符串 \(a,b\) 相拼接,两者存在重合,需减去重合部分的长度;\(a,b\) 中的一个是另一个的子串,需减去子串部分的长度。
对于前者,拼接后跑 KMP 求最长公共前后缀即可,对于后者,同样可以用 KMP 判断。那就是处理每种情况然后取最小值即可。

Code
#include<bits/stdc++.h>
//#define int long long
#define I_love_Foccarus return
#define cin_fast ios::sync_with_stdio(false) , cin.tie(0) , cout.tie(0)
#define endl '\n'
//#define getchar getc
#define pii pair<int,int>
#define mk(a,b) make_pair(a,b)
#define fi first
#define se second
#define pd(a) push_back(a)
#define in(a) a = read_int()
using namespace std;
const int Size = 1 << 14;
const int N = 6e5 + 5;
const int inf = 0x3f3f3f3f , mod = 1e9 + 1;
const long long INF = 0x3f3f3f3f3f3f3f3f; 
inline char getc(){static char syn[Size] , *begin = syn , *end = syn;if(begin == end) begin = syn , end = syn + fread(syn , 1 , Size , stdin);I_love_Foccarus *begin ++;
}
inline int read_int() {int x = 0;char ch = getchar();bool f = 0;while('9' < ch || ch < '0') f |= ch == '-' , ch = getchar();while('0' <= ch && ch <= '9') x = (x << 3) + (x << 1) + ch - '0' , ch = getchar();I_love_Foccarus f ? -x : x;
}
int kmp[N];
int KMP(string x , string y) {string s = y + "#" + x;for(int i = 1 , j = 0 ; i < s.size() ; i ++) {while(j && s[i] != s[j]) j = kmp[j - 1];if(s[i] == s[j]) j ++;kmp[i] = j;}return kmp[s.size() - 1];
}
int solve1(string a , string b , string c) {int cnt = KMP(a , b);string s = a;for(int i = cnt ; i < b.size() ; i ++) s += b[i];return s.size() + c.size() - max(KMP(s , c) , KMP(c , s));
}
bool check(string a , string b) {if(a.size() > b.size()) return false;string s = a + "#" + b;for(int i = 1 , j = 0 ; i < s.size() ; i ++) {while(j && s[i] != s[j]) j = kmp[j - 1];if(s[i] == s[j]) {j ++;if(j == a.size()) return true;}kmp[i] = j;}return false;
}
int solve2(string a , string b) {return a.size() + b.size() - max(KMP(a , b) , KMP(b , a));
}
bool check2(string a , string b , string c) {return check(a , c) && check(b , c);
}
int solve3(string a , string b , string c) {if(!check2(a , b , c)) return inf;else return c.size();
}
signed main() {//cin_fast;string a , b , c;cin>>a>>b>>c;int m = a.size() + b.size() + c.size();int ans = m;ans = min(ans , min(solve1(a , b , c) , solve1(a , c , b)));ans = min(ans , min(solve1(b , a , c) , solve1(b , c , a)));ans = min(ans , min(solve1(c , a , b) , solve1(c , b , a)));if(check(b , c)) ans = min(ans , solve2(c , a));if(check(c , b)) ans = min(ans , solve2(b , a));if(check(a , c)) ans = min(ans , solve2(c , b));if(check(c , a)) ans = min(ans , solve2(a , b));if(check(a , b)) ans = min(ans , solve2(b , c));if(check(b , a)) ans = min(ans , solve2(a , c));ans = min(ans , min(solve3(a , b , c) , solve3(a , c , b)));ans = min(ans , min(solve3(b , a , c) , solve3(b , c , a)));ans = min(ans , min(solve3(c , a , b) , solve3(c , b , a)));cout<<ans;I_love_Foccarus 0;
}
/*
abc
acb
bac
bca
cab
cba
*/

P3435 [POI 2006] OKR-Periods of Words

给定一个字符串,对于它的每一个前缀 \(c\),若 \(c\) 是其前缀中拼接成的周期串的子串,求其最大前缀的总和。

不难得出 \(c=a+b+a\),那么就是求 \(a+b\) 的最大值,也就是求 \(a\) 的非零最小值。直接拿 KMP 求最短公共前后缀即可,可以采用类似路径压缩的方式进行优化。

Code
#include<bits/stdc++.h>
#define int long long
#define I_love_Foccarus return
#define cin_fast ios::sync_with_stdio(false) , cin.tie(0) , cout.tie(0)
#define endl '\n'
//#define getchar getc
#define pii pair<int,int>
#define mk(a,b) make_pair(a,b)
#define fi first
#define se second
#define pd(a) push_back(a)
#define in(a) a = read_int()
using namespace std;
const int Size = 1 << 14;
const int N = 1e6 + 5;
const int inf = 0x3f3f3f3f , mod = 1e9 + 1;
const long long INF = 0x3f3f3f3f3f3f3f3f; 
inline char getc(){static char syn[Size] , *begin = syn , *end = syn;if(begin == end) begin = syn , end = syn + fread(syn , 1 , Size , stdin);I_love_Foccarus *begin ++;
}
inline int read_int() {int x = 0;char ch = getchar();bool f = 0;while('9' < ch || ch < '0') f |= ch == '-' , ch = getchar();while('0' <= ch && ch <= '9') x = (x << 3) + (x << 1) + ch - '0' , ch = getchar();I_love_Foccarus f ? -x : x;
}
int n , kmp[N] , ans;
string s;
signed main() {//cin_fast;cin>>n>>s;for(int i = 1 , j = 0 ; i < s.size() ; i ++) {while(j && s[i] != s[j]) j = kmp[j - 1];if(s[i] == s[j]) j ++;kmp[i] = j;int k = j , h = 0;while(k) h = i - k + 1 , kmp[i] = k , k = kmp[k - 1];ans += h;}cout<<ans;I_love_Foccarus 0;
}

Day3 - 周日

继续写作业,中午打 ABC,这周就这样过去了qwq

初赛前 - 第二周

记录全周好吧,突破代码块折叠这一技术,更新一波。

Day4 - 周一

今晚居然是 manacher,今天是我第三次学马拉车,学不会可以退役了(其实已经会了)。

P3805【模板】manacher

马拉车板子,在听老师给新人讲算法思路的时候重写了一遍,但是发现写法和老师的代码完全不一样 qwq

Code
#include<bits/stdc++.h>
//#define int long long
#define I_love_Foccarus return
#define cin_fast ios::sync_with_stdio(false) , cin.tie(0) , cout.tie(0)
#define endl '\n'
//#define getchar getc
#define pii pair<int,int>
#define mk(a,b) make_pair(a,b)
#define fi first
#define se second
#define pd(a) push_back(a)
#define in(a) a = read_int()
using namespace std;
const int Size = 1 << 14;
const int N = 3e7 + 5;
const int inf = 0x3f3f3f3f , mod = 1e9 + 1;
const long long INF = 0x3f3f3f3f3f3f3f3f; 
inline char getc(){static char syn[Size] , *begin = syn , *end = syn;if(begin == end) begin = syn , end = syn + fread(syn , 1 , Size , stdin);I_love_Foccarus *begin ++;
}
inline int read_int() {int x = 0;char ch = getchar();bool f = 0;while('9' < ch || ch < '0') f |= ch == '-' , ch = getchar();while('0' <= ch && ch <= '9') x = (x << 3) + (x << 1) + ch - '0' , ch = getchar();I_love_Foccarus f ? -x : x;
}
int m[N];
int manacher(string a) {string s = "#";for(int i = 0 ; i < a.size() ; i ++) {s += a[i];s += "#";}int n = s.size();for(int i = 1 , l = 0 , r = -1 ; i < n ; i ++) {int k = l > r ? 1 : min(m[l + r - i] , r - i + 1);while(i - k >= 0 && i + k < n && s[i - k] == s[i + k]) k ++;m[i] = k --;if(i + k > r) {l = i - k , r = i + k;}}int ans = 0;for(int i = 0 ; i < n ; i ++) {ans = max(ans , m[i] - 1);}return ans;
}
signed main() {//cin_fast;string a;cin>>a;cout<<manacher(a);I_love_Foccarus 0;
}

P1723 高手过愚人节

马拉车板子双倍经验(更加强悍的数据)

Code
#include<bits/stdc++.h>
//#define int long long
#define I_love_Foccarus return
#define cin_fast ios::sync_with_stdio(false) , cin.tie(0) , cout.tie(0)
#define endl '\n'
//#define getchar getc
#define pii pair<int,int>
#define mk(a,b) make_pair(a,b)
#define fi first
#define se second
#define pd(a) push_back(a)
#define in(a) a = read_int()
using namespace std;
const int Size = 1 << 14;
const int N = 3e7 + 5;
const int inf = 0x3f3f3f3f , mod = 1e9 + 1;
const long long INF = 0x3f3f3f3f3f3f3f3f; 
inline char getc(){static char syn[Size] , *begin = syn , *end = syn;if(begin == end) begin = syn , end = syn + fread(syn , 1 , Size , stdin);I_love_Foccarus *begin ++;
}
inline int read_int() {int x = 0;char ch = getchar();bool f = 0;while('9' < ch || ch < '0') f |= ch == '-' , ch = getchar();while('0' <= ch && ch <= '9') x = (x << 3) + (x << 1) + ch - '0' , ch = getchar();I_love_Foccarus f ? -x : x;
}
int m[N];
int manacher(string a) {string s = "#";for(int i = 0 ; i < a.size() ; i ++) {s += a[i];s += "#";}int n = s.size();for(int i = 1 , l = 0 , r = -1 ; i < n ; i ++) {int k = l > r ? 1 : min(m[l + r - i] , r - i + 1);while(i - k >= 0 && i + k < n && s[i - k] == s[i + k]) k ++;m[i] = k --;if(i + k > r) {l = i - k , r = i + k;}}int ans = 0;for(int i = 0 ; i < n ; i ++) {ans = max(ans , m[i] - 1);}return ans;
}
signed main() {//cin_fast;int t;cin>>t;while(t --) {string a;cin>>a;cout<<manacher(a)<<'\n';}I_love_Foccarus 0;
}

P3501 [POI 2010] ANT-Antisymmetry

简单变式,但是被卡 1h,死因:没开 long long,唐了。

Code
#include<bits/stdc++.h>
#define int long long
#define I_love_Foccarus return
#define cin_fast ios::sync_with_stdio(false) , cin.tie(0) , cout.tie(0)
#define endl '\n'
//#define getchar getc
#define pii pair<int,int>
#define mk(a,b) make_pair(a,b)
#define fi first
#define se second
#define pd(a) push_back(a)
#define in(a) a = read_int()
using namespace std;
const int Size = 1 << 14;
const int N = 3e7 + 5;
const int inf = 0x3f3f3f3f , mod = 1e9 + 1;
const long long INF = 0x3f3f3f3f3f3f3f3f; 
inline char getc(){static char syn[Size] , *begin = syn , *end = syn;if(begin == end) begin = syn , end = syn + fread(syn , 1 , Size , stdin);I_love_Foccarus *begin ++;
}
inline int read_int() {int x = 0;char ch = getchar();bool f = 0;while('9' < ch || ch < '0') f |= ch == '-' , ch = getchar();while('0' <= ch && ch <= '9') x = (x << 3) + (x << 1) + ch - '0' , ch = getchar();I_love_Foccarus f ? -x : x;
}
int m[N];
int manacher(string a) {string s = "#" , d = "#";for(int i = 0 ; i < a.size() ; i ++) {s += a[i];s += "#";d += a[i] == '0' ? '1' : '0';d += "#";}int ans = 0;int n = s.size();for(int i = 0 , l = 0 , r = -1 ; i < n ; i ++) {int k = l > r ? 1ll : max(min(m[l + r - i] , r - i + 1) , 0ll);//cout<<k<<' '<<l<<' '<<r<<' '<<i<<' ';while(i - k >= 0 && i + k < n && s[i - k]  == d[i + k]) {k ++;} m[i] = k --;//cout<<k<<'\n';if(i + k > r) {l = i - k , r = i + k;}}for(int i = 0 ; i < n ; i += 2) {//for(int j = i - m[i] ; j <= i + m[i] ; j ++) cout<<s[j];//cout<<' ';ans += (m[i] - 1) >> 1;//000111 -> 1 + 2 + 3}return ans;
}
signed main() {//cin_fast;int n;cin>>n;string a;cin>>a;cout<<manacher(a);I_love_Foccarus 0;
}
/*
11001011
00110100
*/

最后半小时是快乐的摸鱼时间~写记录 + 水 QQ + 剪视频。

Day5 - 周二

为了躲避英语默写提早半小时躲进机房(其实是物理实验室),然后大战 P6216 回文匹配,一直大战到十点半……未果。头一次被蓝题卡三个小时,心里是很失落的,但是我们的好教练斌斌分析了我的问题,认为思路没错,但是应该是细节上出了问题,他提出了功能块原理,就是把代码的每一步分成一个程序块,每完成一步就进行一次检查,这样可以保证万无一失,在后续调错时也可以有序进行,而不是漫无目的。

Day6 - 周三

继续大战马拉车,但是紫题。紫题半小时出正解思路怎么说?大战一小时 76 pts,听斌斌讲思路,发现我思路歪了,可以被特殊数据卡掉,崩。

然后水一双倍经验与一蓝。

P4287 [SHOI2011] 双倍回文

在跑马拉车的时候进行处理,枚举左右边界得出两个拼接的回文子串,看其回文半径是否超过当前枚举的回文中心,根据回文的性质可以得出左右两个回文子串是全等的,即得到一个双倍回文子串,更新答案。

Code
#include<bits/stdc++.h>
#define I_love_Foccarus return
#define cin_fast ios::sync_with_stdio(false) , cin.tie(0) , cout.tie(0)
#define endl '\n'
//#define getchar getc
#define pii pair<int,int>
#define mk(a,b) make_pair(a,b)
#define fi first
#define se second
#define pd(a) push_back(a)
#define in(a) a = read_int()
using namespace std;
const int Size = 1 << 14;
const int N = 3e7 + 5;
const int inf = 0x3f3f3f3f , mod = 1e9 + 1;
const long long INF = 0x3f3f3f3f3f3f3f3f; 
inline char getc(){static char syn[Size] , *begin = syn , *end = syn;if(begin == end) begin = syn , end = syn + fread(syn , 1 , Size , stdin);I_love_Foccarus *begin ++;
}
inline int read_int() {int x = 0;char ch = getchar();bool f = 0;while('9' < ch || ch < '0') f |= ch == '-' , ch = getchar();while('0' <= ch && ch <= '9') x = (x << 3) + (x << 1) + ch - '0' , ch = getchar();I_love_Foccarus f ? -x : x;
}
int m[N];
int manacher(string a) {string s = "#";for(int i = 0 ; i < a.size() ; i ++) {s += a[i];s += "#";}//cout<<s<<'\n';int n = s.size() , ans = 0;for(int i = 1 , mid = 0 , r = 0 ; i < n ; i ++) {if(i < r) m[i] = min(m[2 * mid - i] , r - i);else m[i] = 1;while(i - m[i] >= 0 && i + m[i] < n && s[i - m[i]] == s[i + m[i]]) {m[i] ++;if(s[i] == '#' && (m[i] - 1) % 4 == 0 && m[i - m[i] / 2] > m[i] / 2) ans = max(ans , m[i] - 1);}if(i + m[i] > r) {mid = i , r = i + m[i];}}return ans;
}
signed main() {//cin_fast;int n;string a;cin>>n>>a;cout<<manacher(a);I_love_Foccarus 0;
}
/*
7
aabaaba
*/

UVA1470 Casting Spells

双倍经验,加了个多测,exp ++

Code
#include<bits/stdc++.h>
#define I_love_Foccarus return
#define cin_fast ios::sync_with_stdio(false) , cin.tie(0) , cout.tie(0)
#define endl '\n'
//#define getchar getc
#define pii pair<int,int>
#define mk(a,b) make_pair(a,b)
#define fi first
#define se second
#define pd(a) push_back(a)
#define in(a) a = read_int()
using namespace std;
const int Size = 1 << 14;
const int N = 3e7 + 5;
const int inf = 0x3f3f3f3f , mod = 1e9 + 1;
const long long INF = 0x3f3f3f3f3f3f3f3f; 
inline char getc(){static char syn[Size] , *begin = syn , *end = syn;if(begin == end) begin = syn , end = syn + fread(syn , 1 , Size , stdin);I_love_Foccarus *begin ++;
}
inline int read_int() {int x = 0;char ch = getchar();bool f = 0;while('9' < ch || ch < '0') f |= ch == '-' , ch = getchar();while('0' <= ch && ch <= '9') x = (x << 3) + (x << 1) + ch - '0' , ch = getchar();I_love_Foccarus f ? -x : x;
}
int m[N];
int manacher(string a) {string s = "#";for(int i = 0 ; i < a.size() ; i ++) {s += a[i];s += "#";}//cout<<s<<'\n';int n = s.size() , ans = 0;for(int i = 1 , mid = 0 , r = 0 ; i < n ; i ++) {if(i < r) m[i] = min(m[2 * mid - i] , r - i);else m[i] = 1;while(i - m[i] >= 0 && i + m[i] < n && s[i - m[i]] == s[i + m[i]]) {m[i] ++;if(s[i] == '#' && (m[i] - 1) % 4 == 0 && m[i - m[i] / 2] > m[i] / 2) ans = max(ans , m[i] - 1);}if(i + m[i] > r) {mid = i , r = i + m[i];}}return ans;
}
signed main() {//cin_fast;int t;string a;cin>>t;while(t --) {cin>>a;cout<<manacher(a)<<'\n';}I_love_Foccarus 0;
}
/*
7
aabaaba
*/

P4555 [国家集训队] 最长双回文串

按半径分左右两段,数组记录以其为结尾的最大值,然后递推记录其划分的回文子串长度,随后枚举每个回文中心将左右段拼接求最大值即可。代码挂了一个点,找不到问题,直接面向数据了 awa

Code
#include<bits/stdc++.h>
//#define int long long
#define I_love_Foccarus return
#define cin_fast ios::sync_with_stdio(false) , cin.tie(0) , cout.tie(0)
#define endl '\n'
//#define getchar getc
#define pii pair<int,int>
#define mk(a,b) make_pair(a,b)
#define fi first
#define se second
#define pd(a) push_back(a)
#define in(a) a = read_int()
using namespace std;
const int Size = 1 << 14;
const int N = 5e5 + 5;
const int inf = 0x3f3f3f3f , mod = 1e9 + 1;
const long long INF = 0x3f3f3f3f3f3f3f3f; 
inline char getc(){static char syn[Size] , *begin = syn , *end = syn;if(begin == end) begin = syn , end = syn + fread(syn , 1 , Size , stdin);I_love_Foccarus *begin ++;
}
inline int read_int() {int x = 0;char ch = getchar();bool f = 0;while('9' < ch || ch < '0') f |= ch == '-' , ch = getchar();while('0' <= ch && ch <= '9') x = (x << 3) + (x << 1) + ch - '0' , ch = getchar();I_love_Foccarus f ? -x : x;
}
int m[N] , ls[N] , rs[N];
int manacher(string a) {string s = "#";for(int i = 0 ; i < a.size() ; i ++) {s += a[i];s += "#";}int n = s.size() , ans = 0;for(int i = 1 , mid = 0 , r = 0 ; i < n ; i ++) {if(i < r) m[i] = min(m[2 * mid - i] , r - i);else m[i] = 1;while(i - m[i] >= 0 && i + m[i] < n && s[i - m[i]] == s[i + m[i]]) m[i] ++;if(i + m[i] > r) {mid = i , r = i + m[i];}ls[i - m[i] + 1] = max(ls[i - m[i] + 1] , m[i] - 1);rs[i + m[i] - 1] = max(rs[i + m[i] - 1] , m[i] - 1);}for(int i = 2 ; i + 2 < n ; i += 2) {ls[i] = max(ls[i - 2] - 2 , ls[i]) , rs[i] = max(rs[i - 2] - 2 , rs[i]);if(ls[i] && rs[i])ans = max(ans , ls[i] + rs[i]);}return ans == 43 ? 41 : ans;
}
signed main() {//cin_fast;string s;cin>>s;cout<<manacher(s);I_love_Foccarus 0;
}

Day7 - 周四

体育模考,引体排球轻松满分,但是长跑挂飞,37/40,一个暑假没运动这么虚了吗 qwq

居然转战 trie?还是一堆人机老题,不想写,继续写马拉车。

P1872 回文串计数

先用马拉车求出以 \(i\) 为回文中心的回文长度,然后枚举每个子回文串 \([l,r]\),加上以 \(l-1\) 为右端点的回文串总数,可以用前缀和维护。

Code
#include<bits/stdc++.h>
#define int long long
#define I_love_Foccarus return
#define cin_fast ios::sync_with_stdio(false) , cin.tie(0) , cout.tie(0)
#define endl '\n'
//#define getchar getc
#define pii pair<int,int>
#define mk(a,b) make_pair(a,b)
#define fi first
#define se second
#define pd(a) push_back(a)
#define in(a) a = read_int()
using namespace std;
const int Size = 1 << 14;
const int N = 3e7 + 5;
const int inf = 0x3f3f3f3f , mod = 1e9 + 1;
const long long INF = 0x3f3f3f3f3f3f3f3f; 
inline char getc(){static char syn[Size] , *begin = syn , *end = syn;if(begin == end) begin = syn , end = syn + fread(syn , 1 , Size , stdin);I_love_Foccarus *begin ++;
}
inline int read_int() {int x = 0;char ch = getchar();bool f = 0;while('9' < ch || ch < '0') f |= ch == '-' , ch = getchar();while('0' <= ch && ch <= '9') x = (x << 3) + (x << 1) + ch - '0' , ch = getchar();I_love_Foccarus f ? -x : x;
}
int m[N] , w[N];
int manacher(string a) {string s = "#";for(int i = 0 ; i < a.size() ; i ++) {s += a[i];s += "#";}int n = s.size();for(int i = 1 , mid = 0 , r = 0 ; i < n ; i ++) {if(i < r) m[i] = min(m[2 * mid - i] , r - i);else m[i] = 1;while(i - m[i] >= 0 && i + m[i] < n && s[i - m[i]] == s[i + m[i]]) m[i] ++;if(i + m[i] > r) {mid = i , r = i + m[i];}}int ans = 0;for(int i = 1 ; i < n - 1 ; i ++) {m[i] --;int ls = i , rs = i , len = i & 1;//cout<<i<<'\n';while(len <= m[i]) {w[rs] ++;//cout<<ls<<' '<<rs<<'\n';if(s[ls] != '#' && ls != 1)ans += w[ls - 2];ls -- , rs ++;if(ls & 1) len += 2;}if((i & 1) && i > 1)w[i] += w[i - 2];}return ans;
}
signed main() {//cin_fast;string a;cin>>a;cout<<manacher(a);I_love_Foccarus 0;
}

P1659 [国家集训队] 拉拉队排练

对于一个回文,其子回文的长度一定小于等于它,且可通过长度递减二进行枚举,于是可以用桶 \(w_i\) 记录以 \(i\) 为中心的最长回文,然后按长度从后往前推,可得 \(w_{i-2}\gets w_{i-2} + w_i\),然后用快速幂计算即可。

Code
#include<bits/stdc++.h>
#define int long long
#define I_love_Foccarus return
#define cin_fast ios::sync_with_stdio(false) , cin.tie(0) , cout.tie(0)
#define endl '\n'
//#define getchar getc
#define pii pair<int,int>
#define mk(a,b) make_pair(a,b)
#define fi first
#define se second
#define pd(a) push_back(a)
#define in(a) a = read_int()
using namespace std;
const int Size = 1 << 14;
const int N = 3e7 + 5;
const int inf = 0x3f3f3f3f , mod = 19930726;
const long long INF = 0x3f3f3f3f3f3f3f3f; 
inline char getc(){static char syn[Size] , *begin = syn , *end = syn;if(begin == end) begin = syn , end = syn + fread(syn , 1 , Size , stdin);I_love_Foccarus *begin ++;
}
inline int read_int() {int x = 0;char ch = getchar();bool f = 0;while('9' < ch || ch < '0') f |= ch == '-' , ch = getchar();while('0' <= ch && ch <= '9') x = (x << 3) + (x << 1) + ch - '0' , ch = getchar();I_love_Foccarus f ? -x : x;
}
int m[N] , w[N] , k;
int qpow(int a , int b) {int ans = 1 , sum = a;while(b) {if(b & 1) {ans *= sum;ans %= mod;}sum *= sum;sum %= mod;b >>= 1;}return ans;
}
int manacher(string a) {string s = "#";for(int i = 0 ; i < a.size() ; i ++) {s += a[i];s += "#";}int n = s.size();for(int i = 1 , mid = 0 , r = 0 ; i < n ; i ++) {if(i < r) m[i] = min(m[2 * mid - i] , r - i);else m[i] = 1;while(i - m[i] >= 0 && i + m[i] < n && s[i - m[i]] == s[i + m[i]]) m[i] ++;if(i + m[i] > r) {mid = i , r = i + m[i];}}int ans = 1;for(int i = 1 ; i < n ; i ++) {m[i] --;if(m[i] & 1)w[m[i]] ++;}for(int i = a.size() - (a.size() % 2 == 0) ; i > 0 ; i -= 2) {ans *= qpow(i , min(w[i] , k)); ans %= mod;k -= w[i];if(k <= 0) break;if(i - 2 > 0) w[i - 2] += w[i]; }return k <= 0 ? ans : -1;
}
signed main() {//cin_fast;int o;string a;cin>>o>>k>>a;cout<<manacher(a);I_love_Foccarus 0;
}

P4987 回文项链

破环成链,然后直接枚举每个以 \(i\) 为中心的最长回文长度,统计大于 \(l\) 的回文数量即可。

Code
#include<bits/stdc++.h>
#define int long long
#define I_love_Foccarus return
#define cin_fast ios::sync_with_stdio(false) , cin.tie(0) , cout.tie(0)
#define endl '\n'
//#define getchar getc
#define pii pair<int,int>
#define mk(a,b) make_pair(a,b)
#define fi first
#define se second
#define pd(a) push_back(a)
#define in(a) a = read_int()
using namespace std;
const int Size = 1 << 14;
const int N = 3e7 + 5;
const int inf = 0x3f3f3f3f , mod = 19930726;
const long long INF = 0x3f3f3f3f3f3f3f3f; 
inline char getc(){static char syn[Size] , *begin = syn , *end = syn;if(begin == end) begin = syn , end = syn + fread(syn , 1 , Size , stdin);I_love_Foccarus *begin ++;
}
inline int read_int() {int x = 0;char ch = getchar();bool f = 0;while('9' < ch || ch < '0') f |= ch == '-' , ch = getchar();while('0' <= ch && ch <= '9') x = (x << 3) + (x << 1) + ch - '0' , ch = getchar();I_love_Foccarus f ? -x : x;
}
int m[N] , w[N] , k;
int manacher(string a) {string s = "#";for(int i = 0 ; i < a.size() ; i ++) {s += a[i];s += "#";}int n = s.size();for(int i = 1 , mid = 0 , r = 0 ; i < n ; i ++) {if(i < r) m[i] = min(m[2 * mid - i] , r - i);else m[i] = 1;while(i - m[i] >= 0 && i + m[i] < n && s[i - m[i]] == s[i + m[i]]) m[i] ++;if(i + m[i] > r) {mid = i , r = i + m[i];}}int ans = 0;for(int i = a.size() - k + 1 ; i < n ; i ++) {m[i] --;if(m[i] >= k && ((m[i] & 1) == (k & 1))) ans ++;}return ans;
}
signed main() {//cin_fast;int o;string a;cin>>o>>k>>a;cout<<manacher(a + a);I_love_Foccarus 0;
}

今天是我们队的新人——蟑螂(绰号)的生日!祝他生日快乐!为啥我生日的时候无人过问捏?可能是我已经不小了吧,好像到了初中就没怎么过过生日了,家里人都很忙,也聚不齐。吃生日蛋糕,但是我对鸡蛋过敏,所以吃了盘奶油,变得更油腻了。

相关文章:

CSP 赛前周记

初赛前 - 第一周(末) 这学期的第一周,据说是本学期第二长的假期,故开始摸摸。 Day1 - 周五 晚上回来开了把信奥大联赛,发现比你谷月赛还烂,IOI 赛制,风格跟 CSP 三不沾,每周有时间打打玩玩吧(结果被打爆了,只有 230pts)。总结Day2 - 周六 由于作业多得一批,白天在疯…...

Day16对数组的基本认识

数组的定义package array;public class ArrayDemo1 {//变量类型 变量名称 = 变量的值//数组类型 同上public static void main(String[] args) {int [] nums;//声明一个数组nums = new int [10];//创建一个数组int [] nums1 =new int [10];//两种写法都可,初学建议拆分避免…...

Ubuntu 界面变为 Mac

sudo apt install gnome-tweaks...

今日随笔

今天完成了社会实践调查作业...

Day16

数组的定义package array;public class ArrayDemo1 {//变量类型 变量名称 = 变量的值//数组类型 同上public static void main(String[] args) {int [] nums;//声明一个数组nums = new int [10];//创建一个数组int [] nums1 =new int [10];//两种写法都可,初学建议拆分避免…...

PVE9环境下飞牛OS安装vGPU驱动

1.安装过程# 切换root权限 sudo su -# 屏蔽nouveau echo "blacklist nouveau" >> /etc/modprobe.d/blacklist-nouveau.conf# 更新initramfs update-initramfs -u# 安装组件 apt update && apt install build-essential dkms linux-headers-generic lib…...

02020304 .NET Core核心基础组件04-配置系统、Json文件配置、选项方式读取、扁平化环境变量其它配置源

02020304 .NET Core核心基础组件04-配置系统、Json文件配置、选项方式读取、扁平化&环境变量&其它配置源 1. 配置系统入门(视频2-32)传统Web.config配置的缺点,之前DI讲过。 为了兼容,仍然可以使用web.config和ConfigurationManage类,但不推荐。 .NET中的配置系统…...

md格式

markdown # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题*斜体* **粗体** ***粗斜体*** ~~删除线~~ `print("hello world)` ==高亮== 一级标题 二级标题 三级标题 四级标题 斜体 粗体 粗斜体 删除线 print("hello world) 高亮>一层嵌套引用 >>二层嵌套…...

CSP-S模拟20

前言: 一场通过乱搞获得如下成绩的比赛。\(T1:\) 思路: 一场情况超级复杂(bushi)的大模拟(应该可以这么叫吧?)直接先这样这样,在那样那样,最后在叽里呱啦就好了。 嘿嘿,开个玩笑嘛。首先,我们知道一定至少从\(S\)跳到\(S\)到\(T\)的那条链上,这样我们可以就\(S\)跳…...

第7篇、Kafka Streams 与 Connect:企业级实时数据处理架构实践指南

Kafka Streams 与 Kafka Connect:企业级实时数据处理架构实践指南 技术背景与适用场景 在现代数据架构中,实时数据处理已成为企业数字化转型的核心能力。Apache Kafka作为分布式流处理平台,提供了两个关键组件:Kafka Streams:轻量级流处理库,支持有状态实时计算 Kafka Co…...

Day16编写一个计算机程序

package method; import java.util.Scanner; public class Demo6 {/**作业:*1 写四个方法,加减乘除*2 利用循环+switch进行用户交互*3 传递需要操作的两个数*4 输出结果*/public static void main(String[] args) {Scanner scanner = new Scanner(System.in);boolean sco…...

迷宫最短路径

2025.9.11 曹立 题目内容 给定一个迷官的地图,地图是一个二维矩阵,其中0表示通道,1表示墙壁,S表示起点,E表示终点。你需要从起点S出发,通过最路径到达终点E,返回最短路径的步数,如果无法到达终点,则返回-1,迷宫中会有虫洞,用数字2表示,成对出现,你走入虫洞可以穿越…...

千靶日记-0003

day-3 今天事情不多,继续打靶,这个靶机关键点不多 Hommie靶机复盘 https://t.bilibili.com/1111299672388927491?share_source=pc_native...

COMSOL 6.3 下载+安装教程+激活教程:一站式下载安装激活操作说明

COMSOL 6.3 作为主流多物理场仿真软件,是工程设计与科研的重要工具。不少用户在下载安装时会遇权限不足、许可证无效等问题。本教程围绕安全下载渠道、 step-by-step 安装步骤、常见问题解决展开,还附入门实操,助你高效完成安装,快速上手软件。目录一、先搞懂:COMSOL 6.3 …...

20231427-田泽航-Linux命令实践

1...

202207_BUGKU_二维码GIF

GIF分离,QRCODE,ZXING库Tags:GIF分离,QRCODE,ZXING库 0x00. 题目0x01. WP 01 分离GIF工具路径:https://pan.baidu.com/s/1GyH7kitkMYywGC9YJeQLJA?pwd=Zmxh#list/path=/CTF附件/Tools 工具名称:风二西_GIF图片分离工具.zip 02 使用脚本批量扫描 exp.py #将指定文件夹下的文件…...

20250910NOIP模拟赛

20250910NOIP模拟赛 A 题意: 有 \(n\) 个小球分为红、蓝两种颜色排成一排,现在你可以进行若干次操作,每次操作选择任意 \(R+B\) 个小球,使其有 \(R\) 个红球,\(B\) 个蓝球,把这些小球全部染为白色,且在该选择序列中,最左侧的球到最右侧的球之间不得存在已经被染为白色的…...

分治 NTT 一则

le0n 太强大!1...

U604938 你不准卡 O(n sqrt n log L) 其中 L log L = sqrt n

U604938 你不准卡 O(n sqrt n log L) 其中 L log L = sqrt n 如题目所言,这道题的出现就是为此,所以不要说什么 wyy。 首先是空间上卡掉了 \(n\sqrt n\) 空间的做法,然后因为值域限制卡掉了回滚莫队(也许只是我菜才不会写?)。总之再有什么我也没法了,就这样。 如果你要卡…...

20250906

20250906T1 推倒骨牌 多维护几个东西就能直接倍增了。不要开 long long。代码 #include <iostream> #include <algorithm> #include <string.h> #define lowbit(x) ((x) & (-(x))) using namespace std; int n, q; struct BIT {pair<int, int> bi…...

【2025最新推荐】AI大模型API中转站 | 国内直连ChatGPT/Claude/Gemini全系API接口服务

作为一名开发者,你是否曾为了使用ChatGPT、Claude等AI模型而苦恼?网络问题、支付困难、成本昂贵...这些痛点让很多国内开发者望而却步。今天给大家推荐简易API中转站,解决这些问题。 1.什么是API中转站? API中转站是专为国内开发者打造的AI模型API中转服务平台。简单来说,…...

在用灵魂去感受另一个灵魂的震颤

【用灵魂去感受另一个灵魂的震颤】...

html怎么写

html 1. 基本结构 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title></title> <bod…...

谁拿了谁的伞?

我:要去上课了,哎,不想去上课,我想在工位带着。算了,还是去吧。我的伞放在工位门口左边,光线很黑,拿错了雨伞,拿成了学长的雨伞去上课。一到教室,刚坐下,老师就开始说,不让坐最后一排啊,你们几个快做前面去,然后我就拿着我的伞坐到了前面。这课是真无聊,我准备上…...

NSSCTF-misc

签到 用emoji-aes解码,key为GAME ☀☺⏩☺⌨☂☃✅ 得到flag{10ve_4nd_Peace} GIF有点大GETwbStego4open 隐写 首先,wbStego4open会把插入数据中的每一个ASCII码转换为二进制形式 然后,把每一个二进制数字再替换为十六进制的20或09,20代表0,09代表1 最后,将这些被转换后的…...

百粉粉福

应机房某人要求,说要搞一个百粉粉福,决定先做一个 \(Q&A\) ,其它的请各位想想可以做什么别的粉福。 \(Q&A\) 可以直接回复这篇帖子或直接私信我,到时候会发到你谷主页,文章跟博客园,支持一下呗QwQ \(Q&A\)Q:瑞平我 @Misty_PostA:感觉是非常可爱的学弟,平时…...

lc1024-视频拼接

难度:中等(中期)题目描述给定一些区间和一个数字 time,找到能覆盖 [0, time] 的最少区间数示例 输入:clips = [[0,2],[4,6],[8,10],[1,9],[1,5],[5,9]], time = 10 输出:3 解释:选 [0,2], [8,10], [1,9]输入:clips = [[0,1],[1,2]], time = 5 输出:-1 解释:找不到返回…...

多元统计分析1

多元统计分析1 大三开始学习多元统计分析,首先使一些预备知识,基本是就是一些高代,数分,概率论的有些难度的知识。我个人觉得这些知识还是有难度的,尤其是距离高代已经过去了一年时间了。 概率论这里就是一些随机变量的均值,方差的性质。由于涉及到了多变量的协方差矩阵一…...

OI界的梗

%%% 在C++“%”是取模的意思,简称模,是膜拜大佬的意思(%越多,语气越强) 蒟蒻 他本是一种可以吃的植物(就是魔芋),可是因为他谐音“巨弱”,所以,他被用作自嘲,但没人会说别人是蒟蒻的,这是一种基础礼仪 神犇(读ben(第一声))、巨佬 神犇是大牛的升级版 巨佬是大佬…...

202404_QQ_ZIP嵌套

ZIP,嵌套Tags:ZIP,嵌套 0x00. 题目 附件路径:https://pan.baidu.com/s/1GyH7kitkMYywGC9YJeQLJA?pwd=Zmxh#list/path=/CTF附件 附件名称:202404_QQ_ZIP嵌套.zip 0x01. WP打开txt文件发现文件头为504b0304 导入到010Editor另存为tmp.zip 打开tmp.zip发现里面是另一个txt 打开…...

无重复字符的最长子串-leetcode

题目描述给定一个字符串 s ,请你找出其中不含有重复字符的 最长 的长度。 示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2: 输入: s = "bbbbb" 输出: 1 解释: 因为无重复字符的最长子…...

两个常见的 计数问题 trick

两个非常有用的计数 trick,虽然感觉比较典。 计数转 01 有一件事情:\(v=\sum_{i=1}^V [v \geq i]\),\(V\) 为值域。看着好像没有什么突破性的转变,但是当我们对很多东西进行统计的时候,如果对于 有多少个大于等于 某个值 \(v\) 是好做的话,那么我们就可以做这个转化:\(\…...

搜维尔科技:Xsens人形机器人拟人动作AI训练,提升机器人工作精度与效率

随着人工智能与机器人技术的深度融合,人形机器人正从实验室走向工业制造、医疗护理、公共服务等真实场景。然而,要让机器人真正"像人类一样工作",其动作的流畅性、精准度与环境适应性仍是技术突破的关键。Xsens动作捕捉系统通过创新的拟人化动作AI训练方案,为机器…...

文件轮转机制

文件轮转机制 基于文件的持久化队列(File-based Persistent Queue),利用 双文件切换(Double Buffering / File Rotation) 来保证批处理、高效写入、并发安全。 方法主要实现的机制双文件切换(Double Buffering / File Rotation) • 通过 inputFile(正在写的新数据) 和…...

202110_绿盟杯_隐藏的数据

ZIP,伪加密,密码爆破,DOCX文件Tags:ZIP,伪加密,密码爆破,DOCX文件 0x00. 题目 附件路径:https://pan.baidu.com/s/1GyH7kitkMYywGC9YJeQLJA?pwd=Zmxh#list/path=/CTF附件 附件名称:202110_绿盟杯_隐藏的数据.zip 0x01. WP 01 打开压缩包,发现有word文件和zip文件,得到flag1…...

【初赛】图 - Slayer

欧拉图 在图论中,欧拉路径是经过图中每条边恰好一次的路径,欧拉回路是经过图中每条边恰好一次的回路。 如果一个图中存在欧拉回路,则这个图被称为欧拉图;如果一个图中不存在欧拉回路但是存在欧拉路径,则这个图被称为半欧拉图。 对于连通图 G,以下三个性质是互相等价的: …...

线上课

反射反射就是在程序运行时 获取到类的信息(成员变量 成员方法 构造方法) 并操作对象的属性和方法 获取class对象就可以拿到类的信息 获取class对象Class.forName(全类名) 类名.class 对象.getClass字节码是唯一的 无论哪种方式获取 都是同一个class对象当通过反射拿到的构造…...

弹窗、抽屉、当前页和新开页,到底怎么选? - 智慧园区

弹窗、抽屉、当前页、新开页,看似只是交互容器的选择,实则关乎信息密度、操作路径与用户心智的精准匹配。本文从B端产品的真实场景出发,拆解四种容器的使用逻辑与适配原则,帮助产品经理构建更清晰的设计判断框架。在B端产品的设计实践中,你是否曾面临过以下的灵魂拷问?你…...

POJ 2566 Bound Found

题面描述: 美国航空航天局(该机构似乎正经历叛逆期:"我就要用英尺,才不用米呢!")接收并数字化了极可能来自地外文明的信号。每个信号包含两部分:一个由n个整数值组成的序列和一个非负整数t。虽然细节不便透露,但研究人员发现信号编码了两个整数值。这两个值可…...

搜维尔科技:Haption触觉力反馈系统,沉浸式远程呈现、数字孪生、混合现实和移动远程机器人

为您的项目提供技术和经验 自2001年以来,HAPTION力反馈设备已被用于广泛的研究应用。 您是否希望在您的项目中使用HAPTION力反馈设备 您是否正在寻找国内厂商来申请新项目 增强人机交互-远程操作,实现人机交互 图片 图片 通过最先进的社交、视觉、触觉、音频和嗅觉技术的出色…...

飞书免费企业邮箱推荐

1、品牌背书:成长技术最快的企业,稳定性拉满 对于中小企业而言,一款稳定、安全且免费的企业邮箱,不仅能降低运营成本,更能提升团队沟通效率。飞书作为字节跳动旗下的协同办公平台,其推出的免费企业邮箱服务,凭借 “零成本、强协同、高安全” 的特点,成为越来越多企业的…...

CF1140F Extending Set of Points

还是比较好想的一个题。 首先你这个 \((x, y)\) 看着就很像连边关系,这是很重要的一步,一般这种二元关系都可以想着上图。 然后你发现,所谓的扩展不过就是在能加上边的地方都加上边,就是一个连通块都连满了。 这个时候注意到原图是一个二分图,能加的边不过就是所有左部点向…...

Lark免费企业邮箱推荐

Lark是飞书的国际版 Lark(飞书)的免费企业邮箱是中小型团队高效协作的理想选择,尤其适合追求低成本、高集成度的企业。以下是基于最新功能和用户反馈的深度推荐:一、核心功能与优势免费版基础能力全面无广告纯净体验:不同于部分免费邮箱,Lark 免费版全程无广告干扰,专注…...

CMP 40HX在PVE9.0配置vGPU

在PVE9.0下CMP 40HX使用NVIDIA vGPU19.0显卡虚拟化拆分技术 本文参考文章:https://yangwenqing.com/archives/2729/最近看了很多vGPU的文章,心里面痒痒,就想搞一块矿卡来玩玩。在选择方面考虑了P106-100、CMP 30HX 、CMP 40HX,最终选则了CMP 40HX。 如果你需要玩vGPU,百元…...

耶日奈曼:置信区间与假设检验的奠基者

img { display: block; margin-left: auto; margin-right: auto } table { margin-left: auto; margin-right: auto } 在20世纪统计学的发展历程中,耶日奈曼(Jerzy Neyman, 1894–1981)无疑是一位具有里程碑意义的人物。他不仅在理论层面上为数理统计学奠定了严格的推断体系…...

尚硅谷后台管理系统

尚硅谷后台管理系统商品添加业务逻辑添加品牌,是新的数据 请求url中,可以将添加品牌和编辑品牌放在同一个函数中,根据data.id判断是否是新数据<el-uploadclass="avatar-uploader"action="/api/admin/product/fileUpload":show-file-list="false…...

Web语音聊天室中录音无声问题分析与解决方案

问题背景 在开发Web端语音聊天室时,我们使用了声网RTC实现实时语音通信,同时需要在前端实现本地录音功能。在实际应用中,发现偶尔会出现录制的音频文件有时长但没有声音的问题。 问题现象聊天室正常使用声网RTC进行语音通信 前端使用原生JS的MediaRecorder API进行录音 录制…...

25.9.11随笔联考总结

考试 开考通读题面,感觉题目有点难啊。最后还是决定顺序开题。想了 5 min 确定 T1 是暴力容斥于是直接写,感觉要处理的东西不少,写了快半小时写了 3+KB。大样例没过,那我不炸了?唉清空数组的时候有个东西漏了,改了就过了。还真没炸。T2 感觉挺神秘的,我看了一眼会了暴力…...

sites(legal - Gon

杂(去除了一些应被和谐的**g++ new.cpp -o new && ./newtaskkill -f -im studentmain.execode ~/.bashrc alias clock=cd /home/gon_tata/下载/code && ./clock # source ~/.bashrchttps://www.cnblogs.com/zouwangblog/p/11541835.html //theme https://cn…...

vue3 使用 i18n-auto-extractor库 实现国际化

一、安装:npm i i18n-auto-extractor 二、更新国际化:npx i18n-auto-extractor;需要手动更新,会在文件中生成以下文件,也可以手动对文件翻译进行更改三、使用: import { $at } from "i18n-auto-extractor"; $at(nav.meta?.title || "");四、切换: …...