HDU5218 Game
4477 단어 DPACMhdu알고리즘-동적 계획
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =사고: dp [i] [j] 가 i 개인 을 대표 할 때 현재 위치 가 0 (계산 편 의 를 위해 0 부터) 이면 위치 가 j 인 사람 이 이 길 수 있 습 니까?매 거 진 무 작위 로 숫자 에 대해 숫자 (현재 인원 수 를 구하 고 아웃 된 위 치 를 계산 합 니 다) 는 j 보다 크 고 j 보다 작 습 니 다 (j 와 같 으 면 안 됩 니 다) 상황 에 따라 아웃 된 j 의 새로운 위치 (조세 프 문제, 재 번호 와 유사 합 니 다) 를 계산 합 니 다.
#include
#include
#include
#include
using namespace std;
int arr[300];
int n,m;
int dp[300][300];
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);
for(int i=0;iscanf("%d",&arr[i]);
memset(dp,0,sizeof(dp));
dp[1][0]=1;
for(int i=2;i<=n;i++)
{
for(int j=0;jfor(int k=0;kif((arr[k]-1)%i==j)continue;
if((arr[k]-1)%i1][j-(arr[k]-1)%i-1];
if((arr[k]-1)%i>j)dp[i][j]=dp[i-1][i-1-((arr[k]-1)%i-j)];
if(dp[i][j])break;
}
}
}
int ok=1,ans=0;
for(int i=0;iif(dp[n][i])ans++;
printf("%d
",ans);
for(int i=0;iif(dp[n][i])
{
if(ok)ok=0;
else printf(" ");
printf("%d",i+1);
}
printf("
");
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[BOJ]11048(python)python 풀이 DP를 이용해 풀이 보통 이런 문제는 dfs나 bfs로 풀이하는 것이여서 고민을 했는데 이 문구 덕분에 DP 를 이용해 풀이할 수 있었다 뒤로 돌아가는 등의 경우를 고려하지 않아도 되기 때문이다 코...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.