自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(125)
  • 收藏
  • 关注

原创 深入理解 AG-UI 协议:Agent 与前端实时交互的底层原理

AG-UI 的全称是 Agent–User Interaction Protocol,即智能体与用户交互协议。我们先看一个实际场景。假设你开发了一个基于 LangGraph 的智能体系统,用户输入:帮我查询北京今天的天气,并告诉我是否适合出门。Agent 可能需要完成以下步骤:接收用户问题。判断是否需要调用天气工具。调用天气 API。获取天气数据。根据天气情况生成回答。将结果返回前端。如果只是一个简单聊天机器人,后端返回最终答案就可以。

2026-10-13 17:55:30 506

原创 RAG 知识库更新机制详解:从 Document ID、Chunk 增量更新到版本控制与一致性

这是整套数据模型中最重要的部分。三个 ID 虽然都用于标识数据,但它们解决的问题完全不同。2.2.1 document_id:标识逻辑文档用于唯一标识知识库中的一份逻辑文档。filename = 设备A维修手册.pdf第一次上传:第二次上传:此时不需要改变。原因是文档内容虽然变化,但业务上仍然属于同一份设备维修手册。应当与文件名和文件内容解耦。否则文件改名或内容变化后,系统就可能失去对原有文档的关联。

2026-10-10 14:58:24 272

原创 Agent 编排范式:4 种核心模式与工程选型

定义多个任务、多个智能体之间的执行顺序、信息传递、决策权归属、失败回退规则,让 Agent 系统按预期完成复杂目标。当一个任务比较简单,单个 Agent 调用 1~2 次工具就能做完,不需要编排。一旦任务变复杂,需要拆成多步、多角色、多工具,甚至多个 Agent 配合,就必须引入编排。下一步谁来执行?是代码固定死,还是 Agent 自己决定?决策权在谁手里?是主程序、还是某个 Agent,还是直接交给下一个 Agent?信息怎么传递?传递完整对话历史,还是只传递最小必要的子任务上下文?

2026-10-08 15:37:06 272

原创 Java线程池的最佳实现

生产环境不要直接用工具类创建线程池,推荐直接手动。:本身不存储元素,放任务必须立刻有线程接收;没有线程接收就触发新建线程。⚠️注意示例数字只是演示,不能直接复制上生产,参数需要结合业务流量、压测、下游容量来确定。线程池线程数估算 高峰期每秒提交多少任务?任务平均执行多久?任务里 IO 等待占多少时间?下游(DB、RPC 接口)最大能扛多少并发?业务允许任务最多排队等待多久?2、简单并发估算公式:每秒提交任务数量T:单个任务平均执行时间(单位:秒)L:大概需要的并发数例子:高峰期

2026-09-24 15:14:21 129

原创 Java线程池

Executor 框架 Java5 引入,用 Executor 提交任务,优于直接 new Thread ()+start ()优点:易管理、复用线程节省开销;还有一点:规避 this 逃逸Executor 整套体系包含:线程池、线程工厂、阻塞队列、拒绝策略,统一简化并发开发。对象构造函数尚未执行完成时,this 引用就暴露给其他线程,其他线程访问尚未初始化完成的对象,引发不可预期的并发问题。不要在构造方法中启动线程或者提交任务给线程池;应当在对象构造完成之后再提交任务。1. 对象创建的过程当你写。

2026-09-23 14:02:18 333

原创 决策型大模型Jev

Jev 是 TypeSafe AI 推出的前沿 AI 模型,。你传入程序上下文(State)与结构化问题,模型一次性并行处理全部问题,耗时 70‑500 毫秒;计费:输入每百万 token 0.042 美元,。该模型 9 月 15 日正式发布,由曾在 OpenAI 参与 RLHF、InstructGPT 发明的 Diogo Almeida 主导,融资由 DCVC 领投,融资金额 4000 万美元。

2026-09-21 16:18:34 364

原创 Agent上下文管理

1. Transformer 模型推理的时候,每一层注意力会算出 token 对应的 Key、Value。2. KV Cache:把已经算完的 Key、Value 向量存下来,不用重复计算3. 场景:多轮对话,你追加新消息继续聊。前面老的历史 token 已经算过一遍,直接复用 KV,不用重复跑前面所有 token,大幅减少算力、降低延迟、省钱。4. 一旦修改 / 插入 / 删除历史中间的消息,原来的 KV Cache 全部作废,需要重新计算全部前缀,成本暴涨。

2026-09-20 13:11:10 349

原创 Codeforces Round 1024 (Div. 2)

解题思路:我们可以连续n个数字,q、0、0、0、q、0、0、0、0。

2025-05-12 14:46:38 151

