모 함수 템 플 릿 문제 (hdu 2082)

마침내 모 함수 가 무엇 인지 알 게 되 었 다. , 후 ~
 
고등학교 2 항 정 리 를 이용 한 것 같 아 요.
 
완전 이용 이 야 ~ ~!이전 에는 마지막 x 의 표현 식 ( 1 + C(n,1)*x^1 + C(n,2)*x^2 +~~~~~+ C(n,n-1)*x^(n-1) + C(n,n)*x^n  )그 후에 어쨌든 x 에 게 값 을 부여 하여 답 을 계산 할 것 이다.
모 함수 까지 할당 값 도 절약 하 였 습 니 다.
 
그것 은 단지 이 항 식 정리의 정 수 를 흡수 하여 각 인자 중의 한 계 수 를 취하 여 조합 하 는 사상 을 얻 었 을 뿐이다. ,전송 문 두 개 주세요.  hdu 2082 모 함수 의 응용 분석       Tanky Woo  뒤에 있 는 거 먼저 보고 못 알 아 보고 앞 에 있 는 거 보 는 게 좋 을 것 같 아 요.
 
 
다음은 hdu 2082 의 AC 코드 를 드 리 겠 습 니 다.
코드 에 대한 자신의 이해 에 따라 일부 주석 을 추가 하 였 습 니 다.
살아 서 보 자 -
~~
 
#include
using namespace std;
int main()
{
	int i,j,t,num,sum;   
	int X[27];                     //  Xi 
	
	int c1[51],c2[51];     /*c1[51]      1  50          c1[5]    ax^5      a*/


	cin>>t;
	while(t--)
	{
		for(i=1;i<=26;i++)
			cin>>X[i];
		memset(c1,0,sizeof(c1));
		memset(c2,0,sizeof(c2));
		for(i=1;i<=26;i++)                       //                (                     )
			if(X[i]!=0)                                         //Xi 0   i    0(   ) ;         c1 
			{
				for(num=0;num<=X[i];num++)
				{
					if(num*i>50)
						break;                                        //        50         
					c1[num*i]=1;                          //                 1 
				}
				break;
			}
		for(i=i+1;i<=26;i++)                                  //                    26-i   
		{
		//            , c1    i          (      ) 
			
			for(j=0;j<=50;j++)                                //                 50
				if(c1[j]!=0)                              //c1[j]==0 ,     j         ,       
					for(num=0;num<=X[i];num++)            
					{
						if(j+i*num>50) break;          //           , i     k     num*i
						c2[j+i*num]+=c1[j]*1;            /* 1.c1[i*num+j]+=c1[j]        ~~ ,  c1      (34    ) 
							                     			     c2; 
							                     			2.         (j+i*num) ,     c1[j]*1; 
														 */ 
					}
			
			for(j=0;j<=50;j++)                         //                  ,      c1
			{
				c1[j]=c2[j];
				c2[j]=0;
			}
		}
		
		for(sum=0,i=1;i<=50;i++)                            // 50   
			sum+=c1[i];
		
		printf("%d
",sum); } return 0; }

좋은 웹페이지 즐겨찾기