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

深入解析:PAT乙级_1125 子串与子列_Python_AC解法_含疑难点

注意事项:

       因为笔者的编程水平以自学为主,代码结构可能比较混乱、变量命名可能不够规范。

       文章中的AC解法不一定最优,并且包含笔者强烈的个人风格,不喜勿喷,但欢迎在评论中理性讨论或者给出提升建议。

       文章中提到的疑难点仅为个人在刷题过程中所遇到的情况,如有读者存在其他疑难点,欢迎在评论中加以补充,笔者会尽量将其加入到文章内容中。


合集:

 PAT乙级_合集_Python_AC解法


题目:

1125 子串与子列

题目描述: 

子串是一个字符串中连续的一部分,而子列是字符串中保持字符顺序的一个子集,可以连续也可以不连续。例如给定字符串 atpaaabpabttpabt是一个子串,而 pat 就是一个子列。

现给定一个字符串 S 和一个子列 P,本题就请你找到 S 中包含 P 的最短子串。若解不唯一,则输出起点最靠左边的解。

输入格式:

输入在第一行中给出字符串 S,第二行给出 P。S 非空,由不超过 10^4 个小写英文字母组成;P 保证是 S 的一个非空子列。

输出格式:

在一行中输出 S 中包含 P 的最短子串。若解不唯一,则输出起点最靠左边的解。

输入样例:

atpaaabpabttpcat
pat

输出样例: 

pabt

代码限制: 

代码长度限制

16 KB

时间限制

300 ms

内存限制

64 MB

栈限制

8192 KB


AC解法: 
import bisect
# 获取输入的数据
s = input()  # 获取字符串 s
p = input()  # 获取非空子串 p
# 处理数据并输出结果
if s == p:  # 若 s 与 p 相等
print(p)  # p 即是唯一解,直接输出
else:  # s 与 p 不相等
ls, lp = len(s), len(p)  # 计算出 s 和 p 的长度
idx = {}  # 创建空字典,用于存储 s 中各个字符出现的位置
for i in range(ls):  # 遍历 s
if s[i] not in idx:  # 若该字母没被存储在字典中
idx[s[i]] = [i]  # 以该字母为键,值为含该下标的列表
else:  # 该字母已在字典中
idx[s[i]].append(i)  # 将下标添加到对应的列表中
min_length = ls + 1  # 创建变量用于表示当前最小子串长度,初始值为不可能达到的最大值,即 s 的长度再 +1
min_start, min_end = -1, -1  # 分别表示当前最小子串的起始位置和结束位置,初始值无实际意义,设为 -1
lip = len(idx[p[1]])  # 计算出 p 中第二个字母在 s 中出现的次数,无实际意义,仅针对测试点5
for start in idx[p[0]]:  # 遍历 p 的第一个字母在 s 中出现的位置,即子串起点位置
if start > ls - lp:  # 起始位置 > 字符串长度 - 子列长度,即若该起始位置起剩余的字母数量不够
break  # 跳出遍历 p 的第一个字母在 s 中出现位置的循环
end = start  # 表示子串结束位置,初始值为起点位置
cnt = 1  # 用于对已匹配的字母进行计数,因为 start 已经实现了对第一个字母的匹配,所以初始值为 1
for j in range(1, lp):  # 从 p 的第二个字母开始进行遍历匹配
if lp - j + end - start + 1 >= min_length:
# 若剩余未匹配的字母数加上当前子串的长度大于等于当前最小长度
break  # 跳出当前起点位置对于剩余字母匹配的循环
tmp = idx[p[j]]  # 取出该字母在 s 中的位置列表
new = bisect.bisect_right(tmp, end)  # 通过 bisect 模块中的方法,
# 高效实现对该位置列表中大于当前结束位置的值的查找
if new >= len(tmp):  # 若该值大于等于该位置列表的长度,
# 即位置列表对应的字母出现的位置均小于等于当前结束位置
break  # 跳出当前起点位置对于剩余字母匹配的循环
end = tmp[new]  # 将结束位置的值更新为字母列表中首个大于前结束位置的下标
cnt += 1  # 匹配数 +1
if end - start + 1 >= min_length:  # 若当前子串的长度大于等于当前最小长度
break  # 跳出当前起点位置对于剩余字母匹配的循环
if cnt == lp:  # 若匹配数等于 p 的长度,即 p 已被完全匹配
length = end - start + 1  # 计算该子串的长度
if length  7000:  # 仅针对测试点5,若无条件约束则测试点0、1、2、6会答案错误,
# 若下限设为6000则测试点2会答案错误
print(s[min_start:min_end + 1])  # 根据起始位置和结束位置输出结果
exit()  # 主动终止程序
if min_length == lp:  # 若当前最小长度等于 p 的长度,即已找到最优解
break  # 跳出遍历 p 的第一个字母在 s 中出现位置的循环
print(s[min_start:min_end + 1])  # 根据起始位置和结束位置输出结果

