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

The 3rd Universal Cup. Stage 37: Wuhan

Preface

这场打的时候出现了各种突发情况,比如中途和教练在机房讨论了若干问题,徐神 J 题写一半临时有事走了之类的

再加上有人犯病了魔改欧拉回路板子导致 E 题完全对的思路最后没过,直接 9 题变 7 题了

我再也不乱改板子了.jpg


A. Problem Setting

队友开场写的签

#include<bits/stdc++.h>
using namespace std;
#define int long longusing pii = pair<int, int>;
#define ft first
#define sd second
const int N = 105;
const int INF = (int)1e9+5;
int n, q, A[N];
pii pi[N];pii ins(const pii &a, const pii &b) {if (a.ft > b.sd || b.ft > a.sd) return pii{-1, -1};return pii{max(a.ft, b.ft), min(a.sd, b.sd)};
}int solve() {cin >> n >> q;for (int i=1; i<=n; ++i) cin >> A[i], pi[i].ft = 0, pi[i].sd = INF;bool flag = true;for (int i=1; i<=q; ++i) {int p, l, r; cin >> p >> l >> r;pi[p] = ins(pi[p], pii{l, r});if (-1 == pi[p].ft) flag = false; }if (!flag) return -1;// for (int i=1; i<=n; ++i) printf("i=%lld (%lld %lld)\n", i, pi[i].ft, pi[i].sd);int ans = 0;for (int i=1; i<=n; ++i) {if (A[i] < pi[i].ft) ans += (pi[i].ft - A[i]);else if (A[i] > pi[i].sd) ans += (A[i] - pi[i].sd);}return ans;
}signed main() {ios::sync_with_stdio(0); cin.tie(0);int T; cin >> T; while (T--) cout << solve() << '\n';return 0;
}

C. One Must Imagine Sisyphus Happy

思路不难但细节比较多,如果实现不好的话可能会写的很繁琐

将一棵草在向右走的时候被拔掉记为 \(R\),向左走的时候被拔掉记为 \(L\),则一共有以下三种情况:

  • \(R,R,R,R,\dots\)
  • \(R,L,L,L,\dots\)
  • \(R,L,R,L,\dots\)

不难发现除了第三种情况,前面两种情况拔草的时间都可以写成某个周期函数的形式

而第三种情况可能会有两个不同的间隔,会出现形如 \(+2,+3,+2,+3,\dots\) 这样的情况

不过我们很容易将这种情况拆成两个周期函数的形式,并且简单分析后会发现这种两个间隔的情形下二者之差为 \(1\),因此并不会使得最后总状态的数量级增加

最后把所有本质相同的状态合并到一起,暴力维护贡献,复杂度是调和级数的

#include<cstdio>
#include<iostream>
#include<vector>
#define RI register int
#define CI const int&
using namespace std;
const int N=1e6+5;
int t,n,m,a[N],ans[N];
vector <pair <int,int>> vec[N];
inline void set(CI s,CI d)
{if (s>m) return;if (d>=m) return (void)(++ans[s]);for (auto& [x,y]:vec[d])if (x==s) return (void)(++y);vec[d].push_back({s,1});
}
int main()
{for (scanf("%d",&t);t;--t){scanf("%d%d",&n,&m);for (RI i=1;i<=m;++i) ans[i]=0,vec[i].clear();for (RI i=1;i<=n;++i) scanf("%d",&a[i]),++a[i];for (RI i=1;i<=n;++i){int T=a[i]/(2*n-1),rem=a[i]-T*(2*n-1);int L=2*(i-1),R=2*(n-i)-1;if (rem==0) { set(1,T); continue; }if (rem<=2*(n-i)){if (rem<=2*(i-1)+1) set(1,T+T+1),set(1+T,T+T+1);else ++ans[1],set(1+T,T+1);} else set(1,T+1);}for (RI d=1;d<m;++d){for (auto [s,v]:vec[d])for (RI i=s;i<=m;i+=d) ans[i]+=v;}for (RI i=1;i<=m;++i)printf("%d%c",ans[i]," \n"[i==m]);}return 0;
}

E. Colorful Graph

思路全对,过程也全对,结果板子抄不对,也是神人了

由于答案的下界为 \(\sum \lceil\frac{deg_i}{2}\rceil\),因此考虑下列能构造出该下界的方案

每次找出一个环,将环上的边染为一种颜色,直到最后找不出环为止

对于原图中度数为奇数的点,两两之间加上一条虚拟边后,图就变成了欧拉图

直接找欧拉回路即可轻松构造答案

