Codeforces Round #425 Div. 2

A题

分析:直接看n/k的奇偶性

 1 #include "iostream"
 2 #include "cstdio"
 3 #include "cstring"
 4 using namespace std;
 5 long long n,k;
 6 int main()
 7 {
 8     cin>>n>>k;
 9     long long res=n/k;
10     if(res==0){
11         cout<<"NO"<<endl;
12     }else{
13         if(res%2){
14             cout<<"YES"<<endl;
15         }else{
16             cout<<"NO"<<endl;
17         }
18     }
19 }
View Code

B题

分析:?可以替换成好字母,*可以替换成除了好字母意外以外的一切字符串,这个要注意,然后直接模拟就好了

 1 #include "iostream"
 2 #include "cstdio"
 3 #include "cstring"
 4 #include "string"
 5 using namespace std;
 6 const int maxn=1e5+10;
 7 char a[maxn],b[maxn];
 8 int vis[500];
 9 int q;
10 int main()
11 {
12     char ch=getchar();
13     int t=0;
14     while(ch!='\n')  a[++t]=ch,ch=getchar();
15     for(int i=1;i<=t;i++)
16         vis[a[i]]=1;
17     ch=getchar();
18     int n=0;
19     while(ch!='\n')  b[++n]=ch,ch=getchar();
20     int z=0;
21     for(int i=1;i<=n;i++)
22         if(b[i]=='*'){
23             z=1; break;
24         }
25     scanf("%d",&q);
26     getchar();
27     for(int cas=1;cas<=q;cas++){
28         char res[maxn];
29         ch=getchar();
30         int m=0;
31         int flag=0;
32         while(ch!='\n') res[++m]=ch,ch=getchar();
33         if(m<n-1||(!z&&m!=n)){
34             cout<<"NO"<<endl;
35             continue;
36         }
37         for(int i=1;i<=n;i++){
38             if(b[i]=='*'){
39                 for(int j=i;j<=i+m-n;j++) if(vis[res[j]]){
40                     flag=1; break;
41                 }
42                 if(flag)  break;
43                 if(m==n-1) for(int j=n;j>i;j--)  res[j]=res[j-1];
44                 else  for(int j=i;j<=n;j++)  res[j]=res[j+m-n];
45             }else if(b[i]=='?'){
46                 if(!vis[res[i]]){
47                     flag=1; break;
48                 }
49             }else{
50                 if(b[i]!=res[i]){
51                     flag=1;break;
52                 }
53             }
54         }
55         if(!flag)  cout<<"YES"<<endl;
56         else  cout<<"NO"<<endl;
57     }
58     return 0;
59 }
View Code

 

转载于:https://www.cnblogs.com/wolf940509/p/7233007.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值