题目解读:

       本题描述比较易懂。

       先获取输入的字符串和非空字串,再从字符串中找出最短的一段按顺序包含所有非空子串中的字母的字符串片段,最后输出这个片段。

疑难点: 

测试点5运行超时

if lip > 7000:
print(s[min_start:min_end + 1])
exit()

       在上文给出的AC解法的结构中,最关键的代码就是这段对测试点5的暴力特化。笔者按照该思路初步写出代码并进行一定的剪枝后就通过了其他测试点,仅测试点5仍是一直运行超时,在参考其他AC解法后,发现对于其他测试点也基本是该结构耗时更短,这似乎能印证该思路并无明显问题,但在此基础上反复调试仍无法通过测试点5,也难以想清楚仅测试点5超时的根本原因。

       因此笔者在不想改变原本的代码结构的情况下,通过该特化取巧的实现了AC。经验证,按照该结构,只要 start 循环进行了第二次,就会导致测试点5运行超时,而如果不对这段代码的执行条件添加任何约束,也必然会导致其他测试点(测试点0、1、2、6)答案错误。因此,经过对下限的逐渐逼近,笔者发现将条件设置为 7000 (若设置为 6000 ,测试点2仍会答案错误)恰好可以完美AC,最终的性能消耗如下图所示:

       遗憾的是,虽然笔者在原本的代码结构上实现了AC,但这毕竟是取巧的办法,仍然没具体弄清楚测试点5的具体特征及超时的原因,在此万分期待读者的补充。

       在此笔者也将其他作者通过正经解法实现AC的文章贴上,以便读者参考:【PAT_Python解】1125 子串与子列-CSDN博客。


其他测试点运行超时

       每个测试点运行超时基本都是因为剪枝不够充分,笔者也难以一一理清楚原因。但笔者在此将在做题过程中想到的几种存在不同超时情况的代码按序贴出,以便读者参考。

# 三个测试点(3、5、6)运行超时
s = input()
p = input()
if s == p:
print(p)
else:
ls, lp = len(s), len(p)
ans, tmp = [], []
min_length = ls
for t in range(ls):
if s[t] == p[0]:
tmp.append(t)
break
vis = [False] * (ls + 1)
ed = tmp[0]
while tmp:
i = tmp.pop()
k = 1
for j in range(i + 1, ls):
if j - i + 1 > min_length:
break
if s[j] == p[0] and not vis[j]:
tmp = [j] + tmp
vis[j] = True
if j > ed:
ed = j
if s[j] == p[k]:
k += 1
if k == lp:
if j - i + 1  min_length:
break
if s[j] == p[k]:
k += 1
if k == lp:
if j - i + 1 < min_length:
min_length = j - i + 1
ans = [i, j]
if min_length == lp:
print(s[ans[0]:ans[1] + 1])
exit()
break
print(s[ans[0]:ans[1] + 1])
# 两个测试点(5、6)运行超时
s = input()
p = input()
if s == p:
print(p)
else:
ls, lp = len(s), len(p)
ans = []
min_length = ls
for i in range(ls - lp + 1):
if s[i] == p[0]:
k = 1
for j in range(i + 1, ls):
if j - i + 1 > min_length:
break
if s[j] == p[k]:
k += 1
if j - i + 1 > min_length:
break
if k == lp:
if j - i + 1 < min_length:
min_length = j - i + 1
ans = [i, j]
if min_length == lp:
print(s[ans[0]:ans[1] + 1])
exit()
break
print(s[ans[0]:ans[1] + 1])
# 一个测试点(5)运行超时
import bisect
s = input()
p = input()
if s == p:
print(p)
else:
ls, lp = len(s), len(p)
idx = {}
for i in range(ls):
if s[i] not in idx:
idx[s[i]] = [i]
else:
idx[s[i]].append(i)
min_length = ls + 1
min_start, min_end = -1, -1
for start in idx[p[0]]:
if start > ls - lp:
break
end = start
cnt = 1
for j in range(1, lp):
if lp - j + end - start + 1 >= min_length:
break
tmp = idx[p[j]]
new = bisect.bisect_right(tmp, end)
if new >= len(tmp):
break
end = tmp[new]
cnt += 1
if end - start + 1 >= min_length:
break
if cnt == lp:
length = end - start + 1
if length < min_length:
min_length = length
min_start, min_end = start, end
if min_length == lp:
break
print(s[min_start:min_end + 1])
# 四个测试点(2、3、5、6)运行超时
s = input()
p = input()
if s == p:
print(p)
else:
ls, lp = len(s), len(p)
idx = {}
for i in range(ls):
if s[i] not in idx:
idx[s[i]] = [i]
else:
idx[s[i]].append(i)
for j in range(1, lp - 1):
idx[p[j]] = set(idx[p[j]])
min_length = ls + 1
min_start, min_end = -1, -1
for start in idx[p[0]]:
for end in idx[p[-1]]:
if end  previous:
previous = k
now += 1
if now == lp - 1:
length = end - start + 1
if length < min_length:
min_length = length
min_start, min_end = start, end
if min_length == lp:
print(s[min_start:min_end + 1])
exit()
break
print(s[min_start:min_end + 1])

