【Week4 CSP B】咕咕东想吃饭【模拟】

题意:

一共有n天,每天需要买ai个生煎。共有两种购买方式:在某一天一次性买两个,或者为今明两天各买一个。每种购买方式都可以使用无数次。请问是否能每天恰好买ai个生煎。(最后一天不能用第二种购买方式)


思路:

每天先两个两个买,如果还剩一个,就用第二种方式购买,同时第二天要购买的生煎-1。若要购买的生煎<0或者最后一天使用了第二种购买方式,则不能每天恰好买ai个生煎。


总结:

一道模拟题,对应CSP T2,应注意最后一天的特判。


代码:

#include <iostream>
using namespace std;
int main()
{
	int n;
	cin>>n;
	int *a=new int [n];
	for(int i=0;i<n;i++)
		cin>>a[i];
	int ans=1;	//YES
	//处理第一天
	a[0]=a[0]%2;
	if(a[0]==1)	a[1]--;
	//处理中间 
	for(int i=1;i<n-1;i++)
	{
		if(a[i]<0)
		{
			ans=0;
			break;
		}
		//先两个两个买
		a[i]=a[i]%2;
		//单个买
		if(a[i]==1)	a[i+1]--; 
	}	
	//处理最后一天 
	if(a[n-1]<0)	ans=0;
	a[n-1]=a[n-1]%2;
	if(a[n-1]==1)	ans=0;
	if(ans==1)	cout<<"YES"<<endl;
	else if(ans==0)	cout<<"NO"<<endl;
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值