A-串
//dp待补
#include<iostream>
using namespace std;
#define int long long
const int N=1e9+7;
signed main(){
int n;
cin>>n;
int dp[n+1][3];
int ans=0;
dp[1][0]=25,dp[1][1]=1,dp[1][2]=0;
for(int i=2;i<=n;i++){
dp[i][0]=dp[i-1][0]*25;
dp[i][0]%=N;
dp[i][1]=dp[i-1][0]+dp[i-1][1]*25ll%N;
dp[i][1]%=N;
dp[i][2]=dp[i-1][2]*26ll%N+dp[i-1][1];
dp[i][2]%=N;
ans=(ans+dp[i][2])%N;
}
cout<<ans<<endl;
}
B-括号
#include<bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
int k;
cin>>k;
if(k==0){ cout<<")\n"; return 0; }
int n=(int)sqrt(k);
int d=k-n*n;
int d1=d/n,d2=d%n;
for(int i=1;i<=n;i++) cout<<"(";
for(int i=1;i<=n+d1-d2;i++) cout<<")";
if(d2!=0)cout<<"(";
for(int i=1;i<=d2;i++) cout<<")";
cout<<endl;
return 0;
}
F 对答案一时爽
#include<bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
int n,ans=0; char A[100],B[100];
cin>>n;
for(int i=0;i<n;i++) cin>>A[i];
for(int i=0;i<n;i++) cin>>B[i];
for(int i=0;i<n;i++){
if(A[i]==B[i]) ans+=2;
else ans++;
}
cout<<ans<<" 0\n";
return 0;
}
I-限制不互素对的排列
#include<bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
int n,k,i;
cin>>n>>k;
if(k<n/2){
cout<<"2";
for(i=2;i<=k+1;i++)
cout<<" "<<2*i;
for(i=0;i<k+1;i++)
cout<<" "<<2*i+1;
for(i=2*(k+1)+1;i<=n;i++)
cout<<" "<<i;
}else{
if(n<=5)
cout<<"-1";
else if(n==6)
cout<<"5 3 6 2 4 1";
else if(n==7)
cout<<"5 3 6 2 4 1 7";
else if(n==8)
cout<<"3 6 4 2 8 1 5 7";
else{
cout<<"2";
for(i=2;i<=k;i++)
cout<<" "<<2*i;
if(2*(i-1)%9==0)
cout<<" 9 1 3 5 7";
else cout<<" 9 3 1 5 7";
for(i=5;i<k;i++)
cout<<" "<<2*i+1;
if(n&1 && n>9)
cout<<" "<<2*i+1;
}
}
cout<<endl;
return 0;
}