首页 > 其他分享 >abc242E 求解小于等于一个字符串的回文串的个数

abc242E 求解小于等于一个字符串的回文串的个数

时间:2023-05-19 19:44:24浏览次数:51  
标签:ch ll 个数 long define while include abc242E 回文

题目链接:E - (∀x∀)
考虑26进制,将字母A~Z 折算成数字0~25,求得最大的可能的回文字符串的26进制值即为答案

//>>>Qiansui
#include<map>
#include<set>
#include<stack>
#include<cmath>
#include<queue>
#include<deque>
#include<cstdio>
#include<string>
#include<vector>
#include<utility>
#include<iomanip>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
#define ull unsigned long long
#define mem(x,y) memset(x,y,sizeof(x))
//#define int long long

inline ll read()
{
	ll x=0,f=1;char ch=getchar();
	while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}
	while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
	return x*f;
}

using namespace std;
const int maxm=2e5+5,inf=0x3f3f3f3f,mod=998244353;
ll n;
string ss,rss;

void solve(){
	cin>>n>>ss;
	ll ans=0,l=(n-1)/2;
	rss=ss;
	ans=0;
	for(int i=0;i<=l;++i){
		ans=(ans*26+(ss[i]-'A'))%mod;//假设前半即为最大
		rss[n-1-i]=rss[i];
	}
	ans=(ans+1)%mod;
	if(ss<rss) ans=(ans+mod-1)%mod;//rss的作用就是为了减去目前找到的最大的一个不满足题意得情况
	cout<<ans<<'\n';
	return ;
}

signed main(){
	ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
	int _=1;
	cin>>_;
	while(_--){
		solve();
	}
	return 0;
}

标签:ch,ll,个数,long,define,while,include,abc242E,回文
From: https://www.cnblogs.com/Qiansui/p/17416112.html

相关文章

  • 2023-05-18:有 n 名工人。 给定两个数组 quality 和 wage , 其中,quality[i] 表示第 i 名
    2023-05-18:有n名工人。给定两个数组quality和wage,其中,quality[i]表示第i名工人的工作质量,其最低期望工资为wage[i]。现在我们想雇佣k名工人组成一个工资组。在雇佣一组k名工人时,我们必须按照下述规则向他们支付工资:对工资组中的每名工人,应当按其工作质量与同组其......
  • 2023-05-18:有 n 名工人。 给定两个数组 quality 和 wage , 其中,quality[i] 表示第 i 名
    2023-05-18:有n名工人。给定两个数组quality和wage,其中,quality[i]表示第i名工人的工作质量,其最低期望工资为wage[i]。现在我们想雇佣k名工人组成一个工资组。在雇佣一组k名工人时,我们必须按照下述规则向他们支付工资:对工资组中的每名工人,应当按其工作质量与同......
  • 3.4 回文数
    打印所有不超过n(取n<256)的其平方具有对称性质的数(也称回文数)。 #include<stdio.h>voidmain(){intm[16],n,i,t,count=0;longunsigneda,k;printf("No.numberit'ssguare(palindrome)An");for(n=1;n<256;n++)/*穷举n的取值范围*/k-0;t-1;a=n*n;/*计算n的平......
  • 判断一个数的平方根是否为整数
    #include<bits/stdc++.h>usingnamespacestd;boola_test(intx){ //如果大数,int->longlong if(sqrt(x)==(int)sqrt(x)){ returntrue; }else{ returnfalse; }}intmain(){ cout<<a_test(10)<<endl;//0 cout<......
  • JavaScript 使用一个数组对另一个对象数组进行过滤
    JavaScript使用一个数组对另一个对象数组进行过滤假设我们有一个对象数组objs,其中每个对象都有一个name属性,我们希望使用一个数组names对objs数组进行过滤,只保留那些name属性在names数组中的对象。我们可以使用filter()方法来实现这个功能。constobjs=[{id......
  • 3.4回文数
    1.问题描述打印所有不超过n的其平方具有对称性的数2.代码#include<iostream>usingnamespacestd;intmain(){ intn,i,num,temp,m; n=256; for(i=1;i<256;i++) { num=i*i; m=0; while(num>0) { temp=num%10;//取最后一位 m=temp+m*10;// num=num/1......
  • [每天例题]蓝桥杯 C语言 回文日期
    回文日期题目    思路分析1.由于题目要求是找到一定范围日期内的回文日期,所以我们可以采用for遍历日期2.再调用函数先判断闰年,再进行日期合法判断,最后再进行回文数判断3.注意,该日期范围包含起始和结束这两个日期,这里会有一个案例挖坑代码#include<stdio.h>int......
  • 2023-05-16:给你一个 严格升序排列 的正整数数组 arr 和一个整数 k 。 请你找到这个数
    2023-05-16:给你一个严格升序排列的正整数数组arr和一个整数k。请你找到这个数组里第k个缺失的正整数。输入:arr=[2,3,4,7,11],k=5。输出:9。答案2023-05-16:大体步骤如下:1.初始化左指针l为0,右指针r为数组长度减一,定义中间指针m和find(找到第k个正整数前的下标位置),......
  • 定义一个Dog类,包括体重和年龄两个数据成员及其成员函数,声明一个实例dog1,体重5,年龄10,使
    #include<bits/stdc++.h>usingnamespacestd;classDog{      private:             intweight,age;      public:             Dog(intw,inta):weight(w),age(a)             {             ......
  • 图解LeetCode——234. 回文链表
    一、题目给你一个单链表的头节点head,请你判断该链表是否为回文链表。如果是,返回true;否则,返回false。二、示例2.1>示例1:【输入】head=[1,2,2,1]【输出】true2.2>示例2:【输入】head=[1,2]【输出】false提示:链表中节点数目在范围[1,10^5]内0<=Node.v......