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

C++:对拍(教程超详细)

hello大家好,这里是霍田的博客。

今天我们来聊聊对拍(C++的版本)。

(求点赞,求关注,求收藏 o(* ̄▽ ̄*)ブ)

一、对拍是什么

        对拍字面意思就是“两份代码运行构造的样例,对着看结果”,

        能够在比赛中快速找出自己代码的错误。

二、对拍怎么写

        1.准备:

                (1).一台Windows电脑。

                (2).一个代码编辑器,如VSCode,Dev-C++即可(不必装太大的软件)(点蓝字即可查看VSCode安装攻略)

        2.操作

                (1).打开VSCode

                (2).新建3个文件,命名要以.cpp结尾。

                        例如:taotaozhaipingguo-std.cpp taotaozhaipingguo-bl.cpp taotaozhaipingguo-gen.cpp

                        (建议大家按照:【题目名称/题目编号-干什么用的.cpp】来写。(std就是现在有问题的程序,bl就是这个题的暴力写法(一定要是正确的!),gen就是构造数据的))

                std.cpp示例如下:(01背包)

#include <bits/stdc++.h>
using namespace std;int n, m, v[1001], w[1001], f[1001][1001];int main() {cin >> n >> m;for(int i = 1; i <= n; i ++) {cin >> v[i] >> w[i];}memset(f, 128, sizeof(f));f[0][0] = 0;for(int i = 1; i <= n; i ++) {for(int j = 0; j <= m; j++) {if(j <= v[i])f[i][j] = f[i - 1][j];elsef[i][j] = max(f[i - 1][j], f[i - 1][j - v[i]] + w[i]);}}int ans = 0;for(int i = 0; i <= m; i ++) {ans = max(ans, f[n][i]);}cout << ans << endl;
}

                gen.cpp示例如下:(01背包)

#include <bits/stdc++.h>
using namespace std;int main() {srand(time(0));int n = rand() % 20 + 1;int m = rand() % 1000 + 1;printf("%d\n", n);for(int i = 1; i <= n; i ++) {int v = rand() % 10 + 1;int w = rand() % 10 + 1;printf("%d %d\n", v, w);}
}

                        bl.cpp示例如下:(01背包)

#include <bits/stdc++.h>
using namespace std;int n, m, v[1001], w[1001], f[1001][1001];int main() {cin >> n >> m;for(int i = 1; i <= n; i ++) {cin >> v[i] >> w[i];}memset(f, 0, sizeof(f));for(int i = 1; i <= n; i ++) {for(int j = 0; j <= m; j++) {if(j < v[i])f[i][j] = f[i - 1][j];elsef[i][j] = max(f[i - 1][j], f[i - 1][j - v[i]] + w[i]);}}int ans = 0;ans = max(ans, f[n][m]);cout << ans << endl;
}

                (3).新建一个bat文件,命名方式:【题目名称/题目编号-duipai.bat】

                        duipai.bat文件示例如下:

                                

g++ gen.cpp -o gen -g -O2
g++ std.cpp -o std -g -O2
g++ bl.cpp -o bl -g -O2:loopgen > 1.txt;std < 1.txt > 2.txtbl < 1.txt > 3.txtfc 2.txt 3.txtif errorlevel 1 pause
goto loop

        随后退出VScode,在文件夹中启动duipai.bat程序即可。
                

http://www.dtcms.com/a/352859.html

相关文章:

  • 【微服务】SpringBoot 整合 Easy-Es 实战操作详解
  • XC6SLX75-2FGG484C Xilinx Spartan-6 LX FPGA
  • 一文详解 LangChain4j AiServices:自动代理实现大模型交互
  • 从文本到二进制:HTTP/2不止于性能,更是对HTTP/1核心语义的传承与革新
  • C++:知识点小结
  • 在Windows系统上升级Node.js和npm
  • camel agent
  • 人工智能安全地图:将人工智能漏洞与现实世界的影响联系起来
  • 【设计模式】简单工厂模式
  • 利用MCP实现爬虫智能体,获取数据竟如此简单恐顾
  • 【Python学习笔记】whl包打包
  • 【Redis#7】Redis 数据结构 -- Set 类型
  • AV1到达开始和约束时间
  • 如何避免绕过WAF 直接访问云主机
  • 从 WPF 到 Avalonia 的迁移系列实战篇1:依赖属性的异同点与迁移技巧
  • 学术/报告场景实测:从申请OpenAI API Key获取并实现GPT-5 PDF分析机器人(含源码)
  • 【Linux】从0到1掌握进程控制:终止、等待与替换的核心逻辑
  • 音频中的噪音门
  • 视频加水印_带gif 加动态水印 gif水印 视频浮动水印
  • 2025年03月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • 《MongoDB 常用命令详解:从数据库操作到高级查询》
  • mongodb influxdb
  • Vue JS安装部署与使用方法(保姆级教程)
  • Java 实现 MongoDB ObjectId 算法
  • Python常见设计模式3: 行为型模式
  • 数据分析与数据挖掘
  • 【技术教程】如何为ONLYOFFICE协作空间开发文件过滤UI插件
  • string类的学习及模拟
  • vue拖动排序,vue使用 HTML5 的draggable拖放 API实现内容拖并排序,并更新数组数据
  • 【无标题】淘宝直播间详情数据