锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 鑰屼笖銆俛[i][0]搴旇鏄負0錛屼笉涓?鐨勩?/p>
姝ゅ榪樺緱娉ㄦ孩鍑恒傝鐢╛_int64綾誨瀷銆?br>http://acm.hdu.edu.cn/showproblem.php?pid=1292 濡傛灉涓嶇敤鐩寸嚎鐨勮瘽錛岀敤涓涓竴鑸殑鎶樼嚎錛岄偅涔?span>n涓繖鏍風殑鎶樼嚎鏈澶氬彲浠ユ媶鍒嗗鉤闈?span>: 鍚屾椂灝嗕竴涓?/span>n琛屼笁瑙掑艦T鐨?/span>+錛?/span>-鍙蜂釜鏁板垎鍒涓?/span>pos_num(n),neg_num(n)錛屽叾絎竴琛屼腑鐨?/span>+錛?/span>-鍙蜂釜鏁拌涓?/span>x(n),y(n)錛屽垯鍙緱鍒頒笅寮忥細 pos_num(n)=x(n)+pos_num(n-1) neg_num(n)=y(n)+neg_num(n-1) 鐢辨錛屾垜浠彲浠ヤ粠n=1寮濮嬶紝鍒╃敤鍓嶉潰n=k-1鐨勭粨鏋滐紝榪唬姹傚嚭n=k鐨勫垎甯冩儏褰紝鐒跺悗瀵?/span>n=k鐨勬墍鏈夊垎甯冪粺璁°?br> 棰樹腑錛?/span>n<=24錛屾椂闂寸┖闂村潎鏈夐檺鍒訛紝鎴戜滑鍙互鍏堟眰鍑烘墍鏈夌粨鏋滐紝鐒跺悗淇濆瓨鍒版暟緇勭洿鎺ュ彇鏉ヨ緭鍑恒傝繖鏄?/span>ACM棰樹腑寰堝父瑙佺殑鎯呭喌銆?/span>
int main() {
int t, n, i, j;
__int64 a[26][26];
a[1][1] = 1;
a[1][0] = 0;
for (i = 2; i <= 25; i++) {
a[i][0] = 0;
a[i][i] = 1;
for (j = 1; j < i; j++)
a[i][j] = a[i - 1][j - 1] + a[i - 1][j] * j;
}
scanf("%d", &t);
while (t--) {
scanf("%d", &n);
__int64 sum = 1;
for (i = 2; i <= n; i++)
sum += a[n][i];
printf("%I64d\n", sum);
}
return 0;
}
]]>
榪欎篃鏄竴涓緢綆鍗曠殑閫掑綊闂錛?span> L[n] = L[n-1] + n; (L[0] = 1)
閫氶」鍏紡濡備笅錛?span>L[n] = n * (n + 1) / 2 + 1 ( n>= 0 )
D[n] = L[2*n] - 2 * n;
D[n] = 2 * n ^ 2 - n + 1;
濡傛灉鐢?span>"Z"瀛楀瀷鐨勭嚎錛?span>n涓姌綰挎渶鍙媶鍒嗗鉤闈細
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=652
Z[n] = Z[n-1] + 9*n - 8;
Z[n] = (9*n^2 - 7*n + 2) / 2;
2 int main()
3 {
4 int n;
5 while(scanf("%d",&n)!=EOF){
6 printf("%d\n",(9*n*n-7*n+2)/2);
7 }
8 return 0;
9 }
]]>#include<iostream>
#include<vector>
#include<cmath>
using namespace std;
struct record
{
int pos,neg;
record(int a,int b)
{
pos=a; neg=b;
}
};
int main()
{
int n,i,j,k,sum;vector<record> v;
for(int m=1;m<=24;m++)
{
n=m;
if((n*(n+1))%4!=0)
{
cout<<n<<" 0"<<endl;
continue;
}
vector<record> v;
record r1(0,1);//n=1鐨勬儏鍐?/span>
v.push_back(r1);
record r2(1,0);
v.push_back(r2);
for(i=2;i<=n;i++)//璁$畻鍒皀鐨勬墍鏈夋儏鍐?/span>
{
int * trip=new int[i];
int sum_i=(int)pow(2.0,i*1.0);
for(j=0;j<sum_i;j++)//絎琷縐嶅垎甯?/span>
{
int temp1=j, temp2=i;
int x=0, y=0; //璁板綍+錛?鐨勪釜鏁?/span>
while(temp1)
{
if(temp1%2==0)
{
trip[--temp2]=0; y++;
}
else
{
trip[--temp2]=1; x++;
}
temp1/=2;
}
for(k=0;k<temp2;k++)
y++, trip[k]=0;
int idx=0;
for(k=0;k<i-1;k++)
{
if(trip[k]+trip[k+1]==1)
idx*=2;
else idx*=2,idx+=1;
}
x+=v[2*((int)pow(2.0,i-2.0)-1)+idx].pos;
y+=v[2*((int)pow(2.0,i-2.0)-1)+idx].neg;
record r(x,y);
v.push_back(r);
}
}
/**//*if(n==3){
int star=2*((int)pow(2.0,n-1.0)-1);
for(j=0;j<(int)pow(2.0,n*1.0);j++)
printf("---%d %d\n",v[star+j].pos,v[star+j].neg);
}*/
int base=2*((int)pow(2.0,n-1.0)-1);
int num=(int)pow(2.0,n*1.0);
sum=0;
for(i=0;i<num;i++)
{
if(v[base+i].pos==v[base+i].neg)
sum++;
}
cout<<n<<" "<<sum<<endl;
}
return 0;
}
2 int res[25]={0,0,0,4,6,0,0,12,40,0,0,171,410,
3 0,0,1896,5160,0,0,32757,59984,0,0,431095,822229};
4 int main()
5 {
6 int n;
7 while(scanf("%d",&n),n)
8 {
9 printf("%d %d\n",n,res[n]);
10 }
11 return 0;
12 }
]]>
1銆?nbsp; 姣忔鍙兘縐誨姩涓鏍鹼紱
2銆?nbsp; 涓嶈兘鍚戝悗璧幫紙鍋囪浣犵殑鐩殑鍦版槸“鍚戜笂”錛岄偅涔堜綘鍙互鍚戝乏璧幫紝鍙互鍚戝彸璧幫紝涔熷彲浠ュ悜涓婅蛋錛屼絾鏄笉鍙互鍚戜笅璧幫級錛?br>3銆?nbsp; 璧拌繃鐨勬牸瀛愮珛鍗沖闄鋒棤娉曞啀璧扮浜屾錛?br>
姹傝蛋n姝ヤ笉鍚岀殑鏂規鏁幫紙2縐嶈蛋娉曞彧瑕佹湁涓姝ヤ笉涓鏍鳳紝鍗寵璁や負鏄笉鍚岀殑鏂規錛夈?br>http://acm.hdu.edu.cn/showproblem.php?pid=2563