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

洛谷一键跳转vjudge插件

支持洛谷一键跳转vjudge,只需在题目页面点击右键,选择“跳转vjudge”即可。

// ==UserScript==
// @name         洛谷一键跳转VJudge
// @namespace    http://tampermonkey.net/
// @version      1.0.0
// @description  支持洛谷所有题目跳转VJudge,修复CF带数字后缀的编号匹配
// @author       Tangyixao
// @match        https://www.luogu.com.cn/problem/CF*
// @match        https://www.luogu.com.cn/problem/SP*
// @match        https://www.luogu.com.cn/problem/AT*
// @match        https://www.luogu.com.cn/problem/UVA*
// @match        https://www.luogu.com.cn/problem/P*
// @grant        none
// ==/UserScript==(function () {"use strict";function getVjudgeUrl() {const luoguUrl = window.location.href;const luoguPath = window.location.pathname;if (luoguPath.startsWith("/problem/P")) {const pMatch = luoguPath.match(/P(\d+)/);return pMatch? `https://vjudge.net/problem/洛谷-P${pMatch[1]}` : null;} else if (luoguPath.startsWith("/problem/AT_")) {const atMatch = luoguPath.match(/AT_(\w+)/);return atMatch? `https://vjudge.net/problem/AtCoder-${atMatch[1]}`: null;} else if (luoguPath.startsWith("/problem/UVA")) {const uvaMatch = luoguPath.match(/UVA(\d+)/);return uvaMatch ? `https://vjudge.net/problem/UVA-${uvaMatch[1]}` : null;} else if (luoguPath.startsWith("/problem/CF")) {// 修复CF编号匹配const cfMatch = luoguPath.match(/CF(\d+[A-Za-z\d]*)/);return cfMatch? `https://vjudge.net/problem/CodeForces-${cfMatch[1]}`: null;} else if (luoguPath.startsWith("/problem/SP")) {let spojId = null;const originalLink = document.querySelector('a[href*="spoj.com/problems/"]',);if (originalLink) {spojId = originalLink.href.split("/problems/")[1].replace("/", "");} else {const pageText = document.body.innerText;const spojTextMatch = pageText.match(/SPOJ\s*[-\s:]([A-Za-z0-9_-]+)/i);spojId = spojTextMatch ? spojTextMatch[1].trim() : null;}return spojId ? `https://vjudge.net/problem/SPOJ-${spojId}` : null;}return null;}const copyBtn = Array.from(document.querySelectorAll("button")).find((btn) => btn.innerText.trim() === "复制题目",);const vjudgeUrl = getVjudgeUrl();if (copyBtn && vjudgeUrl) {const jumpBtn = document.createElement("button");jumpBtn.innerText = "跳转VJudge";const copyStyles = window.getComputedStyle(copyBtn);["backgroundColor","color","border","borderRadius","padding","fontSize","fontFamily","cursor","height","lineHeight","textAlign","whiteSpace","verticalAlign","display","marginTop","marginBottom",].forEach((styleProp) => {jumpBtn.style[styleProp] = copyStyles[styleProp];});jumpBtn.style.marginLeft = "5px";jumpBtn.style.minWidth = copyStyles.minWidth || "80px";jumpBtn.addEventListener("click", () => {window.open(vjudgeUrl, "_blank");});copyBtn.parentNode.insertBefore(jumpBtn, copyBtn.nextSibling);} else if (!vjudgeUrl) {const platform = luoguPath.match(/\/problem\/(\w+)/)[1].slice(0, 2);console.warn(`洛谷${platform}题目跳转VJudge:未找到有效题目标识符,请检查页面格式`,);}
})();
http://www.jsqmd.com/news/332155/

相关文章:

  • 审稿人已无法分辨AI生成与研究者撰写的论文,中山大学、东南大学、兰州大学网安学院导师拆解“真创新”
  • 模型越复杂越不准?2026风电光伏功率预测的“三座误差大山”与破解之道
  • 2026地产开发运营商排名,云桥资管专业团队保障海外投资收益
  • IDEA 免费了,2025.3 版本开始,JetBrains 发布了“统一版”,免费版(即原来的社区版)的功能得到了显著增强,缩小了与旗舰版的差距。
  • 从从52x(521/522)超时错误突围:云上云下双场景排查与通用化解决方案
  • 聊聊靠谱的家用净水器品牌公司,哪家性价比高
  • malloc 在多线程下为什么慢?——从原理到实测
  • 开题卡住了?AI论文写作软件 千笔写作工具 VS PaperRed,本科生专属神器!
  • 2026年国内排行前列的包衣机订制厂家口碑推荐,高效粉碎机/粉碎整粒机/高效包衣机附件/换筒包衣机,包衣机制造厂哪家好
  • AGV智能物流规划公司哪家好,浙江锦舜净化优势突出
  • 学霸同款10个降AI率工具 千笔AI帮你降AIGC
  • 选购讯灵AI智能生态系统代理,有哪些口碑好的品牌推荐?
  • 【算法实战】C 语言实现无重复字符的最长子串:滑动窗口 + 哈希表高效解法(附完整可运行代码)
  • Linux Shell(四)-- 设置信号功能 trap
  • 2026年行业内有实力的升降机品牌排行,自行走升降机/装车平台/防爆升降机/升降机/防爆升降平台,升降机企业哪家靠谱
  • 深度测评9个降AIGC网站 千笔AI帮你精准降AI率
  • 2026年郑州地区口碑好的润滑科技公司排名,郑州拓牌润滑科技实力怎么样
  • 2025年重型货架界黑马涌现,口碑榜单看这里!高位货架仓储/轻型仓储仓库货架/仓库货架,重型货架生产厂家哪个好
  • Java助力宠物自助洗澡物联网系统源码集
  • 政策锚定新航向:中国楼市的现状深耕与未来展望(2026年2月)
  • 2026年行业内质量好的除雪设备生产厂家选型攻略,农用履带底盘/撒盐除雪设备/小型履带底盘/除雪设备,除雪设备厂商排行榜
  • Java选择结构
  • 深度学习框架YOLO模型如何训练无畏契约数据集 VaLoRant YOLO模型专用数据集 检测敌人
  • 一篇搞定全流程 9个AI论文工具:本科生毕业论文+开题报告全场景测评
  • 聊聊值得选的碳分子筛制氮机,靠谱品牌推荐
  • 基于springboot的就业推荐管理系统设计实现
  • Java剪辑接单:智能报价比价系统源码剖析
  • 2026年大型塔转滚塑设备/水桶滚塑设备热门厂家推荐汇总
  • 基于SpringBoot的传统手工艺文化展示平台的设计与实现
  • 救命神器8个降AI率网站,千笔帮你轻松降AIGC