所以,这两次的考试就是这么的近,也就隔了一天。
但是,今天的第一题特别的水,以至于我都AC了。但是,后面的题让我不得不想到昨天看到的笑话:
小明:老师,我不是不会做,而是这次的数学考试题目已经超出我的语文理解范围。
老师:这就是你考零分的理由?一边站着去。
所以,这次考试的题目,除了第一题外,剩下的都超出了我的语文理解范围。
第一题:就是一个卖资料的店,因为老板的数学不咋地,进了资料后没有剩下任何的钱。一本资料卖五元。而顾客会付5元,10元,20元。因为他进了货就没钱了,所以他只能拿前面顾客付的钱找后面顾客多给的钱。(注意:顾客的顺序不能换)
这题很简单。如果顾客付的是5元,那OK,之间收钱就好了。如果是10元,那也ok,只要看有没有5元可以找了,如果没有5元就输出“NO”,如果有就继续。当顾客付的是20元的时候,就有两种找钱方式,一种是10+5,还有一种是5+5+5。
因为五元既要找20元,还要找10元 的,所以如果是二十元,你能找10元的就尽量找,如果没有十元的再找5元的。
所以代码如下:
#include<bits/stdc++.h>
using namespace std;
int n,a[100100];
int x=0,y=0,z=0;
int main()
{
cin>>n;
for (int i=1;i<=n;i++) cin>>a[i];
for (int i=1;i<=n;i++)
{
if (a[i]==5) x++;
if (a[i]==10)
if (x>0)
{
y++;
x--;
}
else
if (a[i]==10&&x==0)
{
cout<<"NO"<<endl;
return 0;
}
if (a[i]==20)
if (y>0)
{
z++;
y--;
}
else if (x>1)
{
x-=2;
z++;
}
else if (x<=1&&y==0)
{
cout<<"NO"<<endl;
return 0;
}
}
cout<<"YES"<<endl;
return 0;
}
有没有觉得哪里不对劲?
我的程序里面有一个错误,就是以为顾客付的是15元而不是20元,所以是x-=2,而不是x-=3,按道理来说应该是错的,但是,我还是AC了。这就是数据的事了,据说还有直接在总钱数里加加减减的,居然也能A。
不说了,再说刘老师就要把题目都改成多组数据了。
剩下的题目还有一些是关于数论的,不会啊。还有好多是暴力可以拿30分,但是正解写的很……。题解写的更玄幻。
不说了