原创 牛客网——小红走网格

链接:https://ac.nowcoder.com/acm/contest/100253/C来源:牛客网。

2025-01-20 14:35:44 684

原创 牛客 ZT17 小欧安排座位

【代码】牛客 ZT17 小欧安排座位。

2024-12-02 19:42:35 291

原创 牛客 ZT13 小红的数字删除

【代码】牛客 ZT13 小红的数字删除。

2024-11-29 19:56:14 730 1

原创 Minimum spanning tree(素数筛+思维)

素数筛+思维

2022-07-04 15:36:45 398

原创 滑动窗口 /【模板】单调队列

滑动窗口

2022-06-09 11:04:04 358

原创 D. Black and White Stripe

D. Black and White Stripe

2022-06-08 13:58:37 641

原创 哈尔滨理工大学第12届程序设计竞赛 B 抓球

题目链接: B 抓球#include<bits/stdc++.h>using namespace std;#define int long long const int maxn=2e5+5;const int mod=1e9+7;int a[maxn];int sp(int a,int b){ int sum=1; while(b) { if(b&1) sum=sum*a%mod; a=a*a%mod; b/=2; } return

2022-04-04 20:11:38 531

原创 2018年蓝桥杯省赛 C++ B组

题目链接:[蓝桥杯2018初赛]乘积尾零 答案:31题解:通过思考10的产生是由2和5共同作用的,要知道有几个0,每出现一个10,就应从乘数中可以提出一个2、一个5。所以我们把每个数的都分解成乘积的形式 ,统计出 2和 5的数量,取他们的最小值。#include<bits/stdc++.h>using namespace std;#define int long longsigned main(){ ios::sync_with_stdio(false); cin.tie

2022-03-30 20:22:20 1779

原创 [NOIP1998]拼数

题目链接:[NOIP1998]拼数#include<bits/stdc++.h>using namespace std;#define int long longconst int maxn=1e2+5;string a[maxn];bool cmp(string a,string b){ return a+b>b+a;}signed main(){ int n; cin>>n; for(int i=0;i<n;i++) cin>&g

2022-03-28 21:08:34 802

原创 2022上海理工大学校内选拔赛(GPLT)

H.Setsuna的K数列题目链接:Setsuna的K数列 题解:k的幂有两种选择,要么使用要么不使用,那么对应着二进制0和1,而且由于位权递增,从小到大第n个的组合数即是n对应的二进制对应的那种情况。所以这题就是将n转换为二进制,把对应为1的位权加起来,过程中取模,需要用到快速幂#include<bits/stdc++.h>using namespace std;#define int long longconst int mod=1e9+7; signed main(){

2022-03-27 10:27:47 556

原创 Make Equal With CodeTON Round 1 (Div. 1 + Div. 2, Rated, Prizes)

题目链接:Make Equal With 题解:<1>余数全为0,只要没有1的存在,一定满足余数全为0,因为我们可以每次选择最大的数为x,多次进行该操作<2>余数全为1,我们可以让每个数对其减一进行求余,但是需要满足a[i-1]+1==a[i],因为在对a[i]进行操作时,a[i-1]变为0#include<bits/stdc++.h>using namespace std;#define int long longconst int maxn=1e6+5

2022-03-25 17:17:23 658

原创 2021年第十二届蓝桥杯省赛大学B组

A题答案为:67108864#include<bits/stdc++.h>using namespace std;int main(){ cout<<256*1024*1024/4<<endl;}B题答案:3181#include<bits/stdc++.h>using namespace std;#define int long longint s[100];signed main(){ ios::sync_wi

2022-03-24 19:13:46 568

原创 C. Alice and the Cake

题目链接:C. Alice and the Cake题意: 爱丽丝有一块蛋糕,她要把蛋糕切成n份,每一次操作,她会选择一块蛋糕(另大小为A),将其切成两半,两块大小分别为A / 2, (A + 1) / 2,及分成整数的两半,如果原大小为奇数,则一块会大1,现在给出一个序列,问有没有可能为一块蛋糕经过n - 1次操作后得到的方法一.#include<bits/stdc++.h>using namespace std;#define ll long longint main(){

2022-03-21 20:25:39 685

原创 快速幂算法

