zoukankan      html  css  js  c++  java
  • P4290 [HAOI2008]玩具取名

    这就是码力的差距,会但是写不出来!!

    之后我忘提交了,然后90,当我没说
    这还是码力的差距哇!!!

    我的90

    #include <cmath>
    #include <queue>
    #include <cstdio>
    #include <vector>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    #define ll long long
    using namespace std;
    
    const int A = 1e7+10;
    const int B = 1e3+10;
    const int mod = 1e9 + 7;
    const int inf = 0x3f3f3f3f;
    
    inline int read() {
      char c = getchar();
      int x = 0, f = 1;
      for ( ; !isdigit(c); c = getchar()) if (c == '-') f = -1;
      for ( ; isdigit(c); c = getchar()) x = x * 10 + (c ^ 48);
      return x * f;
    }
    int q[B];
    int f[B][B][100];
    char cc[5]={'Q','W','I','N','G'};
    struct node{char a;char b;}p[5][B],W[B],I[B],N[B],G[B];
    char s[B];
    int main()
    {
    	for (int i=1;i<=4;i++) q[i]=read();
    	for (int j=1;j<=4;j++)
    	for (int i=1;i<=q[j];i++)
    	{	
    		char ss[5];
    		scanf("%s",ss);
    		p[j][i].a=ss[0],p[j][i].b=ss[1];
    	}
    	cin>>s+1;	
    	int n=strlen(s+1);
    	for (int i=1;i<=n;i++) f[i][i][s[i]-'A'+1]=1;
    	for (int len=2;len<=n;len++)
    		for (int l=1;l+len-1<=n;l++)
    	 	{
    		 	int r=l+len-1;
    		 	for (int c=1;c<=4;c++)
    		 	{
    		 		for (int i=1;i<=q[c];i++)
    		 		{
    					for (int k=l;k<=r;k++)
    		 			{	
    						if(f[l][k][p[c][i].a-'A'+1] && f[k+1][r][p[c][i].b-'A'+1])		
    						f[l][r][cc[c]-'A'+1]=1;
    					}
    				}
    			}	
    		 }
    	for (int i=1;i<=4;i++) if(f[1][n][cc[i]-'A'+1]) cout<<cc[i];
    	return 0;
    }
    
    
    
    

    我抄的,区间DP是我的

    #include <cmath>
    #include <queue>
    #include <cstdio>
    #include <vector>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    #define ll long long
    using namespace std;
    
    const int A = 1e7+10;
    const int B = 1e3+10;
    const int mod = 1e9 + 7;
    const int inf = 0x3f3f3f3f;
    
    inline int read() {
      char c = getchar();
      int x = 0, f = 1;
      for ( ; !isdigit(c); c = getchar()) if (c == '-') f = -1;
      for ( ; isdigit(c); c = getchar()) x = x * 10 + (c ^ 48);
      return x * f;
    }
    
    int num[B],p[B*2][3],f[B][B][5];
    char s[210];
    int check(char i)
    {
    	if (i=='W') return 1;
    	if (i=='I') return 2;
    	if (i=='N') return 3;
    	if (i=='G') return 4;
    }
    
    int main()
    {
    	int tot=0;
    	for (int i=1;i<=4;i++) num[i]=read();
    	for (int i=1;i<=4;i++)
    	{
    		for (int j=1;j<=num[i];j++)
    		{
    			char ss[5];
    			scanf("%s",ss);
    			p[++tot][0]=i;
    			p[tot][1]=check(ss[0]);
    			p[tot][2]=check(ss[1]);
    		}
    		getchar();
    	}
    	gets(s+1);
    	int len=strlen(s+1);
    	for (int i=1;i<=len;i++) f[i][i][check(s[i])]=1;
    	for (int l=2;l<=len;l++)
    		for (int i=1;i+l-1<=len;i++)
    		{
    			int j=i+l-1;
    			for (int k=i;k<j;k++)
    				for (int c=1;c<=tot;c++)
    				{
    					if (f[i][k][p[c][1]] && f[k+1][j][p[c][2]])
    					f[i][j][p[c][0]]=1;
    					//printf("%d
    ",f[i][j][p[c][0]]);
    				}
    		} 
    //		for(register int i=len;i>0;--i)  
    //    	for(register int j=i+1;j<=len;++j)  
    //    		for(register int k=i;k<j;++k)  
    //    			for(register int l=1;l<=tot;++l)   
    //						if (f[i][k][p[l][1]] && f[k+1][j][p[l][2]])
    //					f[i][j][p[l][0]]=1;
    	int flag=0;
    	for (int i=1;i<=4;i++)
    	{
    		if(f[1][len][i])
    		{
    			flag=1;
    			if (i==1) printf("W");
    			if (i==2) printf("I");
    			if (i==3) printf("N");
    			if (i==4) printf("G");
    		}
    	}
    	if (!flag) printf("The name is wrong!");
    	return 0;
    }
    
  • 相关阅读:
    最大子数组问题(分治策略实现)
    Solving the Detached Many-to-Many Problem with the Entity Framework
    Working With Entity Framework Detached Objects
    Attaching detached POCO to EF DbContext
    如何获取qq空间最近访问人列表
    Health Monitoring in ASP.NET 2.0
    problem with displaying the markers on Google maps
    WebMatrix Database.Open… Close() and Dispose()
    Accessing and Updating Data in ASP.NET: Retrieving XML Data with XmlDataSource Control
    Create web setup project that has crystal reports and sql script run manually on client system
  • 原文地址:https://www.cnblogs.com/lToZvTe/p/14586187.html
Copyright © 2011-2022 走看看