运行超时总结

       本题的测试点5卡了读者很长的时间,期间多次偶尔修改调试均没能实现AC,最终笔者才想到通过取巧的办法实现AC,这对于单纯的学习来说或许是无效的,但若是对于实际竞赛来说无疑是十分有效的。

       笔者从本题中吸取了不少教训,如不该浪费那么多的时间在通用性的优化上,应该早早就针对个别测试点进行针对性的特化。对于实际竞赛,有时候“取巧”比“完美”更有效。

       希望文章能给读者起到帮助。

相关文章:

深入解析:PAT乙级_1125 子串与子列_Python_AC解法_含疑难点

深入解析:PAT乙级_1125 子串与子列_Python_AC解法_含疑难点pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New",…...

ESP32-S3 与GPS北斗通信返回定位/海拔/速度数据的测试代码

1.设备选用了银尔达企业店的 M100PG(DTU固件)贴片卡-单北斗模块 https://item.taobao.com/item.htm?id=718803061339&mi_id=0000qaxoKpzXrjCqKjNVBO442w3_i_Vz_sY6iyO-vASV8-s&spm=tbpc.boughtlist.suborder_itempic.d718803061339.67002e8dTIrFEQ&sku_properties…...

GZY.Quartz.MUI(基于Quartz的UI可视化操作组件) 2.8.0发布 新增仪表盘和检索功能

前言 很久没更新这个组件了,主要是没想到加什么东西 后来经过群友提醒,其实可以加个仪表盘的功能,方便在任务比较多的时候监听执行情况. (PS:有些群友的定时任务已经干到了上百条..) 说加就加.. 所以就有了2.8的版本.. 2.8.0正式发布. 更新内容: 1.新增任务界面搜索功能,可根据…...

AIGEO助力企业破局

商务部9月13日发布公告,就美国对华集成电路领域相关措施发起反歧视调查,这一事件凸显了核心技术自主可控的紧迫性。在AI搜索优化领域,不少中国企业正积极创新突破外部限制,跑一跑自研的AIGEO产品便是其中典型。您是否正为企业曝光度低、市场影响力不足而发愁?跑一跑AIGEO产…...

东南大学数据库课程06-Database Design

Database Design 目录Database DesignData DependencyNormalization of Relational Schema1NF2NFProblems of non 2NF3NFProblems of non 3NFSummaryER Model and ER DiagramDatabase Design MethodRequirement AnalysisConcept DesignLogic DesignPhysical DesignSummary Data…...

MacOS升级15.2后的问题(二):无法修改mac网络地址

