codeforces 401D D. Roman and Numbers(상태 압축 dp+ 수론)
제목 링크:
codeforces 401D
제목 대의:
숫자num과 숫자mod를 제시하고num의 숫자를 다시 배열하며,mod를 정제할 수 있는 방안의 수를 물어보십시오.
제목 분석:
4
4
AC 코드:
#include
#include
#include
#include
#define MAX (1<<18)
using namespace std;
typedef long long LL;
LL dp[MAX][107];
int n,m;
LL fac[MAX];
int num[MAX];
char s[50];
int main ( )
{
while ( ~scanf ( "%s" , s ) )
{
scanf ( "%d" , &m );
n = strlen ( s );
int total = 1<memset ( num , 0 , sizeof ( num ) );
memset ( dp , 0 , sizeof ( dp ) );
dp[0][0] = 1;
fac[0] = 1;
for ( LL i = 0 ; i < n ; i++ )
{
fac[i+1] = fac[i]*(i+1LL);
num[s[i]-48]++;
}
for ( int i = 0 ; i < total ; i++ )
for ( int k = 0 ; k < m ; k++ )
{
if ( !dp[i][k] ) continue;
for ( int j = 0 ; j < n ; j++ )
{
int x = s[j]-48;
if ( x == 0 && i == 0 ) continue;
if ( (1<continue;
int y = (1<int z = (k*10LL+x)%m;
dp[y][z] += dp[i][k];
}
}
LL temp = 1;
for ( int i = 0 ; i < 10 ; i++ )
temp *= fac[num[i]];
printf ( "%lld
" , dp[total-1][0]/temp );
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
codeforces 518D D. Ilya and Escalator(확률 dp)codeforces 518D n명, 초당 p의 확률로 한 사람이 엘리베이터에 들어간다. t초 후 엘리베이터 안의 인원수에 대한 기대를 물어본다. 정의 dp[i][j]는 i초 엘리베이터에 j 개인이 있을 확률을 나타낸...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.