#include<cstdio>
#include<iostream>
#include<vector>
#include<map>
#include<stack>
#include<assert.h>
#define RI register int
#define CI const int&
using namespace std;
typedef pair <int,int> pi;
const int N=400005;
int t,n,m,ans[N],used[N],vis[N],idx; vector <pi> v[N]; vector <int> path; 
inline void Euler(CI now)
{while (!v[now].empty()){auto [to,id]=v[now].back();v[now].pop_back();if (used[id]) continue;used[id]=1; Euler(to);}path.push_back(now);
}
int main()
{for (scanf("%d",&t);t;--t){scanf("%d%d",&n,&m);map <pi,int> rst;for (RI i=1;i<=n;++i) v[i].clear();for (RI i=1;i<=m;++i){int x,y; scanf("%d%d",&x,&y);v[x].push_back({y,i});v[y].push_back({x,i});rst[{x,y}]=rst[{y,x}]=i;used[i]=ans[i]=0;}vector <int> odd;for (RI i=1;i<=n;++i)if ((int)v[i].size()%2==1) odd.push_back(i);for (RI i=0;i+1<odd.size();i+=2){int x=odd[i],y=odd[i+1];v[x].push_back({y,m+i/2+1});v[y].push_back({x,m+i/2+1});used[m+i/2+1]=0;}idx=0; for (RI i=1;i<=n;++i) vis[i]=0;for (RI i=1;i<=n;++i){if (v[i].empty()) continue;path.clear(); Euler(i);// for (auto x:path) printf("%d ",x); putchar('\n');stack <int> stk;for (auto x:path){ if (vis[x]){int lst=x; ++idx;while (stk.top()!=x){// printf("(%d,%d)\n",lst,stk.top());if (rst.count({lst,stk.top()})) ans[rst[{lst,stk.top()}]]=idx;vis[stk.top()]=0; lst=stk.top();stk.pop();}if (rst.count({lst,x})) ans[rst[{lst,x}]]=idx;vis[x]=1;} else stk.push(x),vis[x]=1;}for (auto x:path) vis[x]=0;}for (RI i=1;i<=m;++i)assert(1<=ans[i]&&ans[i]<=m);assert(idx<=m);for (RI i=1;i<=m;++i)printf("%d%c",ans[i]," \n"[i==m]);}return 0;
}

F. Knapsack

考虑贪心,将物品从大到小排序,我们的策略是每次将物品放到总体积最小的包里

不过由于包和物品的数量很多,实现时通过维护答案以及总缺口量

因为物品的体积粒度越来越小,因此去填坑总是能填上的,故不需要维护缺口的具体形态

由于这题的数量级比较大,实现时可以维护当前缺口需要多少个当前物品才能不足,并可以通过设阈值的方法避免高精度

#include <bits/stdc++.h>using llsi = long long signed int;
constexpr llsi THRESHOLD = 1ll << 50;constexpr llsi mod = 998244353;constexpr llsi ksm(llsi a, llsi b) {llsi c = 1;while(b) {if(b & 1) c = c * a % mod;a = a * a % mod;b >>= 1;}return c;
}// void add(std::set<int> &s, int b) {
//     while(s.find(b) != s.end()) s.erase(b++);
//     s.insert(b);
//     return ;
// }// void add(std::set<int> &s, int a, int b) {
//     while(a) {
//         if(a & 1) add(s, b);
//         b += 1;
//         a >>= 1;
//     }
//     return ;
// }// llsi to_mod(std::set<int> &s) {
//     llsi res = 0;
//     for(auto c: s) res = (res + ksm(2, c)) % mod;
//     return res;
// }llsi work() {int n, m; std::cin >> n >> m;std::vector<std::pair<int, int>> hkr(n);for(auto &[b, a]: hkr) std::cin >> a >> b;std::sort(hkr.begin(), hkr.end(), std::greater<std::pair<int, int>>());llsi res = 0, res_b = -1;llsi ans = 0;for(auto [b, a]: hkr) {if(res_b > b && res == 0) res_b = b;while(res_b > b) {res_b--;res *= 2;if(res >= THRESHOLD) return ans;}llsi take = std::min(llsi(a), res);a -= take;res -= take;if(a == 0) continue;// add(ans, a / m, b);(ans+=1LL*(a/m)%mod*ksm(2,b)%mod)%=mod;res_b = b;a %= m;if(a) {// add(ans, b);(ans+=ksm(2,b))%=mod;res = (m - a);} else {res = 0;}}return ans;
}int main() {std::ios::sync_with_stdio(false);int T; std::cin >> T; while(T--) std::cout << work() << char(10);return 0;
}

G. Path Summing Problem

很经典的一个题啊,连我这种计数苦手都能看一眼就编出做法

考虑枚举每个位置,钦定只有它是一条路径经过的同类数字的第一个时才计算贡献,这样显然是不重不漏的

现在要对每个位置求出走到它且不经过与它值相同的路径条数,显然有两种做法:

  • 直接 \(O(nm)\) 递推,在之前遇到和它值相同的位置就清空;
  • 大力容斥,设之前有 \(k\) 个值相同的数,复杂度是 \(O(k^2)\) 的;

很容易发现根号分治,对于出现次数大于 \(\sqrt{nm}\) 的数用第一种方法,否则用第二种方法,总复杂度是 \(O(nm\sqrt{nm})\)

#include<cstdio>
#include<iostream>
#include<vector>
#include<cmath>
#define RI register int
#define CI const int&
using namespace std;
typedef pair <int,int> pi;
const int N=100005,mod=998244353;
int t,n,m,fact[N<<1],ifac[N<<1]; vector <int> a[N],g[N],sp[N]; vector <pi> pos[N];
inline void inc(int& x,CI y)
{if ((x+=y)>=mod) x-=mod;
}
inline void dec(int& x,CI y)
{if ((x-=y)<0) x+=mod;
}
inline int quick_pow(int x,int p=mod-2,int mul=1)
{for (;p;p>>=1,x=1LL*x*x%mod) if (p&1) mul=1LL*mul*x%mod; return mul;
}
inline void init(CI n)
{fact[0]=1;for (RI i=1;i<=n;++i) fact[i]=1LL*fact[i-1]*i%mod;ifac[n]=quick_pow(fact[n]);for (RI i=n-1;i>=0;--i) ifac[i]=1LL*ifac[i+1]*(i+1)%mod;
}
inline int C(CI n,CI m)
{if (n<0||m<0||n<m) return 0;return 1LL*fact[n]*ifac[m]%mod*ifac[n-m]%mod;
}
inline int calc(const pi& A,const pi& B)
{int dx=B.first-A.first,dy=B.second-A.second;if (dx<0||dy<0) return 0;return C(dx+dy,dx);
}
int main()
{for (init(200000),scanf("%d",&t);t;--t){scanf("%d%d",&n,&m);for (RI i=0;i<=n;++i) a[i].resize(m+1),g[i].resize(m+1),sp[i].resize(m+1);for (RI i=1;i<=n*m;++i) pos[i].clear();for (RI i=1;i<=n;++i)for (RI j=1;j<=m;++j){scanf("%d",&a[i][j]);pos[a[i][j]].push_back({i,j});}int S=(int)sqrt(n*m),ans=0;for (RI k=1;k<=n*m;++k){if ((int)pos[k].size()<=S){vector <int> f(pos[k].size(),0);for (RI i=0;i<(int)pos[k].size();++i){f[i]=calc({1,1},pos[k][i]);for(RI j=0;j<i;++j)dec(f[i],1LL*f[j]*calc(pos[k][j],pos[k][i])%mod);inc(ans,1LL*f[i]*calc(pos[k][i],{n,m})%mod);}} else{for (RI i=0;i<=n;++i)for (RI j=0;j<=m;++j)g[i][j]=sp[i][j]=0;for (auto [x,y]:pos[k])sp[x][y]=1;g[1][1]=1;for (RI i=1;i<=n;++i)for (RI j=1;j<=m;++j){inc(g[i][j],g[i-1][j]); inc(g[i][j],g[i][j-1]);if (sp[i][j]) inc(ans,1LL*g[i][j]*calc({i,j},{n,m})%mod),g[i][j]=0;}}}printf("%d\n",ans);}return 0;
}

I. Bingo 3

签到,但有人开局看错题了我不说是谁

\(k\) 放在 \((1,1)\),然后找 \(n-1\) 个小于 \(k\) 的数放在第一行,再找 \(n-1\) 个大于 \(k\) 的数放在剩下的主对角线位置即可

#include<cstdio>
#include<iostream>
#include<assert.h>
#define RI register int
#define CI const int&
using namespace std;
const int N=55;
int t,n,k,a[N][N],used[N*N];
int main()
{for (scanf("%d",&t);t;--t){scanf("%d%d",&n,&k);if (k<n||n*n-k<n-1) { puts("No"); continue; }puts("Yes"); int idx=k;for (RI i=1;i<=n;++i)for (RI j=1;j<=n;++j)a[i][j]=0;for (RI i=1;i<=n*n;++i) used[i]=0;for (RI i=1;i<=n;++i) used[idx]=1,a[1][i]=idx--;idx=k+1;for (RI i=2;i<=n;++i) used[idx]=1,a[i][i]=idx++;idx=1;for (RI i=1;i<=n;++i)for (RI j=1;j<=n;++j){if (a[i][j]) continue;while (used[idx]) ++idx;a[i][j]=idx++;}// int res=-1;// for (RI s=1;s<=n*n;++s)// {//     bool flag=0;//     for (RI i=1;i<=n;++i)//     {//         int cnt=0;//         for (RI j=1;j<=n;++j)//         cnt+=a[i][j]<=s;//         if (cnt==n) { flag=1; }//     }//     if (!flag) continue;//     flag=0;//     for (RI j=1;j<=n;++j)//     {//         int cnt=0;//         for (RI i=1;i<=n;++i)//         cnt+=a[i][j]<=s;//         if (cnt==n) { flag=1; }//     }//     if (!flag) continue;//     res=s; break;// }// assert(res==k);for (RI i=1;i<=n;++i)for (RI j=1;j<=n;++j)printf("%d%c",a[i][j]," \n"[j==n]);}return 0;
}

J. Dictionary

赛时 SAM 板都抄好了还写了一大半了,结果唯一会 string 的徐神一走留下剩下两条字符串苦手,索性直接开摆

徐神宣布对此题负责.jpg


L. Subsequence

不难发现给序列排序不影响答案

枚举最小最大两个数,可以很容易计算出合法的中位数所在的区间

在区间里选一个尽可能靠近中心的位置即可,注意奇偶长度区间的区别

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<map>
#define RI register int
#define CI const int&
using namespace std;
const int N=3005;
int t,n,a[N];
int main()
{for (scanf("%d",&t);t;--t){scanf("%d",&n);for (RI i=1;i<=n;++i) scanf("%d",&a[i]);sort(a+1,a+n+1);map <int,int> L,R;for (RI i=1;i<=n;++i) R[a[i]]=i;for (RI i=n;i>=1;--i) L[a[i]]=i;int ans=1;for (RI i=1;i<=n;++i)for (RI j=i+1;j<=n;++j){if ((a[i]+a[j])%2==1) continue;int M=(a[i]+a[j])/2;if (!L.count(M)) continue;int l=L[M],r=R[M];auto upt=[&](CI p){int res=2*min(p-i,j-p)+1;if (p-i<j-p) ++res;ans=max(ans,res);return;};if ((j-i)%2==0){int p=i+j>>1;if (l<=p&&p<=r) upt(p);upt(l); upt(r);} else{int p=i+j>>1;if (l<=p&&p<=r) upt(p);if (l<=p+1&&p+1<=r) upt(p+1);upt(l); upt(r);}}printf("%d\n",ans);}return 0;
}

M. Flight Tracker

神秘的立体几何,但无所谓我们队有几何大手子

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define LD long doubleconst LD PI = acosl(-1.0L);struct Pt {int x, y, z;int dot(const Pt &b) const {return x*b.x + y*b.y + z*b.z;}Pt crs(const Pt &b) const {return Pt {y*b.z-z*b.y, z*b.x-x*b.z, x*b.y-y*b.x};}int len2() const {return x*x+y*y+z*z;}
};LD cosv(const Pt &a, const Pt &b) {return 1.0L * a.dot(b) / sqrtl(a.len2()*b.len2());}LD solve() {int r; cin >> r;Pt p; cin >> p.x >> p.y >> p.z;Pt a; cin >> a.x >> a.y >> a.z;Pt b; cin >> b.x >> b.y >> b.z;Pt c = a.crs(b);int s1 = (cosv(c.crs(a), p) >= 0);int s2 = (cosv(p, b.crs(c)) >= 0);if (s1 && s2) {LD thi = acos(cosv(c, p));if (thi < PI/2) thi = PI/2 - thi;else thi = thi - PI/2;// puts("11111");return thi*r;} else {// puts("22222");return r*min(acos(cosv(p, a)), acos(cosv(p, b)));}
}signed main() {ios::sync_with_stdio(0); cin.tie(0);cout << setiosflags(ios::fixed) << setprecision(18);int T; cin >> T; while (T--) cout << solve() << '\n';return 0;
}

Postscript

fun fact:有人在有中文题面的时候读错题意的次数比英文题面多得多,我不说是谁

相关文章:

The 3rd Universal Cup. Stage 37: Wuhan

Preface 这场打的时候出现了各种突发情况,比如中途和教练在机房讨论了若干问题,徐神 J 题写一半临时有事走了之类的 再加上有人犯病了魔改欧拉回路板子导致 E 题完全对的思路最后没过,直接 9 题变 7 题了 我再也不乱改板子了.jpgA. Problem Setting 队友开场写的签 #include…...

炸裂:SpringAI新版发布,终于支持断线重连了!

盼星星盼月亮,Spring AI 新版 1.1.0-M1(1.1.0 里程式版本)终于支持 Steamable HTTP 了,也就意味着 Spring AI 的 MCP 服务终于支持自动断线重连了。 1.SteamableHTTP 定义:Streamable HTTP 是基于标准 HTTP 协议的流式数据传输模式,允许客户端或服务器在数据完全生成前,…...

spring 事务实战:声明式vs 编程式

------------------------------------------------------------------------------------------------------ 在 Spring 中,事务管理有两种核心实现方式:声明式事务和编程式事务。它们各有适用场景,下面通过实战示例对比两者的实现方式和特点。 一、编程式事务(Programmat…...

Mysql 事务提交回滚退回

mysql 验证可以通过事务 START TRANSACTION; 进行提交或者回滚 避免错执行START TRANSACTION; 执行SQL rollbacl 这个sql执行后会回滚 ,下个SQL 执行会正常提交 执行 commit rollback 就已经触发 start transactionSTART TRANSACTION; 执行SQL commit 执行玩数据会正…...

鸿蒙前端开发3-ArkTS语言基本语法

官方文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/arkts-basic-syntax-0000001504650057-V2 1.基本语法 装饰器   用于装饰类、结构、方法以及变量,并赋予其特殊的含义。如上述示例中@Entry、@Component和@State都是装饰器,@Component表示自定…...

solo博客容器化运行访问

在实验之前,需要准备一个solo包,linux虚机(centos,ubantu,Euler),数据库 solo博客通过java语言启动,也通过java语言进行运维。当前java版本最高有23,我们采用的是17. dnf -y install java 命令这样执行,java版本只会是11,可以通过java -version查看 dnf install jav…...

Flutter应用架构设计:基于Riverpod的状态管理最佳实践

Flutter应用架构设计:基于Riverpod的状态管理最佳实践本文基于BeeCount(蜜蜂记账)项目的实际开发经验,深入探讨如何使用Riverpod构建可维护、可扩展的Flutter应用架构。项目背景 BeeCount(蜜蜂记账)是一款开源、简洁、无广告的个人记账应用。所有财务数据完全由用户掌控,支持…...

P12502 「ROI 2025 Day1」天狼星的换班 「线段覆盖问题」

题目传送门线段覆盖问题,数据结构优化 DP。题意 是否能从给定的 \(k\) 条线段 \((l,m,r)\) 中按照某种顺序地挑出任意个线段覆盖区间 \([1,n]\),并满足如下条件: 后挑出的线段的 \(m\) 不能落在已挑出的线段上。 \(1 \leq n,k \leq 5 \times 10^5\),\(1 \leq l \leq m \leq…...

动态规划DP问题详解,超全,思路全收集

1. 01背包问题 (01 Knapsack Problem) 问题描述: 有 N 件物品和一个容量为 V 的背包。第 i 件物品的体积是 v[i],价值是 w[i]。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。第一步:dp[i][j] 的定义是: dp[i][j] 表示从前 i 件物品中任意选…...

SQL入门与实战

SQL:用于访问和处理数据库的计算机语言...

day05 课程

day05 课程课程:https://www.bilibili.com/video/BV1o4411M71o?spm_id_from=333.788.videopod.episodes&p=94 5.1 学习字符串的必要性5.2 认识字符串5.3 字符串输出5.4 字符串输入5.5 下标5.6 切片简介5.7 体验切片5.8 字符串常用方法简介5.9 字符串常用操作方法之查找5.…...

【JPCS独立出版Fellow杰青云集】2025年先进材料与航空航天结构力学国际学术会议(AMASM 2025)

会议将聚焦“先进材料”、“结构力学”、“航空航天工程”等前沿领域,旨在为来自国内外高校、科研机构、企事业单位的专家、教授、学者、工程师等搭建一个交流最新研究成果、分享专业经验、拓展学术与产业网络的国际平台。大会将深入探讨本领域面临的关键技术挑战与发展方向,…...

算法-TSP旅行商问题-03 - jack

目录问题的核心要素问题的复杂性常见的解法对于大规模问题:穷举动态规划实现 (Held-Karp) 旅行商问题 (Traveling Salesperson Problem, TSP) 旅行商问题是计算机科学和运筹学领域一个非常经典且著名的组合优化问题, 给定一系列城市和每对城市之间的距离,找到一条最短的哈密…...

AI编程⑤:【Cursor保姆级教程】零基础小白从安装到实战,手把手教你玩转AI编程神器!

一、什么是AI编程? 以前的编程是靠专业技术人员+学习至少一门擅长的编程语言去写程序 现在是通过对话聊天+AI大模型写程序 对话+AI大模型=AI编程 所有的模型对话上下文都有长度限制,这也是目前AI编程一个短板所在 二、Cursor免费和收费的区别,怎么充值?模式特点免费只能使用…...

ArkTS

装饰器: 用于装饰类、结构、方法以及变量,并赋予其特殊的含义。如上述示例中@Entry、@Component和@State都是装饰器,@Component表示自定义组件,@Entry表示该自定义组件为入口组件,@State表示组件中的状态变量,状态变量变化会触发UI刷新。 UI描述:以声明式的方式来描述UI…...

一文读懂基因检测PLM、体外诊断试剂PLM的功能、价值、解决方案

在体外诊断(IVD)与基因检测行业,研发面临 “高合规门槛、高数据复杂度、高协同需求” 三重挑战:合规需满足 ISO 13485、FDA 21 CFR Part 11、NMPA 等多标准,疏漏易致上市延期;基因试剂需记录上百种物料参数,实验数据关联复杂,传统 Excel 管理易出错、难追溯;研发与 SA…...

ai本地部署工具有哪些?新手入门AI推荐这几个

随着ai技术的火热,越来越多新手想尝试在本地部署ai模型,体验ai的魅力。但面对复杂的部署流程,不少人望而却步。其实,选对工具能让部署变得简单。今天就给大家推荐几款适合新手的ai本地部署工具,其中首推DS本地部署大师,还会详细介绍用它部署DeepSeek的操作步骤。 一、几款…...

匿名内部类

...

文件上传、分片上传结合antdProComponents表格展示,点击上传

文件上传、分片上传结合antdProComponents表格展示,点击上传上传组件:// ChunkUpload.jsx import React, { useCallback, forwardRef, useState, useImperativeHandle, useEffect, useRef } from react; import { UploadDropZone } from @rpldy/upload-drop-zone; import {Ch…...

2025 年 PLM 市场新锐崛起:五家厂商以创新技术引领行业变革新路径

在制造业数字化转型的汹涌浪潮中,产品生命周期管理(PLM)领域正历经着前所未有的深刻变革。往昔传统的软件模式逐渐式微,一批将技术创新奉为圭臬的新锐厂商强势登场。它们凭借独具差异化的解决方案,宛如矫健的黑马,在市场中迅速崭露头角,为制造企业精心打造出从研发设计的…...

2025 年国产 PLM 系统发展全景:厂商实力与核心功能深度解读

随着国产 PLM 技术的持续突破,本土厂商在功能适配性、行业针对性和服务响应速度上的优势愈发凸显,为不同规模、不同领域的制造企业提供了更贴合需求的解决方案。本文将聚焦 2025 年国产 PLM 系统主流厂商,全面解析厂商特色与系统核心功能模块,为企业选型提供参考。一、2025…...

开发效率翻倍!编码助手+云效 AI 评审如何破解代码质量与速度难题?

如今随着 AI 技术的突破,这一问题出现了全新解法:使用编码助手(包括不限于通义灵码、Qoder、Cursor、Claude Code 等工具,本文以通义灵码作为示例) + 云效 AI 评审,助力解决传统开发流程中的一些挑战。作者:致信 背景 随着软件开发复杂度的持续攀升和产品迭代周期的不断…...

SSL部署完成,https显示连接不安全如何处理?

在部署 SSL 后,如果浏览器仍然显示 “连接不安全” 或 “Not Secure”,通常是由以下几种原因导致的。针对每种可能的原因和问题,以下提供了详细的排查和解决方案。1. 排查问题的可能原因 1.1 SSL 证书未正确安装 如果 SSL 证书安装不完整或配置错误,浏览器会显示连接不安全…...

各省简称

各省简称目录一、华北地区二、东北地区三、华东地区四、华中地区五、华南地区六、西南地区七、西北地区八、特别行政区记忆小技巧: 一、华北地区省份全称 简称 由来简述北京市 京 直接取自全称中的字。历史上是京城的所在地。天津市 津 直接取自全称中的字。意为“天子的渡口”…...

完整教程:HDFS基准测试与数据治理

完整教程:HDFS基准测试与数据治理pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; f…...

var code = 76cb2b4f-5a26-4a70-a3bf-dc8f2ae5162f

var code = "76cb2b4f-5a26-4a70-a3bf-dc8f2ae5162f"...

解放双手!三端通用的鼠标连点神器

前言在日常工作和游戏中,我们经常遇到需要大量重复点击的情况——无论是抢购、快速通过游戏关卡,还是处理繁琐的数据录入工作。手动重复点击不仅枯燥乏味,还容易导致手腕疲劳。今天给大家分享一款轻巧易用的鼠标连点器工具,支持多种点击模式,彻底解放你的双手!为什么推荐…...

用 C# 与 Tesseract 实现验证码识别系统

一、项目概述 验证码识别在自动化测试、爬虫开发与用户辅助系统中具有重要价值。本文将介绍如何使用 C# 调用 Tesseract OCR 实现验证码图像识别功能,并对验证码图像进行简单预处理,以提高识别准确率。 二、开发环境准备安装 Tesseract 更多内容访问ttocr.com或联系143642394…...

【9月19日最终截稿,SPIE出版】2025年信息工程、智能信息技术与人工智能国际学术会议(IEITAI 2025)

2025年信息工程、智能信息技术与人工智能国际学术会议(IEITAI 2025)将于2025年9月26-28日在黑龙江哈尔滨盛大召开。旨在为全球学者、工程师及行业专家提供一个高水平交流平台,围绕信息工程、人工智能、大数据、物联网、5G/6G通信等前沿领域展开研讨,分享最新研究成果与技术…...

Dockerfile:如何用CMD同时启动两个进程

场景 在一个Dockerfile中,如何编写CMD指令,使得可以同时启动两个进程? 方案 这两个进程假设分别为Springboot Jar工程、sh脚本:app.jar script.sh需要明确一点:CMD指令本身只能直接执行一个命令 所以我们只能通过间接方式来做到启动多个进程:使用启动脚本start.sh,在其中…...

启动GA-Event Activated,结束GA-End Ability

在GA中 Event Activated是激活时的行为 在激活结尾时调用End Ability...

202003_MRCTF_千层套娃

ZIP套娃,QR二维码Tags:ZIP套娃,QRCODE 0x00. 题目 附件路径:https://pan.baidu.com/s/1GyH7kitkMYywGC9YJeQLJA?pwd=Zmxh#list/path=/CTF附件 附件名称:202003_MRCTF_千层套娃.zip 0x01. WP 01. 打开压缩文件发现hint信息 发现是zip套娃,需要通过python脚本进行自动化解压H…...

基于MATLAB的粒子群算法优化广义回归神经网络的实现

基于MATLAB的粒子群算法(PSO)优化广义回归神经网络(GRNN)的实现一、算法原理与流程 graph TDA[数据准备] --> B[PSO参数初始化]B --> C[GRNN适应度计算]C --> D[粒子速度更新]D --> E[粒子位置更新]E --> F[全局最优解更新]F --> G[GRNN模型训练]G -->…...

MySql EXPLAIN 详解

1、EXPLAIN介绍 EXPLAIN语句提供MySQL如何执行语句的信息。EXPLAIN返回SELECT语句中使用的每个表的信息并列出一行运行数据。它是按照MySQL在处理语句时读取表的顺序列出并输出到一个表格中。2、查询示例 2.1、【explain + 表名】显示的是这个表的表结构。 2.2、【explain + s…...

Transformer完整实现及注释

主要组件:Multi-Head Self-Attention (多头自注意力) Position Encoding (位置编码) Feed Forward Network (前馈神经网络) Encoder/Decoder Layer (编码器/解码器层) Complete Transformer Model (完整模型) """import torch import torch.nn as nn import to…...

数据策略与模型算法

数据策略与模型算法数据工程师:更多关心「基建」的问题,比如,数据链路如何构建、如何做技术选型、效率稳定性如何保障等等。 算法工程师:更多关心「模型」的问题,比如,具体某个算法是什么原理,如何调参等等。 数据分析师:运用工具解决「端到端」的问题,包括「问题抽象…...

25fall-cs101 作业图床 - Amy

...

在使用代理的时候,可以使用更简单的C++语法代替FGameplayAttribute代理,使用TStaticFuncPtr T

DECLARE_DELEGATE_REVAL(FGameplayAttribute, FAttributeSignature); 比如这里的代理 定义为FAttributeSignature AttributeSignature ;但是可以不生命代理,直接声明 TBaseStaticDelegateInstance<FGameplayAttribute(), FDefaultDelegateUserPolicy>::FFuncPtr它代表…...

从 url 到 PPT 一键生成:Coze 工作流,颠覆你的内容创作方式!

完整内容:从 url 到 PPT 一键生成:Coze 工作流,颠覆你的内容创作方式!你是否曾在面对大量文章资料,却要在短时间内将其精华提炼并制作成演示文稿时,感到焦头烂额、无从下手?一页页翻阅文章,手动摘取要点,再逐一编排进 PPT,整个过程繁琐又耗时,效率低下不说,最终呈现…...

[WPF学习笔记]多语言切换-001

1、VS2019新建项目2、引入Nuget包 3、修改XML代码引入命名空间并设置<Window x:Class="WPFMultiLanguageTest.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/…...

Shell 语法摘要

sed 的使用 sed 的全称是 Stream Editor,即流编辑器。它可以逐行处理输入数据(先将读入的行放到缓冲区中,对缓冲区里的内容进行处理),并将处理结果输出到标准输出。 格式:sed [选项] [address]{脚本命令(块)} 文件名 前缀 address 可以是数字或者文本(正则),格式:[addr…...

软件设计师知识点总结(一)

一、Linux目录与Windows目录区别 Linux的目录结构是一个树型结构 Windows 系统 可以拥有多个盘符, 如 C盘、D盘、E盘 Linux 没有盘符 这个概念, 只有一个根目录 /, 所有文件都在它下面 二、常见目录介绍(记住重点)目录作用/bin二进制命令所在的目录(普通命令 => 普通用户…...

智能引擎驱动:DRS.Editor让汽车诊断设计效率跃升!

在汽车电子诊断数据管理领域,用户普遍依赖传统的线下 Excel 管理模式,这种离线、文件化的方式常常导致数据分散、版本混乱、共享困难、复用率低,正成为制约开发效率与质量的瓶颈,并带来以下痛点:校验低效易错:诊断数据编写不规范,合法性、逻辑性及完整性校验效率低,易出…...

【译】Visual Studio 2026 Insider 来了!

Visual Studio 2026 Insider 现已发布 —— 这标志着我们在这款 IDE 上迈出了最具雄心的一步。此版本将人工智能直接融入开发者的工作流程,性能方面的改进重新树立了企业级规模下对速度的预期,而现代化的设计则让整个开发环境感觉更轻盈、更专注。并且,我们首次推出了全新的…...

GAS_Aura-Granting Abilities

1...

CH584 CH585 触摸应用介绍一

1、提供的资料工程和功能介绍 | | | |-- TOUCH | | | | |-- TKYLIB:触摸库文件及其头文件 | | | | |-- Touch_EX001:触摸应用的综合演示,包括触摸滑条、触摸滑环、触摸按键和隔空感应四种触摸应用,配合EVB使用。 | | …...

OpenEuler 24.03 (LTS-SP2)安装最新版本docker

OpenEuler 24.03系统默认安装的docker版本是18.09,该版本有重大bug,所以鉴于此安装最新版本docker。 一、配置 Docker 仓库 首先,需要设置 Docker 的官方仓库,和替换为国内的镜像源。 1.安装必要的包:sudo dnf install -y dnf-utils2.设置稳定的仓库: docker官方没有明确…...

西门子SINAMICS S120伺服驱动系统介绍

SINAMICS S120是集V/F、矢量控制及伺服控制于一体的驱动控制系统,可以控制普通的三相异步电动机,还能控制同步电机、扭矩电机及直线电机,属于高性能驱动,是西门子SINAMICS M1级产品。S120产品特点“高度灵活”的模块化设计 允许不同功率等级与控制性能的单元自由组合,所有…...

第10章 STM32 模拟SPI电阻屏触摸配置和测试

前言 硬件的配置由前面的工程递增,会根据目的修改部分控制代码 由于本人较懒,记录主要是过程,原理性的东西网上一大把,我就不赘述了,由于懒,主要由图片和代码加少量文字组成 源码地址https://gitcode.com/qq_36517072/stm32,第x章为cx文件夹一、STM32CUBE配置修改 带的2…...

ABAP同步和异步

在保存增强触发其他单据生成或者自建表保存需要COMMIT WORK 时候使用STARTING NEW TASK 优势是在新会话中提交:在这个新的、独立的上下文中执行 COMMIT WORK,只会提交该 RFC 函数内部自身的数据库操作,而不会影响到主增强程序所在的事务上下文。主程序的数据库更改仍会等待…...