洛谷入门2【分支结构】题单题解

目录

闰年判断

肥胖问题

三位数排序

不高兴的津津

买铅笔

ISBN号码

 小鱼的航程

三角函数

ABC


​​​​​​【入门2】分支结构 - 题单 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

闰年判断

  • ①400的倍数
  • ②是4的倍数但不是100的倍数
if((n%4==0&&n%100!=0)||n%400==0)

肥胖问题

  • 在输出时,请四舍五入保留六位有效数字输出,如果小数部分存在后缀 00,不要输出后缀 00。
  • 可用%g

(106条消息) 保留有效位数;保留小数点后n位;_阳懿的博客-CSDN博客

printf("%.6g\nOverweight", criterion);

三位数排序

 

不高兴的津津

#include<iostream>
#include<iomanip>
using namespace std;
int main() {
	int a[7], b[7],sum[7],max=0,k;
	for (int i = 0; i < 7; i++)
	{
		cin >> a[i] >> b[i];
		
	}
	bool happy = true;
	for (int i = 0; i < 7; i++)
	{
		sum[i] = a[i] + b[i];
		if (sum[i] > 8)
		{
			happy = false;
		}
		if (sum[i] > max)
		{
			max = sum[i];
			k = i;
		}
	}
	if (happy == true)
		cout << "0";
	if (happy == false)
		cout << k+1;



	return 0;
}

买铅笔

#include<iostream>
#include<iomanip>
#include<math.h>
#include<algorithm>
using namespace std;
int main() {
	int n,a;
	double pencil[3], sum[3];
	long long price[3];
	cin >> n;
	for (int i = 0; i < 3; i++)
	{
		cin >> pencil[i] >> sum[i];
	}
	for (int i = 0; i < 3; i++)
	{
		price[i]=ceil(n / pencil[i])*sum[i];
	}
	cout<<min(price[2],min(price[0], price[1]));
	return 0;
}

ISBN号码

#include<iostream>
#include<string>
#include<math.h>
#include<algorithm>
using namespace std;
int main() {

	string a;
	int sum = 1,sbm=0;
	char x = 'X';
		cin >> a;
	for (int i = 0; i < 11; i++)
	{
		if (isdigit(a[i]))
		{
			sbm += (a[i]-'0') * sum;
			++sum;
		}
	}
	sbm %= 11;
	if (a[12] == 'X'&&sbm == 10)
	{
		cout << "Right";
	}
	else if (a[12]!='X' && a[12]-'0' == sbm)
	{
		cout << "Right";
	}
	else
	{
		for (int i = 0; i < 12; i++)
		{
			cout << a[i];
		}
		if (sbm == 10)
			cout << "X";
		else
		cout << sbm;
	}
	return 0;
}

 小鱼的航程

#include<iostream>

using namespace std;

int main() {
	int n, x,a=0;
	cin >> x >> n;
	//直接总体安排
	while (n--)
	{
		if (x != 6 && x != 7)
			a += 250;
		x++;
		if (x == 8)
			x = 1;

	}
	cout << a;
	return 0;
}

三角函数

#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;

int main() {
	int a, b, c,min1,max1;
	cin >> a >> b >> c;
	min1 = min(c, min(a, b));
	max1 = max(c, max(a, b));
//直角三角形 最小锐角的sin值 必定是 最小边/最大边
	for (int i = 2; i <= min1; i++) //找因数,消去。
	{
		if (min1%i == 0 && max1%i == 0)
		{
			min1 = min1 / i;
			max1 = max1 / i;
		}
	}
	cout << min1 << "/" << max1;
	return 0;
}

 

ABC

#include<iostream>
#include<iomanip>
#include<algorithm>
#include<string>
using namespace std;
int main()
{
	string a;
	int A[3];
	for (int i = 0; i < 3; i++)
	{
		cin >> A[i];
	}
	cin >> a;
	sort(A, A + 3);
	for (int i = 0; i < 3; i++)
	{
		cout << A[a[i] - 'A']<<" ";
	}
	return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
题目描述似乎缺失了关键信息,通常我会需要了解“P10780 食物”是什么具体的算法竞赛题目,它来自在线平台洛谷(Luogu),以及该题目的大致背景、条件和目标。洛谷食物(Food)可能是某种数据结构或算法问题,比如贪吃蛇、分配任务等。 然而,我可以给你提供一个通用的模板: **[洛谷 P10780 食物 - 题目解析]** 题目名称:P10780 食物(假设是关于食物分配或者饥饿游戏的问题) 链接:[插入实际题目链接] **背景:** 此题通常涉及动态规划或者搜索策略。场景可能是有n个参与者(选手或角色),每个都有特定的食物需求或者优先级,我们需要在有限的食物资源下合理分配。 **分析:** 1. **输入理解**:首先读入n个参与者的信息,包括每个人的需求量或优先级。 2. **状态定义**:可以定义dp[i][j]表示前i个人分配完成后剩余的食物能满足第j个人的最大程度。 3. **状态转移**:递推式可能涉及到选择当前人分配最多食物的版本,然后更新剩余的食物数。 4. **边界条件**:如果剩余食物不足以满足某人的需求,则考虑无法分配给他;如果没有食物,状态值设为0。 5. **优化策略**:可能需要对状态数组进行滚动更新,以减少空间复杂度。 **代码示例(伪代码或部分关键代码片段):** ```python # 假设函数分配_food(demand, remaining)计算分配给一个人后剩余的食物 def solve(foods): dp = [[0 for _ in range(max_demand + 1)] for _ in range(n)] dp = foods[:] # 从第一个到最后一个参与者处理 for i in range(1, n): for j in range(1, max_demand + 1): if dp[i-1][j] > 0: dp[i][j] = max(dp[i][j], dp[i-1][j] - foods[i]) dp[i][j] = max(dp[i][j], distribute_food_to(i, dp[i-1][j])) return dp[n-1][max_demand] ``` **相关问题--:** 1. 这道题是如何运用动态规划的? 2. 如果有优先级限制,应该如何调整代码? 3. 怎样设计搜索策略来解决类似问题?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值