IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> Codeforces Round #661 (Div. 3) C. Boats Competition -> 正文阅读

[C++知识库]Codeforces Round #661 (Div. 3) C. Boats Competition

题目链接: https://codeforces.com/problemset/problem/1399/C

题目要求: 要求找出每艘船总重一定时,能凑出的船数最大值(当两人重量之和正好为船总重时才能乘一艘船)。

解题思路: 看题目数据,n很小,直接暴力即可。
一: 根据题目要求,要两个人坐一艘船,又每人体重范围为1~n。则船总重量范围为2 ~2*n。对船的总重进行遍历。
二: 思考可知,必然是体重平均(如最重的和最轻的坐一艘船)的情况能凑成的船数最多。因此对重量排序后采用类似双指针的方法从前后往中间遍历。遍历时有三种情况。(i:船总重)
1:w[l]+w[r]==i,说明l和r刚好能凑一艘船。遍历下一种情况,l++,r- -.
2:w[l]+w[r]<i,说明两人重量比船总重轻,需要重量增加。(因为对重量进行了从小到大的排序,因此要增加重量,l++,左边往右遍历即可)
3:w[l]+w[r]>i,说明两人重量比船总重重。需要减少重量。r- -(原因和2类似)

#include<iostream>
#include<algorithm>
using namespace std;
int w[55];
int main()
{
	int t;
	cin >> t;
	while (t--)
	{
		int n;
		cin >> n;
		for (int i = 0; i < n; i++)
			cin >> w[i];
		sort(w, w + n);
		int ans = 0;
		for (int i = 2; i <= 2 * n; i++)
		{
			int l = 0, r = n - 1;
			int count = 0;
			while (l < r && l >= 0 && r < n)//船总重为i时,遍历重量求能凑成的船数
			{
				if (w[l] + w[r] == i)//能凑成一船的情况
				{
					count++;
					l++;
					r--;
				}
				else if (w[l] + w[r] < i)//两人重量较船总重轻
					l++;
				else
					r--;
			}
			ans = max(ans, count);//取最大凑成船数
		}
		cout << ans << endl;
	}
	return 0;
}
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-24 00:18:35  更:2022-03-24 00:18:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 2:13:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码