升级新的系统版本后,安全策略有变动,无法直接修改mac网络地址,只能绕过去 1.打开《系统设置》->《网络》->《其他服务》->《管理虚拟接口》 2.点击《+》号新增,名字自己随便取,记住BSD名称就行3.打开终端,输入指令,例如刚刚我新增的test1 对应BSD名称 bridge2 …...

东南大学数据库课程07-Distributed Database Systems

Distributed Database Systems 目录Distributed Database SystemsIntroductionDatabase DistributionStrategies of Data DistributionUnit of Data DistributionProblems Caused by Data DistributionFederated DatabaseQuery Optimization in DDBMSRecovery Mechanism in DDB…...

HCIA——VLAN间通信

...

Xdebug安装与PhpStorm调试配置

一、Xdebug 介绍 Xdebug 是 PHP 的一个扩展,提供了多种功能以改善 PHP 开发体验。单步调试:在脚本执行时于集成开发环境(IDE)或编辑器中逐行调试代码的一种方式。PHP 错误报告的改进:改进的 var_dump() 函数,针对提示、警告、错误和异常提供堆栈跟踪,以突出显示导致错误…...

vue - 内置指令

Vue3 提供了一系列内置指令,用于简化 DOM 操作和实现常见功能。这些指令以 v- 前缀开头,通常用于模板中,以下是详细分类及解析: 一、核心渲染指令 用于控制元素的渲染逻辑和数据绑定。v-text功能:更新元素的文本内容(相当于 textContent)。示例: <span v-text="…...

东南大学数据库课程02-DataModel数据模型

Data Model 数据模型 目录Data Model 数据模型2.1 Hierarchical Data ModelBasic IdeaHierarchical Data SchemaVirtual Record2.2 Network Data Model2.3 Relational Data ModelBasic Idea相关术语Relation,Tuple,Attribute,Column,DomainPrimary KeyForeign Key, Reference I…...

Torch核心数据结构Tensor(张量)

本文pytorch的入门系列文章第一篇,首先介绍了张量tensor这一基础内容,尤其详细介绍其关键概念自动求导autograd原理及简单应用。1 基本概念 tensor是一个多维数组,类似于NumPy中的ndarray,但tensor可以在GPU上进行高效计算,这是它与ndarray的重要区别之一。它可以表示标量…...

vue - 进阶

响应式: 进阶 customRef() 创建一个自定义的 ref,显式声明对其依赖追踪和更新触发的控制方式。类型 function customRef<T>(factory: CustomRefFactory<T>): Ref<T>type CustomRefFactory<T> = (track: () => void,trigger: () => void ) =>…...

读书笔记:为什么你的数据库有时不用索引?一个关键参数告诉你答案

我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢! 由于博客中有大量代码,通过页面浏览效果更佳。本文为个人学习《Expert Oracle Database Architecture Techniques and…...

MacOS升级15.2后的问题(一):安装第三方下载的软件,提醒文件已损坏

