田微深 2024-05-27 20:54 采纳率: 62.5%
浏览 23

vj上怎么远程登洛谷??

img


要提交一个题,然后
出现这样的页面接下来点哪里,本人已经有一个了洛谷账号了
谢谢

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-27 20:54
    关注

    引自免费微信小程序:皆我百晓生

    为了在Vim-Jupyter(简称VJ)上远程登录洛谷并提交题目,你需要先安装必要的插件和配置。这里是一个详细的步骤指南:

    1. 确保你已经在Vim中安装了Vim-Jupyter插件: 如果还没有安装,可以使用下面的命令在Vim里安装Vim-Jupyter:

      git clone https://github.com/klen/vim-jupyter.git ~/.vim/bundle/vim-jupyter
      
    2. 配置Vim-Jupyter: 打开~/.vimrc文件,在末尾添加以下内容,根据实际情况修改路径和参数:

      " 配置Vim-Jupyter
      let g:jupyter_server_python = '/usr/bin/python3'  " Python解释器路径
      let g:jupyter_notebook_dir = '~/.local/share/jupyter/runtime/'  " 笔记本运行时目录
      nmap <silent> <Leader>j :<C-U>execute 'call Jupyter#OpenNotebook("' . expand(g:jupyter_notebook_dir) . '")'<CR>
      
    3. 启动Vim-Jupyter服务器: 在终端中执行以下命令启动Vim-Jupyter服务器:

      python3 -m jupyter notebook --no-browser --port=8888
      

      这将启动一个本地Jupyter Notebook服务器,并监听8888端口。

    4. 在Vim中打开Jupyter Notebook: 启动Vim,按下\j\是 leader 键,通常是 Ctrl 或者 Esc),这将会打开一个新的Jupyter Notebook窗口。

    5. 创建一个新的Python notebook: 在打开的Jupyter Notebook界面中,点击右上角的"+"按钮,选择"Python [conda env]"或"Python 3"(取决于你的环境)来创建一个新的notebook。

    6. 配置洛谷环境: 在新创建的notebook的第一行,粘贴以下代码并运行它,以设置洛谷的Cookie(请替换为你的实际账户信息):

      import requests
      import json
      
      url = "https://www.luogu.org/login"
      headers = {
          "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.3"
      }
      payload = {
          "username": "your_username",  # 你的洛谷用户名
          "password": "your_password",  # 你的洛谷密码
          "keep_login": "on",
          "next": ""
      }
      
      response = requests.post(url, data=payload, headers=headers)
      cookie_dict = dict(response.cookies)
      
      for key, value in cookie_dict.items():
          if key.startswith("client_id") or key.startswith("_uid"):
              exec(f"requests.utils.cookiejar_from_dict(cookie_dict)[{key}].value = '{value}'")
      

      注意:这个方法依赖于requests库,如果你没有安装,可以通过pip进行安装:

      pip install requests
      
    7. 编写代码并提交题目: 编写你的C++代码到notebook中的单元格内。完成后,可以在单元格上方选择"Cell" -> "Run Cell"来运行代码。确保代码正确无误后,复制输出结果。

    8. 通过洛谷API提交代码: 将你的洛谷题号、语言类型、编译器选项、代码和输出结果组合成POST请求,发送给洛谷的提交接口。以下是示例代码,你需要将其粘贴到新的单元格中并运行:

      def submit_code(problem_id, language, compiler_options, code, output):
          base_url = "https://api.luogu.org/problems/"
          submit_url = f"{base_url}{problem_id}/submit"
      
          payload = {
              "language": language,
              "program": code,
              "options": compiler_options,
              "input": "",
              "output": output
          }
      
          response = requests.post(submit_url, data=payload, cookies=requests.utils.cookiejar_from_dict(cookie_dict))
          return response.json()
      
      problem_id = "12345"  # 替换为你想提交的题目ID
      language = "cpp"  # C++语言
      compiler_options = "-O2 -std=c++17"  # 根据需要调整编译器选项
      code = r"""
      // 你的C++代码
      """
      # 运行你的代码获取输出
      result = run_your_code_and_get_output()
      
      submission_response = submit_code(problem_id, language, compiler_options, code, result)
      print(submission_response)
      
      

      请确保已定义run_your_code_and_get_output()函数,用于运行你的代码并获取输出。运行上述代码后,你会看到提交的结果。

    完成以上步骤后,你应该能够在Vim-Jupyter中远程登录洛谷并提交题目。注意,这种方法可能存在安全风险,因为它涉及到存储和使用你的洛谷凭据。建议仅在可信的环境中使用此方法。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月27日

悬赏问题

  • ¥15 R语言卸载之后无法重装,显示电脑存在下载某些较大二进制文件行为,怎么办
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?
  • ¥15 关于#vue.js#的问题:修改用户信息功能图片无法回显,数据库中只存了一张图片(相关搜索:字符串)
  • ¥15 texstudio的问题,
  • ¥15 spaceclaim模型变灰色
  • ¥15 求一份华为esight平台V300R009C00SPC200这个型号的api接口文档
  • ¥15 字符串比较代码的漏洞
  • ¥15 欧拉系统opt目录空间使用100%
  • ¥15 ul做导航栏格式不对怎么改?