#include<bits/stdc++.h> using namespace std; int n,m,k,tot; int mod=1000000007; int c[1321][2132],f[2312][23123]; char a[300],b[300]; int work(){ cin>>n>>k>>m; scanf("%s%s",a+1,b+1); for(int i=1;i<=n;i++)if(a[i]!=b[i])tot++; return tot; } int main() { c[0][0]=1; for(int i=1;i<=100;i++){ c[i][0]=1; for(int j=1;j<=i;j++)c[i][j]=(c[i-1][j]+c[i-1][j-1])%mod; } f[0][work()]=1; for(int t=1;t<=k;t++) for(int i=0;i<=n;i++) for(int j=0;j<=min(i,m);j++) { int ta=i-2*j+m; if(ta>=0&&ta<=n) f[t][ta]=(f[t][ta]%mod+f[t-1][i]*(c[n-i][m-j]*c[i][j]%mod)%mod)%mod; } cout<<f[k][0]; }
P2618
#include<bits/stdc++.h> using namespace std; int n,cnt,temp,num[20000],f[1100000]; int main() { while(cin>>n) { cnt=0;temp=n; for(int i=2;i<n;i++) { if(temp%i==0) { num[++cnt]=i; while(temp/i==0)temp/=i; if(temp==1)break; } } for(int i=1;i<=n;i++)f[i]=0x3f3f3f3f; f[n]=0; for(int i=n-1;i>=1;i--) for(int j=1;j<=cnt;j++) f[i]=min(f[i+1],f[i*num[j]])+1; cout<<f[1]<<endl; } }
P2182
P2344
#include<bits/stdc++.h> using namespace std; const double PI = 3.1415926535; int n,cnt,p=1e3; double f,b,a; int num[2000]; int ff[2000][2000]; string s; int main() { cin>>n; for(int i=1;i<=n;i++) { cin>>s; if(s[0]=='f'){cin>>a;f+=a;} if(s[0]=='b'){cin>>a;b+=a;} if(s[0]=='l'){cin>>a;num[++cnt]=-a;} if(s[0]=='r'){cin>>a;num[++cnt]=a;} } ff[0][0]=1; for(int i=1;i<=cnt;i++) for(int j=0;j<360;j++) if(ff[i-1][j])ff[i][j]=ff[i][(j+num[i]+3600)%360]=1; for(int j=0;j<360;j++) if(ff[cnt][j]) { p=min(p,abs(j-180)); } double ans=sqrt(f*f+b*b+2*b*f*cos(p*PI/180)); printf("%.6f ",ans); }
P5367 康托展开
#include<bits/stdc++.h> using namespace std; long long int mod=998244353998244353,n,ans=1,a[10001000]; long long fac[10001000]={1}; int main() { cin>>n; for(int i=1;i<=n;i++)fac[i]=(fac[i-1]*i)%mod; for(int i=1;i<=n;i++)scanf("%d",&a[i]); for(int i=1;i<=n;i++){ int k=0; for(int j=i+1;j<=n;j++) if(a[j]<a[i]) k++; ans=(ans+k*fac[n-i])%mod; } cout<<ans; }