传统的求幂算法:时间复杂度非常高(O(指数n)),当指数n非常大的时候,需要执行的循环操作次数也非常大。快速幂算法:能快速计算指数非常大的幂。核心思想是每一步都把指数分成两半,而相应的底数做平方运算。这样不仅能把非常大的指数给不断变小,所需要执行的循环次数也变小,而最后表示的结果却一直不会变。(请认真理解这句话,理解不了也没关系,下面会有具体推导)ll power(ll a,ll b,ll mod) { ll ans = 1; while(b) { if(b&1){ ans=a.

2022-03-21 17:51:30 989

原创 瓜瓜上电工

题目链接:瓜瓜上电工题解:根据题目n和q的取值范围,可以通过暴力实现,注意到题目要求测量的接线柱对 ,一定会在答案流程中以某种顺序出现。而在接线柱对的某个排列中,插入额外的中间情况并不会让答案更优。因此枚举接线柱对的全排列即可。#include<bits/stdc++.h>using namespace std;const int maxn=1e5+5;int l[maxn],r[maxn],s[maxn]; int main() { int n,q; cin>

2022-03-20 09:54:24 337

原创 瓜瓜打游戏(EASY)

题目链接: 瓜瓜打游戏(EASY)#include<stdio.h>long long int a[5005],n,p,i,j,b;int main(){ a[0]=1; scanf("%lld %lld",&n,&p); for(i=0;i<n;i++)//第i关 { scanf("%lld",&b); for(j=i;j>=0;j--)//徽章 {

2022-03-20 08:16:31 4658

原创 Armchairs CodeForces - 1525D

题目链接:Armchairsdp[i][j] 代表,前 i 个 1 和前 j 个 0匹配 消耗的最短时间。初始化为dp[0][i]=0;,详细细节看代码。//1 1 1 0 0 0//1 1 0 1 0 0 1//1 0 0 1 1 0 3//0 0 0 1 1 1 5#include<bits/stdc++.h>using namespace std;const int maxn=1e4+5;int a[maxn],z[maxn],o[maxn];int dp[ma

2022-03-14 20:13:45 637

原创 Square-free division (easy version) CodeForces - 1497E1

题目链接:Square-free division (easy version)#include<bits/stdc++.h>using namespace std;int s(int x)//找出质因子的幂为奇数次 { if(x==1) return 1; int k=1; for(int i=2;i*i<=x;i++) { int sum=0; while(x%i==0)//找出质因子的幂的次数 { x/=i; sum++; }

2022-03-13 11:15:21 438

原创 Maximum Sum of Products CodeForces - 1519D

题目链接:D. Maximum Sum of Products#include<bits/stdc++.h>using namespace std;const int maxn=5e3+5;long long a[maxn],b[maxn];long long dp[maxn][maxn];int main(){ int n; cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; long long sum=0

2022-03-13 09:26:30 477

原创 Restoring the Permutation CodeForces - 1506E

题目链接:E. Restoring the Permutation题解:按字典序最小的简单一点,字典序大的较为复杂,找出字典序最大的可以通过栈,如果当前的a[i]值和a[i-1]值不相等,说明b[i]的值为a[i],然后将a[i-1]+1到a[i]之间的数存入栈中,栈中的元素应该是升序排列,一旦遇到a[i]==a[i-1]时,便从栈中退出一个元素。#include<bits/stdc++.h>using namespace std;const int maxn=2e5+5;int

2022-03-13 08:41:48 479

原创 牛客练习赛97 C 哦~唔西迪西小姐~

题目链接:C 哦唔西迪西小姐~题解:一个格子存在三种状态,走或者不走或者反转后走,我们可以设定状态都为0和都为1,最后比较都为0所得分数和都为1所得分数,输出最大的那个。细节代码中解释#include<bits/stdc++.h>using namespace std;const int maxn=1e6+5;int a[maxn],b[maxn],p[maxn];int n,m;long long s(int x){ long long sum=0; priority_

2022-03-12 09:06:54 1990 1

原创 Codeforces Round #775 (Div. 2)B. Game of Ball Passing

题目链接:B. Game of Ball Passing题解:先找出数组中最大数,通过用剩下数的和进行比较,设剩余和为x,那么他能匹配x+11.sum=0,需要0个球2.sum+1>=mx,需要1个球3.其他情况,需要a[n-1]-sum个球#include<bits/stdc++.h>using namespace std;const int maxn=1e6+5;long long a[maxn];int main(){ int t; cin>>t;

2022-03-06 21:30:43 613 3

原创 AtCoder Beginner Contest 242 C 1111gal password

题目链接:C 1111gal password题意:长度为n的数字,每一位数字满足1<=x<=9,|x1-x2|<=1,求出有多少个数字题解:运用数位dp求解#include<bits/stdc++.h>using namespace std;const int maxn=1e6+5,mod = 998244353;long long dp[maxn][10];int main(){ for(int i=1;i<=9;i++) dp[1][i]

2022-03-06 20:31:07 698

原创 AtCoder Regular Contest 136 B - Triple Shift

题目链接:B - Triple Shift按照题意中的操作,逆序数的奇偶性是不变的1 2 3 的逆序数对为03 1 2 的逆序对为2题解: 判断所有数字出现个数相不相同,如果不相同一定不可以判断是否有两个或者两个以上相同的数,有的话一定可以判断逆序对数奇偶性是不是相同,相同可以,不相同不可以#include<bits/stdc++.h>using namespace std;const int maxn=1e5+5;int a[maxn],b[maxn],c[maxn

2022-03-05 10:45:10 298

原创 D 切糕

题目链接:D 切糕通过找规律得知:答案为2^sum#include<bits/stdc++.h>using namespace std;const int maxn=1e6+5;const int mod=1e9+7;char a[maxn];int main(){ cin>>a; int l=strlen(a); int sum=0; long long s=1; for(int i=0;i<l;i++) { if(a[i]=='(')

2022-03-05 08:17:18 190

原创 C 山楂

题目链接:C 山楂通过下列规律得知:小于3个糖果合并不了,除了5个糖果,其他都可以全部合并,并且合并的个数为a[i]/3,#include<bits/stdc++.h>using namespace std;long long a[100];int main(){ for(int i=1;i<=8;i++) { cin>>a[i]; } long long sum=0; for(int i=1;i<=8;i++) { if(a[i

2022-03-05 08:12:30 242

原创 #10150. 「一本通 5.1 练习 1」括号配对

题目链接:[#10150. 「一本通 5.1 练习 1」括号配对](https://loj.ac/p/10150题目描述Hecy 又接了个新任务:BE 处理。BE 中有一类被称为 GBE。以下是 GBE 的定义:空表达式是 GBE如果表达式 A 是 GBE,则 [A] 与 (A) 都是 GBE如果 A 与 B 都是 GBE,那么 AB 是 GBE下面给出一个 BE,求至少添加多少字符能使这个 BE 成为 GBE。输入格式输入仅一行,为字符串 BE。输出格式输出仅一个整数,表示增加的最少

2022-03-01 21:21:20 370

原创 C. Increase Subarray Sums Educational Codeforces Round 123 (Rated for Div. 2)

题目链接:C. Increase Subarray Sums题意:给定一个长度为n的数组a和x,就是每次加上k个x(k∈[0,n]),然后分别求最大区段和思路:先求出长度为k的(k∈[1,n])长度区间的最大值,然后再分别加上k个x#include<bits/stdc++.h>using namespace std;const int maxn=1e5+5;int a[maxn],sum[maxn];int l[maxn];int main(){ int t; cin&

2022-02-26 09:39:47 289

原创 C. Differential Sorting Codeforces Round #772 (Div. 2)

题目链接:C. Differential Sorting题意:选择数组中三个数下标为x,y,z,下标x的值为a[y]-a[z],最少操作使数组变成升序,如果不能成为升序则输出-1题解:可以让前面的数值都为最后两个数,只需判断最后两个数是否是升序,还有一种特殊情况是最后一个数小于0,这种情况如果该数组不是升序一定不可以变成升序,则输出-1#include<bits/stdc++.h>using namespace std;int main(){ int t; cin>&g

2022-02-21 16:25:51 587

原创 C. OKEA Codeforces Round #770 (Div. 2)

题目链接:C. OKEA 题意:n行k列,将1~n*k数字放入该矩阵,条件从每一行选取一串连续数字,让他们平均数为一个整数题解:我们可以一行偶数,一行奇数,这样可以保证从每一行选取一串连续数字且平均值为一个整数,当n为奇数时,必不能构造该矩阵#include<bits/stdc++.h>using namespace std;int main(){ int t; cin>>t; while(t--) { int n,k; cin>>n&gt

2022-02-16 16:52:22 326

原创 B.Odd Swap Sort(Codeforces Round #771 (Div. 2))

题目链接:Odd Swap Sort题意:当两数和为奇数可以进行交换,问一个数组是否可以变成递增序列题解:奇偶性相同的两数一定不可交换,统计奇数是否是递增序列和偶数是否是递增序列,因为元素的相对位置是不可改变的#include<bits/stdc++.h>#include<algorithm>using namespace std;const int maxn=1e5+5;int a[maxn],b[maxn];int main(){ int t; cin&gt

2022-02-15 10:52:37 968

原创 C++ bitset函数

C++的 bitset 在 bitset 头文件中,它是一种类似数组的结构,它的每一个元素只能是0或1,每个元素仅用1bit空间。构造函数bitset常用构造函数有四种,如下 bitset<4> bitset1;  //无参构造,长度为4,默认每一位为0 bitset<8> bitset2(12);  //长度为8,二进制保存,前面用0补充 string s = "100101"; bitset<10> bitset3(s);  //长.

2022-02-14 20:47:34 548

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除