20210403

dfs部分和问题

#include <bits/stdc++.h>
using namespace std;

int arr[21];
int k;
int n;

bool dfs(int i, int sum)
{
	if (i == n)
	{
		return sum == k;
	}
	if (dfs(i + 1, sum))
		return true;
	if (dfs(i + 1, sum + arr[i]))
		return true;
	return false;
}

int main()
{
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		cin >> arr[i];
	}

	cin >> k;
	bool flag = dfs(0, 0);
	if (flag)
	{
		cout << "YES" << endl;
	}
	else
	{
		cout << "NO" << endl;
	}
	system("pause");
	return 0;
}

Lake Counting

#include <bits/stdc++.h>
using namespace std;
int n, m;
int ans = 0;
char mp[102][102];
void dfs(int x, int y)
{
    mp[x][y] = '.';
    for (int i = -1; i <= 1; i++)
    {
        for (int j = -1; j <= 1; j++)
        {
            int nx = x + i, ny = y + j;
            if (nx >= 0 && ny >= 0 && nx < n && ny < m && mp[nx][ny] == 'W')
                dfs(nx, ny);
        }
    }
    return;
}
int main()
{
    cin >> n >> m;
    for (int i = 0; i < n; i++)
    {
        cin >> mp[i];
    }
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            if (mp[i][j] == 'W')
            {
                dfs(i, j);
                ans++;
            }
        }
    }
    cout << ans << endl;
    system("pause");
    return 0;
}

迷宫的最短路径

#include <bits/stdc++.h>
using namespace std;

const int INF = 100000000;
int n, m;
int sx, sy;
int gx, gy;
typedef pair<int, int> P;
char mp[100][100];
int d[100][100];
int dx[4] = {1, 0, -1, 0}, dy[4] = {0, 1, 0, -1};

//求从(sx,sy)到(gx,gy)的最短距离;
//如果无法到达,则是INF;

int bfs()
{
    queue<P> que;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            d[i][j] = INF;
        }
    }
    que.push(P(sx, sy));
    d[sx][sy] = 0;

    //不断访问直到对垒长度为0
    while (que.size())
    {
        P p = que.front();
        que.pop();

        if (p.first == gx && p.second == gy)
            break;

        for (int i = 0; i < 4; i++)
        {
            //移动之后的位置极为(nx,ny)
            int nx = p.first + dx[i], ny = p.second + dy[i];

            if (0 <= nx && nx < n && 0 <= ny && ny < m && mp[nx][ny] != 'W' && d[nx][ny] == INF)
            {
                //可以移动的话,则加入到队列,并且到该位置的距离确定为到p的距离+1
                que.push(P(nx, ny));
                d[nx][ny] = d[p.first][p.second] + 1;
            }
        }
    }
    return d[gx][gy];
}

int main()
{
    cin >> n >> m;
    for (int i = 0; i < n; i++)
    {
        cin >> mp[i];
    }
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            if (mp[i][j] == 'S')
            {
                sx = i;
                sy = j;
            }
            if (mp[i][j] == 'G')
            {
                gx = i;
                gy = j;
            }
        }
    }
    int ans = bfs();
    cout << ans << endl;
    system("pause");
    return 0;
}

区间调度问题

#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 100000;
int N;
int s[MAX_N], t[MAX_N];

pair<int, int> itv[MAX_N];

int main()
{
	cin >> N;
	for (int i = 0; i < N; i++)
	{
		cin >> s[i];
	}
	for (int i = 0; i < N; i++)
	{
		cin >> t[i];
	}
	for (int i = 0; i < N; i++)
	{
		itv[i].first = t[i];
		itv[i].second = s[i];
	}
	sort(itv, itv + N);
	int ans = 0;
	int t = 0;
	for (int i = 0; i < N; i++)
	{
		if (t < itv[i].second)
		{
			ans++;
			t = itv[i].first;
			cout << i + 1 << " " << endl;
		}
	}
	cout << ans << endl;
	system("pause");
	return 0;
}

Saruman’s Army

#include <bits/stdc++.h>
using namespace std;
int n;
int r;
int arr[100];

int main()
{
	cin >> n;
	cin >> r;
	for (int i = 0; i < n; i++)
	{
		cin >> arr[i];
	}
	sort(arr, arr + n);
	int i = 0;
	int ans = 0;
	while (i < n)
	{
		int s = arr[i++];
		while (i < n && arr[i] <= s + r)
			i++;

		int p = arr[i - 1];
		while (i < n && arr[i] <= p + r)
			i++;

		ans++;
	}
	cout << ans << endl;
	system("pause");
	return 0;
}

Fence Repair

#include <bits/stdc++.h>
using namespace std;
int n;
int l[100];

int main()
{
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        cin >> l[i];
    }
    int ans = 0;
    while (n > 1)
    {
        int mii1 = 0, mii2 = 1;
        if (l[mii1] > l[mii2])
            swap(l[mii1], l[mii2]);

        for (int i = 2; i < n; i++)
        {
            if (l[i] < l[mii1])
            {
                mii2 = mii1;
                mii1 = i;
            }
            else if (l[i] < l[mii2])
            {
                mii2 = i;
            }
        }

        int t = l[mii1] + l[mii2];
        ans += t;

        if (mii1 == n - 1)
            swap(mii1, mii2);
        l[mii1] = t;
        l[mii2] = l[n - 1];
        n--;//shousuo
    }
    cout << ans << endl;
    system("pause");
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.0-0.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值