c++入门记录

1.Hello,World程序

#include <iostream>
int main()
{
	using namespace std;
	cout << "Hello,World!\n";
	return 0;
}

(报错:无法打开源文件ctype.h等477个error,立即推:放弃编程)
后来发现是sdk版本问题,需要在"工具->获取工具和功能"打开安装管理器,会发现有多个可选的SDK,添加下载Windows 10 SDK 10.0.20348.0,成功!

输出结果
成功运行
2.简单的输入计算并输出程序

#include <iostream>
int main()
{
	using namespace std;
	int num1 = 0, num2 = 0, sum = 0;
	cout << "请依次输入你要相乘的两个数\n";
	cin >> num1 >> num2;
	sum = num1 * num2;
	cout << "计算结果为" << sum;
	return 0;
}

输出结果
在这里插入图片描述
3.背包问题

先上题目吧
在这里插入图片描述
看到题目之后一脸懵,于是开始听闫佬的课,记录一下听课过程。
首先学习了朴素算法,题目中寻找最大价值的过程,细化到每个物体,就是放与不放的选择。共有2^N中选择,当然其中有很多是不满足条件的(即总体积不超过背包容积V)
可将第i次选择细致地想一想,即:在前(i-1)次选择做好之后,当前状态下,选择放第i个物体和不放第i个物体中,可以取得更大利益的一种。
写成编程语句就是:

#include <iostream>
using namespace std;
int i = 0;
int j = 0;
const int N = 1010;
int v[N], w[N];
int f[N][N];
int n, m;
int main()
{
	
	cin >> n >> m;
	for (i = 1; i <= n; i++)cin >> v[i] >> w[i];
	for (i = 1; i <= n; i++)
	{
		for (j = 0; j <= m; j++)
		{
			f[i][j] = f[i - 1][j];
			if (j >= v[i])f[i][j] = max(f[i][j], f[i - 1][j-v[i] ]+ w[i]);
		}
	}

	cout << f[n][m]<<endl;
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值