Codeforces Round #425 (Div.2)
来源:互联网 发布:安卓手机助手 for mac 编辑:程序博客网 时间:2024/06/07 02:47
A.
题意:n个木条,每次取出k个,第一个人先取出k个,然后第二个人再取出k个...重复此过程,如果最后轮到第一个人取时,木条不足k个,就输出NO,如果最后轮到第二个人取时,木条不足k个,就输出YES
解题思路:模拟.如果取完奇数次之后木条不足k个就是当轮到第二个人取时,木条不足k个,输出YES,如果取完偶数次之后木条不足k个就是当轮到第一个人取时,木条不足k个,输出NO,不能直接for循环进行判断,会超时
代码:
#include <bits/stdc++.h>using namespace std;typedef long long ll;int main(){ ll n,k; while(cin>>n>>k) { ll cnt=n/k; if(cnt%2)cout<<"YES"<<endl; else cout<<"NO"<<endl; } return 0;}
题意:先输入一个好字符串,除了好字符串中的字符之外,其余都是坏字符,再输入一个原字符串,接下来是n种查询,判断原字符串是否能变成给出的字符串,原字符串中的'?'要变成一个好字符,‘*’可以变成一个空字符或者是一个任意长度的坏字符串,‘*’至多出现一次
解题思路:这里主要是对‘*’的处理,因为‘*’变成坏的字符串的长度不确定,所以给出的字符串与原字符串长度的区别就是因为‘*’,先判断原字符串中是否有‘*’,如果有的话再判断如果给出的字符串的长度比原字符串-1要小,那么直接输出NO,因为别的字符都是一 一对应的,如果没有‘*’并且两字符串的长度不一样那么也直接输出NO,否则就要进行下面的判断,因为长度的变化是因为‘*’,所以计算出两个字符串长度的差(后-原),‘*’就变成了差值那么长的字符串,再逐一进行判断即可,还要注意长度变化k的使用
代码:
#include<bits/stdc++.h>using namespace std;int main(){ char s0[100005]; while(cin>>s0) { int x[30]; memset(x,0,sizeof(x)); for(int i=0;i<strlen(s0);i++) { x[s0[i]-'a']=1; } char s[100005]; cin>>s; int len=strlen(s); int ans=0; for(int i=0;i<len;i++) { if(s[i]=='*'){ans=1;break;} } int n; cin>>n; while(n--) { char s1[100005]; cin>>s1; int flag=0,k=0; int len1=strlen(s1); if(ans==1&&len1<len-ans){cout<<"NO"<<endl;continue;} if(ans==0&&len1!=len){cout<<"NO"<<endl;continue;} for(int i=0;i<len;i++) { if(s[i]=='?') { if(x[s1[i+k]-'a']==0) { flag=1; break; } } else if(s[i]=='*') { for(int j=i;j<=len1-len+i;j++) { if(x[s1[j+k]-'a']==1) { flag=1; break; } } k=len1-len; } else { if(s[i]!=s1[i+k]) { flag=1; break; } } } if(flag)cout<<"NO"<<endl; else cout<<"YES"<<endl; } } return 0;}
阅读全文
0 0
- Codeforces Round #425 (Div. 2)
- Codeforces Round #425 (Div. 2)
- Codeforces Round #425 (Div. 2)
- Codeforces Round #425 (Div.2)
- Codeforces Round #425 (Div. 2)
- Codeforces Round #425 (Div. 2)
- [刷题]Codeforces Round #425(Div. 2)
- Codeforces Round #425 (Div. 2) A
- Codeforces Round #425 (Div. 2)(A+B)
- Codeforces Round #425 (Div. 2) B
- Codeforces Round #425 (Div. 2) B
- Codeforces Round #425 (Div. 2)比赛总结
- Codeforces Round #425 (Div. 2) A
- Codeforces Round #425 (Div. 2) C
- Codeforces Round #425 (Div. 2) D
- Codeforces Round #102 (Div. 2)
- Codeforces Round #103 (Div. 2)
- Codeforces Round #103 (Div. 2)
- android加载bingmaps地图-------webview方式
- ACL访问控制列表
- C#读写txt文件的两种方法介绍 Copy:http://blog.csdn.net/ybhjx/article/details/53706715
- Centos系统下的文件目录说明
- 前端交易型系统设计原则
- Codeforces Round #425 (Div.2)
- PHP官方手册总结(一)
- Unity_UGUI入门_016
- 易气小程序开发过程
- 用两个栈实现队列
- FTP服务器的安装、配置、虚拟用户的创建
- c# 如何获取项目的根目录
- 自定义属性使用简记
- Unity_UGUI进阶_017