安装第三方下载的软件,提醒文件已损坏解决步骤: 第一步,重启系统,command+r 持续按住,进入恢复模式,打开左上角实用工具-终端,进行禁用SIP操作:1 csrutil disable第二步,Macos隐私安全性,打开允许任何来源指令:1 sudo spctl --master-disable完成后即可看见(任何来…...

Playwright MCP浏览器自动化教程

你是否曾厌倦在编程软件和浏览器之间反复切换,只为了检查AI生成的代码能否正常运行?现在,有了Playwright MCP(Model Context Protocol),你可以直接让AI自己操作浏览器,查看自己写的代码运行效果,并自行修复问题。 本文将手把手教你如何配置和使用Playwright MCP,让AI成…...

故障分析:ORA-00900 修改props$中字符集导致

我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢! 由于博客中有大量代码,通过页面浏览效果更佳。故障分析:ORA-00900 修改props$中字符集导致 某天在一个群里面看到有人…...

Unstable Twin - TryHackMe

Unstable Twin 一、信息收集 使用nmap对网站ip的开放端口进行扫描 nmap -sS -sV -A -Pn 10.10.187.113 开放了22端口和80端口 使用dirsearch扫描一下看看还有没有其他目录 dirsearch -u http://10.10.187.113 -e php,html,txt -t 100这里我访问网站网站显示一片空白课,我以为…...

单片机实现挡位调节

简易挡位调节模块 1、初始化硬件这里就不过多赘述了,去看我之前的帖子,我这篇帖子选择TIM2的1通道PWM的简单应用2、触发方式 (1)中断 I 初始化硬件启用按钮的中断在主函数外写入中断回调函数void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){uint16_t value;__HAL_TIM_SET_CO…...

完整教程:从 WildCard 野卡到 gptplus.plus:一次解决 OpenAI 支付难题的实战复盘,轻松搞定Gpt充值

完整教程:从 WildCard 野卡到 gptplus.plus:一次解决 OpenAI 支付难题的实战复盘,轻松搞定Gpt充值pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "…...

阿里 Qoder 新升级,Repo Wiki 支持共享、编辑和导出

Repo Wiki 正式上线新功能:支持 Wiki 共享、编辑和导出。为了让知识更好地在团队中流转,Qoder 提供了 Wiki 共享能力。当用户在本地生成 Wiki 时,会自动在代码库中创建一个专属目录,只需将该目录推送至代码仓库,即可将生成的文档轻松共享给团队成员,实现协作共建。过去两…...

长城杯WriteUp

文曲签学 提示是穿透并且双写,所以直接抓包在后台进行穿透,获得flagEZ_upload exp: 先创建软链接,然后上传shell import tarfile import os from io import BytesIO# Webshell 内容 webshell_content = b<?php @eval($_POST["cmd"]); ?> webshell_name = …...

vite取别名@

在 vite.config.ts 中: import path from "path"; export default defineConfig({// 取别名resolve: {alias: {"@": path.resolve(__dirname, "./src")}} });在 tsconfig.node.json、tsconfig.json 以及 tsconfig.app.json 中:"compilerO…...

JavaScript数据网格方案AG Grid 34.2 发布:更灵活的数据结构、更流畅的大数据交互与全新 UI 体验

JavaScript数据网格方案AG Grid 正式发布 34.2 版本,本次更新为开发者带来了更灵活的数据分组方式、更顺畅的大数据集交互体验,以及更直观的 UI 提示与操作反馈。近日,JavaScript 数据表格方案AG Grid版本,本次更新为开发者带来了更灵活的数据分组方式、更顺畅的大数据集交…...

BOE(京东方)IPC电竞嘉年华盛典圆满收官 第三届无畏杯总决赛引领电竞生态发展热潮

9月12日,BOE IPC电竞嘉年华盛典暨第三届BOE无畏杯《无畏契约》挑战赛总决赛在北京中关村国际创新中心圆满收官,来自大众赛道的“肌肉瞄准”战队最终赢得冠军奖杯。作为BOE(京东方)全球创新伙伴大会2025(BOE IPC2025)中备受瞩目的标杆性活动,本届赛事首次以《无畏契约》全…...

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

P1886 滑动窗口 /【模板】单调队列做题思路:#include <bits/stdc++.h>using namespace std; #define int long longconst int maxn = 1e6 + 10;int n,k,a[maxn];deque<int> dp; //双端队列,普通队列队尾无法删除 signed main(){ ios::sync_with_stdio(0); cin.t…...

kingbase金仓数据库docker部署完整步骤

使用docker: docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 docker镜像包: 下载地址:https://ww…...

glTF/glb功能、应用和 5 个基本最佳实践

添加图片注释,不超过 140 字(可选) 在 3D 内容重新定义我们在线购物、学习和互动方式的世界中,glTF 文件格式已成为行业标准。glTF(GL 传输格式的缩写)由 Khronos Group(也是 WebGL 和 Vulkan 的幕后黑手)创建的,被设计为“3D 的 JPEG”,以紧凑、高效的方式提供针对 …...

Spotify 音乐ML练习数据集含158 个特征,11

数据概览与特征说明 本 Spotify ML 练习数据集专为机器学习初学者设计,旨在提供端到端的 ML 管道实践资源。原始数据含 24 个特征,经处理后扩展至 158 个工程特征,涵盖 11.4 万 + 首 Spotify 歌曲信息。 ,涵盖流行度评分、音频特征、流派标签、聚类目标及艺术家统计量。 核…...

abc423

AC 6 (ABCDEF), Score 2050, Penalty 97:57(2), Rank 419, Rating 1358→1415(+57)不行了这场 abc 对我太友好了。 B 吃一发罚时是因为忘记判全 0 来着。 D 直接优先队列就可以。 E 一眼莫队感觉 3e5 很能跑就不动脑子往上写了( F 二项式反演秒了,但是把 \(m\) 打成 \(n\) 一…...

AI辅助分析HP DL360 GEN7 服务器安装USB3扩展卡

AI辅助分析HP DL360 GEN7 服务器安装USB3扩展卡背景 之前我们文章写过惠普HP DL360 GEN7服务器扩展显卡,与解决服务器磁盘阵列问题,今天我们尝试增加一块扩展USB3.0的扩展卡。 我们通过AI搜索先调查研究。实践https://metaso.cn/s/rh2BUAQ文档对话原始文档是英文的,我们…...

AI 应用开发,不就是调个接口么?

AI 技术发展日新月异,对程序员的要求也在不断提高。**AI 相关知识不再只是算法工程师需要了解,而是每个程序员都必须掌握的基本技能**。大家好,我是程序员鱼皮。 由于 AI 的流行,很多公司开始搞起了 AI 相关的业务,或者给老项目加个 AI 相关的功能。 这也给开发方向的程序…...

95.费解的开关

95.费解的开关 用枚举的思想,把第一行先枚举了 (通过: for (int op = 0; op < 32; op ++ )for (int i = 0; i < 5; i ++ )if (op >> i & 1)) 根据第i行去trun第i+1行来改变第i行 trun的改变利用了偏移量来简化 #include <iostream> #include <alg…...

最新药物数据集下载:来自Drugs

数据集概述与重要性 在当今医疗健康领域,数据驱动的决策变得越来越重要。药物相关结构化数据集作为连接医药研究与人工智能应用的关键桥梁,为研究人员、数据科学家和医疗从业者提供了宝贵的资源。本数据集从权威医药网站Drugs.com提取并经过严格预处理,包含了丰富的药物信息…...

【VPX361】基于3U VPX总线架构的XCZU47DR射频收发子模块

产品概述 VPX361是一款基于3U VPX总线架构的8路射频收发子模块,板卡采用1片XCZU47DR RFSOC来实现8路射频信号的高速采集、信号生成以及处理,并进行智能目标识别。该板卡的PS端支持1组72位DDR4 SDRAM,PL端支持1组32位DDR4 SDRAM,支持1片32GB EMMC存储单元,支持2片QSPI FLAS…...

自动驾驶ADAS数据集 13万张高清道路车辆识别图像 覆盖多场景智能交通应用 支持目标检测图像识别模型训练与AI视觉算法开发

引言与背景 在自动驾驶、智能交通和车联网等领域,高精度车辆识别是安全决策的前提。无论是面向全自动驾驶,还是日益普及的高级驾驶辅助系统(ADAS),都依赖大量多场景、多车型的标注数据进行模型训练。 然而,现实中存在两个挑战:场景不均衡 ——多数数据集中夜间、雨雾等极…...

Norwood-Hamilton男性脱发分级图像集|2400+张多角度高清头皮图像|涵盖7类脱发诊断标注|适用于AI诊断工具开发、皮肤科研究与植发产品研发|包含5角度标准化拍摄、支持秃顶早期检测

数据集概述 男性脱发(雄激素性脱发)是困扰全球约50%男性的常见皮肤问题,准确诊断和分级对治疗方案的选择至关重要。本数据集针对这一临床需求,系统性地收集了2400多张高质量男性脱发头皮图像,为AI辅助诊断提供了标准化训练资源。 所有图像均从五个标准化角度(前额、顶部、…...

AI生成文本检测数据集:基于不平衡数据集(人类94% vs AI 6%)的高效机器学习模型训练,涵盖ChatGPT、Gemini等LLM生成内容

引言与背景 随着以ChatGPT和Gemini为代表的大型语言模型(LLM)的快速发展,人工智能生成文本(AIGC)已广泛应用于学术研究、内容创作、新闻传播和日常交流等多个领域。这些模型生成的内容流畅度和逼真度极高,不仅显著提升了信息生产效率,同时也带来了学术不端、虚假信息泛滥…...

阶跃星辰开源Step-Video-T2V模型:300亿参数打造高保真视频生成新标杆

阶跃星辰开源Step-Video-T2V模型:300亿参数打造高保真视频生成新标杆 在AI视频生成技术快速发展的当下,国内AI公司阶跃星辰正式宣布开源其最新研发的Step-Video-T2V文生视频模型。这款参数规模高达300亿的大模型能够生成长达204帧的540P高清视频,在多个关键指标上展现出行业…...

多多报销小程序系统详解

1. 概述总结 多多报销是一款基于微擎系统交付的商家运营工具集成小程序,支持微信小程序,采用 PHP5.4、PHP5.5、PHP7.1 开发,源码未加密,属于官方正品。其核心是打造另类商家运营模式,集成多种运营工具,目前主要采用排队返现模式,后续将扩展平台积分模式、每天返现、抽奖…...

第0章 矿卡EBAZ4203爆改zynq开发板介绍和VIVADO的安装

前言 STM32暂时没有感兴趣的点来写了,后续可能会做LVGL的移植和开发,开新坑吧,也是以前工作时玩的板子 由于本人较懒,记录主要是过程,由于zynq的比stm32做的人少很多,资料也少很多,我会简要介绍原理,操作流程主要由图片加少量文字组成一、想法萌发 在查资料时看到有人用…...

德创恋爱话术宝典介绍

1. 概述总结 德创恋爱话术宝典是一款基于微擎系统的应用,微擎系统是一款基于 PHP 开发的开源应用生态系统,主要用于快速搭建微信公众号、小程序等应用,同时支持 Web 系统开发与部署。德创恋爱话术宝典支持无限多开,适用于微信公众号、微信小程序、PC 等类型,支持 PHP7.3。…...

无痕检测是否注册iMessage服务,iMessages数据筛选,iMessage蓝号检测协议

一、实现iMessage蓝号数据筛选的两种方式:1.人工筛选,将要验证的号码输出到文件中,以逗号分隔。再将文件中的号码粘贴到iMessage客户端的地址栏,iMessage客户端会自动逐个检验该号码是否为iMessage账号,检验速度视网速而定。红色表示不是iMessage账号,蓝色表示iMessage账号…...

机器学习回顾(二)——KNN算法 - 教程

机器学习回顾(二)——KNN算法 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important;…...

利用langchain创建信息检索链对话应用

以下内容有AI生成内容,请注意区分信息检索链 信息检索链三步流程走向图 flowchart TDA[用户输入问题] --> B[第一步: 查询优化]subgraph B [查询优化]B1[原始用户问题] --> B2[LLM分析并优化]B2 --> B3[生成多个搜索查询]endB --> C[第二步: 信息检索]subgraph C …...

不同的.cs文件的命名空间相同

在 .NET(包括 C#)里,“同一个命名空间”完全可以散落在多个 .cs 文件——甚至散落在多个不同的项目/程序集里。不同文件但同一命名空间的类型访问级别受限 → internal 仍互相可见(同一程序集内);public 随便用;private/file 只能在声明文件内。命名空间是“逻辑地址”,…...

MyEMS:开源的力量,如何为企业能源管理带来颠覆性变革?

在能源成本不断上涨和碳中和成为全球共识的今天,高效能源管理已成为企业的核心竞争力。然而,传统能源管理系统往往存在成本高昂、封闭僵化、难以定制等问题,让许多企业望而却步。正是在这样的背景下,MyEMS 作为一款完全开源的能源管理系统,正在以其独特优势重新定义行业标…...

http

上一篇文章 初始化 MCP 环境 & 创建 MCP Server (一) 讲的是如何在 SSE 模式下启动 MCP Server。...

AI招聘机器人制造商Paradox.ai因弱密码泄露数百万求职者数据

安全研究人员发现AI招聘平台Paradox.ai因使用弱密码"123456"导致麦当劳等企业的6400万求职者信息泄露。调查还发现该公司越南开发者的设备感染信息窃取恶意软件,暴露出更多企业内部凭证和认证cookie。弱密码揭露AI招聘机器人制造商Paradox.ai的安全漏洞 安全研究人员…...

完整教程:【Leetcode hot 100】543.二叉树的直径

完整教程:【Leetcode hot 100】543.二叉树的直径pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace…...