[cerc2012][Gym100624C]20181013

[cerc2012][Gym100624C]20181013

题意:用元素符号表示字符串

题解:签到题 简单dp

难点在于把元素符号都改成小写qaq

 1 #include<cstdio>
 2 #include<cstdlib>
 3 #include<cstring>
 4 #include<iostream>
 5 #include<algorithm>
 6 using namespace std;
 7 
 8 const int N=500010,M=120;
 9 
10 char p[114][10]={"h","he","li","be","b","c","n","o","f","ne","na","mg","al","si","p","s","cl","ar","k","ca","sc","ti","v","cr","mn","fe","co","ni","cu","zn","ga","ge","as","se","br","kr","rb","sr","y","zr","nb","mo","tc","ru","rh","pd","ag","cd","in","sn","sb","te","i","xe","cs","ba","hf","ta","w","re","os","ir","pt","au","hg","tl","pb","bi","po","at","rn","fr","ra","rf","db","sg","bh","hs","mt","ds","rg","cn","fl","lv","la","ce","pr","nd","pm","sm","eu","gd","tb","dy","ho","er","tm","yb","lu","ac","th","pa","u","np","pu","am","cm","bk","cf","es","fm","md","no","lr"};
11 char s[N];
12 int len[M];
13 bool f[N];
14 
15 int main()
16 {
17     //freopen("a.in","r",stdin);
18     int pl=114;
19     for(int i=0;i<pl;i++) len[i]=strlen(p[i]);
20     int T;
21     scanf("%d",&T);
22     while(T--)
23     {
24         scanf("%s",s+1);
25         int sl=strlen(s+1);
26         memset(f,0,sizeof(f));
27         f[0]=1;
28         for(int i=1;i<=sl;i++)
29         {
30             for(int j=0;j<pl;j++)
31             {
32                 if(len[j]==1)
33                     f[i]=(f[i] || (f[i-1] && s[i]==p[j][0]));
34                 else if(i>=2)
35                     f[i]=(f[i] || (f[i-2] && s[i-1]==p[j][0] && s[i]==p[j][1]));
36             }
37         }
38         if(f[sl]) printf("YES\n");
39         else printf("NO\n");
40     }
41     return 0;
42 }

 

posted @ 2018-10-18 11:50 拦路雨偏似雪花 阅读( ...) 评论( ...) 编辑 收藏
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值