回文
思路:求组合后的字符串大小即可,每一个字符都是一个回文串
代码:
#include <bits/stdc++.h>
using namespace std;
string s;
long long huiwen(string a){
long long n = a.size(), ans = 0;
for(int i = 0; i < 2 * n - 1; i++){
int left = i / 2, right = left + i % 2;
while(left >= 0 && right < n && a [left] == a[right]){
ans++;
left--;
right++;
}
}
return ans;
}
int main(){
int n,cnt=0;
cin>>n;
for (int i = 0; i < n; ++i) {
cin >> s;
cnt+=s.size();
}
cout<<cnt;
}
D. 转动命运之轮
思路:发现答案可以写成开心值之和y*x,x是一个与n相关的数,找规律:
- n=1.2.3.4.5,则x=1,1 3,1 3 4,1 3 4 5等等
代码:
#include<bits/stdc++.h> using namespace std; #define ll long long const int mod=998244353; ll n,h[2005]; int main(){ cin>>n; ll x=0; for (int i = 0; i <n ; ++i) { ll g; cin>>g; x+=g; } ll ans=0; ll y=1; for (int i = 0; i <n-1 ; ++i) { y=(y%mod)*((3+i))%mod; } ans=(x%mod)*(y%mod)%mod; cout<<ans; }