zoukankan      html  css  js  c++  java
  • 送分大赛

    提交的地方

    A

    不是我的锅。。。

    B

    送分题

    C

    写法一:我也不知道哪里错了

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    const int N = 300;
    int n,len,t,a,rt;
    char c[N],tmp[5]={'{','[','(','<'},tr[5]={'}',']',')','>'};
    bool flag,book[N];
    inline int read()
    {
    	char c=getchar();
    	int ans=0,w=1;
    	while((c<'0'||c>'9')&&c!='-') c=getchar();
    	if(c=='-') { w=-1; c=getchar(); }
    	while(c>='0'&&c<='9')
    	{ ans=ans*10+c-'0'; c=getchar(); }
    	return ans*w; 
    }
    /*void work(int l,int r)
    {
    	if(flag) return ;
    	if(l+1==r) return ;
    	int tt=l+1,aa=-1,rr=-1;
    	while(tt<r)
    	{
    		for(int i=0;i<4;i++)
    		if(c[tt]==tmp[i]) aa=i;
    		if(aa<0) { flag=1; printf("NO
    "); return ;}
    		for(int i=tt+1;i<r;i++)
    		{
    			if(c[i]==tr[aa]) { rr=i; break; }
    			for(int j=0;j<4;j++)
    			if((c[i]==tr[j]||c[i]==tmp[j])&&j<aa)
    				break;
    		}
    		if(rr<0) { flag=1; printf("%d****%d
    *NO
    ",l,r); return ;}
    		work(tt,rr);
    		tt=rr+1;
    	}
    }*/
    int main()
    {
    	n=read();
    	while(n--)
    	{
    		flag=0;
    		memset(book,0,sizeof(book));
    		cin>>c; 
    		len=0; t=0; rt=-1; 
    		while(c[len]) ++len;
    		for(int i=0;i<len;i++)
    		{ 
    		    a=-1;
    			for(int j=0;j<4;j++)
    			if(c[i]==tr[j]) a=j;
    			if(a<0) continue;
    			for(int j=i-1;j>=0;j--)
    			{
    				if(j<0) break;
    				for(int k=0;k<4;k++)
    				if((c[j]==tr[k]||c[j]==tmp[k])&&k<a)
    				{ break; }
    				if(c[j]==tmp[a]&&!book[j]) { book[j]=1; book[i]=1; break; } 
    			}
    			if(!book[i]) { flag=1;break;}
    		}
    		if(flag) printf("NO
    ");
    		else printf("YES
    ");
    	}
    	return 0;
    }
    

    写法二:将所有的左括号放到一个栈里,每一个左括号进栈的时候,判断一下栈顶括号的下标是否大于当前括号(只判断相邻两个就行,不知道为啥从头判断会出错),满足条件才进栈,否则就是(NO)。如果当前是右括号,如果它和栈顶的括号不匹配,或者栈为空,就是(NO),如果合法,栈顶元素退栈。

    错点:(1.)不要只把(top)清零,(st)数组也清一下,可能有想不到的地方会出错。
    (2.)如果到最后栈中还有元素的话,也是不合法的。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<map>
    using namespace std;
    int n,st[300],top,len,maxx,a;
    char s[300],tr[5]={'1','{','[','(','<'};
    char tm[5]={'1','}',']',')','>'};
    map<char,int>mp;
    bool flag;
    int main()
    {
    //	mp['{']=1; mp['[']=2; mp['(']=3; mp['<']=4;
    	scanf("%d",&n);
    	while(n--)
    	{
    		flag=0;
    		memset(st,0,sizeof(st));
    		cin>>s; len=0; maxx=0; top=0;
    		while(s[len]) ++len;
    		for(int i=0;i<len;i++)
    		{
    			a=-1;
    			if(flag) break;
    //			for(int j=1;j<=top;j++)
    //			{
    //				if(st[j]<maxx) { flag=1; break;}
    //				maxx=max(maxx,st[j]);
    //			}
    			if(flag) break;
    			char t=s[i];
    			for(int j=1;j<=4;j++)
    			 if(t==tr[j]) { a=j; }
    			if(a>0) 
    			{
    				if(st[top]<=a) st[++top]=a;
    				else { flag=1; break; }
    			}
    			else
    			{
    				if(tm[st[top]]!=t||top<=0)
    				 { flag=1;  }
    				--top;
    			}
    		}
    		if(flag||top) printf("NO
    ");
    		else printf("YES
    ");
    	}
    	return 0;
    }
    

    D

    找规律题,当时着急随便找了找竟然对了。打表是个好东西!

    E

    之前自己推出来过归并排序之前的预处理,这次大意了,因为样例是有序的,被骗了,少排了一次序。(归并也写错了。。)
    归并漏掉了:enter image description here
    预处理的错误:
    enter image description here

    enter image description here

  • 相关阅读:
    讨喜的隔离可变性(十三)角色的特性
    讨喜的隔离可变性(十三)角色的特性
    解锁不可见索引新特性,处理ORA-01555故障
    django url 正则匹配
    django 往session写信息
    django 判断用户是否登录
    django 管理session
    Python爬虫入门教程 1-100 CentOS环境安装
    django session管理
    案发现场:被注入的软件及 ORA-600 16703 灾难的恢复
  • 原文地址:https://www.cnblogs.com/karryW/p/11376999.html
Copyright © 2011-2022 走看看