cf彩笔题解1673A-C

A

分析

Alice先手并取偶数长度的子串,Bob后手并取奇数长度的子串,如果是偶数长度就直接取完,否则判断一下第一个字符和最后一个字符谁大,留一个小的给Bob剩下的全部取完就行

code

#include<iostream>
#include<cstring>
using namespace std;
int t;
string s;
int main()
{
    cin>>t;
    while(t--)
    {
        cin>>s;
        int n=s.lenght();
        int ans=0;
        for(int i=0;i<n;i++)
          ans+=s[i]-'a'+1;
        if(n&1)
        {
            if(n==1)
               cout<<"Bob"<<ans<<endl;
            else cout<<"Alice "<<max(ans-2*(s[0]-'a'+1),ans-2*(s[n-1]-'a'+1))<<endl;
        }
        else 
        {
             cout<<"Alice"<<ans<<endl;
        }

    }

return 0;}

  

B

分析

首先存储一下字符串中出现了几种字符,然后查找两个相同字符的差值是否>=字符的种类,如果没有则直接输出NO(即一定存在某个字符没有出现在两个相同字符形成的子串中,0和2差值大于1),判断完整个循环没有输出NO即输出YES

code

#include<iostream>
#include<cstring>
using namespace std;
int t,v[26];
char s[200010];
void vv()
{
	cin>>s;
        int m=0,i,c;
        int n=strlen(s);
        memset(v,0,sizeof(v));
        for( i=0;i<n;i++)
        {
			   c=s[i]-'a';
        if(!v[c]) v[c]=1;
        else 
        {
            m=i;
            break;
        }
		} 
        if(!m)
        {
            puts("YES");
            return ;
        }
        int f=1;
        for(int i=m,j=0;i<n;i++,j=(j+1)%n)
           if(s[i]!=s[j])
           {
                f=0;
                break;
           }
        puts(f?"YES":"NO");
}
int main()
{
    cin>>t;
    while(t--)
    {
        vv();
    }


return 0;}

  

C

分析

先预处理出前4e4中有多少回文数,然后就是用完全背包的板子

code

#include<iostream>
#include<cstring>
using namespace std;
const int N=4e4+10;
const int mid=1e9+7;
int f[N],s[N];
bool v[N];
bool hui(int x)
{
	int i=x;
	int m=0;
	while(i>0)
	{
		m=m*10+i%10;
		i/=10;
	}
	return m==x;
}
int main()
{
	int n;
	v[0]=true;
	int cnt=0;
	cin>>n;
	for(int i=1;i<N-10;i++)
	{
		if(hui(i))
		  f[++cnt]=i;
	}
	s[0]=1;
	for(int i=1;i<=cnt;i++)
    	for(int j=f[i];j<=N;j++) 
    		s[j]=(s[j]+s[j-f[i]])%mid;
    while(n--)
	{
		int t;
		cin>>t;
		cout<<s[t]<<endl;
	 }     
      
       
	
	
return 0;}

  

 

 
posted @ 2022-05-03 19:05  szf45  阅读(24)  评论(0)    收藏  举报