管道C语言(蓝桥杯题库,暴力解决)

问题描述

有一根长度为 \text{len}len 的横向的管道,该管道按照单位长度分为 \text{len}len 段,每一段的中央有一个可开关的阀门和一个检测水流的传感器。

一开始管道是空的,位于 L_iLi​ 的阀门会在 S_iSi​ 时刻打开,并不断让水流入管道。

对于位于 L_iLi​ 的阀门,它流入的水在 T_iTi​ (T_i \geq S_iTi​≥Si​) 时刻会使得从第 L_i - (T_i - S_i)Li​−(Ti​−Si​) 段到第 L_i + (T_i - S_i)Li​+(Ti​−Si​) 段的传感器检测到水流。

求管道中每一段中间的传感器都检测到有水流的最早时间。

输入格式

输入的第一行包含两个整数 n,\text{len}n,len,用一个空格分隔,分别表示会打开的阀门数和管道长度。

接下来 nn 行每行包含两个整数 L_i,S_iLi​,Si​,用一个空格分隔,表示位于第 L_iLi​ 段管道中央的阀门会在 S_iSi​ 时刻打开。

输出格式

输出一行包含一个整数表示答案。

样例输入

3 10
1 1
6 5
10 2

样例输出:5

思路:这里采用的暴力求解,一个一个列时间,然后通过时间来看,当前时间管道的的水是否充满,如果充满了,就可以输出当前时间,可以用数组来记录,当一个管道充满水就让当前数组对应的值为1,没有水的为1,然后遍历整个数组,如果全为0的话,就说明全部充满了。

代码:

#include <stdio.h>
int main(){
	int m,n,j,i,t,x,y,zum=0;
	scanf("%d%d",&n,&m);//n个阀门   //m个管道
	long long int guandao[10000]={0},num[10000]={0},dp[10000]={0};
	for(i=0;i<n;i++){
		scanf("%d",&j);//输入第j个管道 
		num[j]=1;
		scanf("%d",&guandao[j]);//第j个管道第~~时刻有水 
	} 
	for(t=1;t<=1000;t++){//遍历时间 
		zum=0;
		for(j=1;j<=m;j++){//遍历每一个管道 
			if(num[j]==1){
				 if(guandao[j]<=t){//当管道放水时间小于等于时间的时候,才有水 
					int l=t-guandao[j];//这里是在求打开之后,水流了多少格 
					int s=j-l,p=j+l;
					if(j-l<=1){//防止数组溢出,当水流到管道尽头的时候,就要 
						s=1;   //改变循环范围 
					}
					if(p>=m){
						p=m;
					} 
					for(x=s;x<=p;x++){
						dp[x]=1;
					}
				}
			}
		}
		for(y=1;y<=m;y++){
			if(dp[y]!=1){//这里就是检测整个dp数组,如果有一个为1就说明没有充满 
				zum=1;//这个时候zum=1; 
			}
		}
		if(zum==0){//如果zum没有为一的时候,就说明dp都满足有水 
			printf("%d",t);//打印当前时间, 
			return 0;//结束函数 
		}
	}
	return 0;
}

  • 22
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
以下是关于C语言蓝桥杯算法的讲解: 1. 蓝桥杯算法题目类型 蓝桥杯算法题目主要分为以下几类:数学题、递推题、搜索题、贪心题、动态规划题、图论题等。 2. 数学题 数学题是蓝桥杯出现频率最高的一类题目,主要考察对数学知识的掌握和应用能力。常见的数学题目有:最大公约数、最小公倍数、质数判断、进制转换、排列组合等。 3. 递推题 递推题是指通过已知的一些条件,推导出后续的结果。递推题目通常需要使用循环结构来实现。常见的递推题目有:斐波那契数列、汉诺塔、青蛙跳等。 4. 搜索题 搜索题是指在一个状态空间寻找目标状态的过程。搜索题目通常需要使用递归或循环结构来实现。常见的搜索题目有:深度优先搜索、广度优先搜索、回溯法等。 5. 贪心题 贪心算法是指在每一步选择都采取当前状态下最优的选择,从而希望导致结果是全局最优的算法。贪心题目通常需要使用排序等方法来实现。常见的贪心题目有:背包问题、活动安排等。 . 动态规划题 动态规划是一种将复杂问题分解成小问题解决的优化技术。动态规划题目通常需要使用递推或循环结构来实现。常见的动态规划题目有:最长上升子序列、最大子段和等。 7. 图论题 图论是研究图的性质和图之间关系的数学分支。图论题目通常需要使用图的遍历、最短路径等算法来实现。常见的图论题目有:最短路径、最小生成树等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

可不得兼

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

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

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

打赏作者

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

抵扣说明:

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

余额充值