Day6上午解题
预计分数:100+100+30=230
实际分数:90+25+10=125
T1少判了一种情况,T2的贪心是错的,T3被卡了。。。
T1
模拟水题,注意20的可以用3个5块的找
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<queue> 6 #include<algorithm> 7 #define LL long long 8 using namespace std; 9 const int MAXN=1e6+10; 10 const int INF=0x7fffff; 11 inline int read() 12 { 13 char c=getchar();int flag=1,x=0; 14 while(c<'0'||c>'9') {if(c=='-') flag=-1;c=getchar();} 15 while(c>='0'&&c<='9') x=x*10+c-48,c=getchar();return x*flag; 16 } 17 int n; 18 int a[MAXN]; 19 int now=0; 20 int mon[MAXN]; 21 int main() 22 { 23 // freopen("book.in","r",stdin); 24 // freopen("book.out","w",stdout); 25 n=read(); 26 for(int i=1;i<=n;i++) a[i]=read(); 27 for(int i=1;i<=n;i++) 28 { 29 if(a[i]==5) mon[5]++; 30 if(a[i]==10) 31 { 32 if(mon[5]==0){printf("NO");return 0;} 33 else mon[5]--,mon[10]++; 34 } 35 if(a[i]==20) 36 { 37 if((mon[5]<1||mon[10]<1)&&(mon[5]<3)) {printf("NO");return 0;} 38 else 39 { 40 if(mon[10]>=1) 41 mon[5]--,mon[10]--; 42 else 43 mon[5]=mon[5]-3; 44 } 45 } 46 } 47 printf("YES"); 48 return 0; 49 } 50 51 /* 52 4 53 5 5 10 20 //YES 54 3 55 10 5 5 //NO 56 57 2 58 5 20//NO 59 60 4 61 5 5 10 10 5 5 5 20//YES 62 */
T2
倒序模拟,用栈维护,裸的括号序列匹配
T3
||bitset优化BFS
作者:自为风月马前卒
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。