当前位置 : 主页 > 网络编程 > PHP >

CodeForces 791C Bear and Different Names

来源:互联网 收集:自由互联 发布时间:2023-09-06
题目链接:​​http://codeforces.com/contest/791/problem/C​​​ 题意:给你n和k,表示有n个士兵,下面有n-k+1个字符串,表示对i到i+k-1的士兵的判断,如果i到i+k-1的士兵没有名字重复的,那就是


题目链接:​​http://codeforces.com/contest/791/problem/C​​​
题意:给你n和k,表示有n个士兵,下面有n-k+1个字符串,表示对i到i+k-1的士兵的判断,如果i到i+k-1的士兵没有名字重复的,那就是YES,否则NO,让你输出一个符合输入的字符串序列
解析:首先名字的组成很重要:”[A-Z][a-z]{0,9}”,其次是怎么搞,其实先构造出YES的很简单,全都不一样就好了,那么剩下的就是NO的部分了,既然只要有重复就是NO,那么我们直接让a[i+k-1] = a[i]就好了

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <iostream>
#include <set>
#include <map>
using namespace std;
const int maxn = 2e5+100;
string a[105];
int vis[105];
string slove(int i)
{
string tmp = "A";
if(i-1+'A'>'Z')
return tmp+char(i-27+'a');
else
return tmp = char(i-1+'A');
}
int main()
{
int n,k;
scanf("%d %d",&n,&k);
for(int i=1;i<=n-k+1;i++)
cin>>a[i];
memset(vis,0,sizeof(vis));
int ans = 1;
for(int i=1;i<=n;i++)
vis[i] = ans++;
for(int i=1;i<=n+k-1;i++)
{
if(a[i]=="NO")
vis[i+k-1] = vis[i];
}
for(int i=1;i<=n;i++)
{
if(i!=1)
cout<<" ";
cout<<slove(vis[i]);
}
puts("");
return 0;
}


【出处:阜宁网站开发公司 http://www.1234xp.com/funing.html 网络转载请说明出处】
上一篇:Gym - 100502E Opening Ceremony
下一篇:没有了
网友评论