PAT 2020年秋 7-2 How Many Ways to Buy a Piece of Land (25 分) AC代码

该博客讨论了一个关于在赛博城中购买土地的问题。土地被分成多块,每块有两个相邻的地块,除了首尾各有一块只有一个相邻地块。用户需在给定预算内购买连续的地块。博客给出了输入输出规范,并展示了一个通过动态规划求解的AC代码,该代码遍历所有可能的购买组合并计算不同购买方式的数量。
摘要由CSDN通过智能技术生成

7-2 How Many Ways to Buy a Piece of Land (25 分)

The land is for sale in CyberCity, and is divided into several pieces. Here it is assumed that each piece of land has exactly two neighboring pieces, except the first and the last that have only one. One can buy several contiguous(连续的) pieces at a time. Now given the list of prices of the land pieces, your job is to tell a customer in how many different ways that he/she can buy with a certain amount of money.

Input Specification:

Each input file contains one test case. Each case first gives in a line two positive integers: N (≤104), the number of pieces of the land (hence the land pieces are numbered from 1 to N in order), and M (≤109), the amount of money that your customer has.

Then in the next line, N positive integers are given, where the i-th one is the price of the i-th piece of the land.

It is guaranteed that the total price of the land is no more than 109.

Output Specification:

For each test case, print the number of different ways that your customer can buy. Notice that the pieces must be contiguous.

Sample Input:

5 85
38 42 15 24 9

结尾无空行

Sample Output:

11

结尾无空行

Hint:

The 11 different ways are:

38
42
15
24
9
38 42
42 15
42 15 24
15 24
15 24 9
24 9

按题目要求 挺简单的

AC代码:

#include<iostream>
using namespace std;
int N,M,ans=0;;
int price[10000];
int main(){
	cin>>N>>M;
	for(int i=0;i<N;i++){
		scanf("%d",&price[i]);
	}
	for(int i=0;i<N;i++){
		int cnt=0;
		int sum=0;
		for(int j=i;j<N;j++){
			if(sum+price[j]<=M){
				cnt++;
				sum+=price[j];
			}else{
				break;
			}
		}
		ans+=cnt;
	}
	printf("%d\n",ans);
	return 0;
} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值