您的位置:首页 > 其它

uva 10276 / pc 110908

2014-06-18 10:41 375 查看
黑书上说用二分图的知识来解,但我想不出来,只好找规律

发现,一条柱时为1,两条柱时为4。三条柱时为8。。

这些1,3,7,11的数字加1后,都是下一条柱的最底部的数字,而且一条柱的数字之和总是按照这样的规律。1^2,2^2,3^2,4^2......

所以。。

#include <iostream>
#include <cstdio>
using namespace std;

int ans[55];
int upg[55];
int main(){
upg[1]=0;
for(int i=1;i<=50;i++){
int anst=-1;
for(int p=1;p<=i;p++){
upg[p]=i*i-upg[p];
anst=max(anst,upg[p]);
}
ans[i]=anst;
upg[i+1]=anst+1;
}
int T;
scanf("%d",&T);
while(T--){
int n;
scanf("%d",&n);
printf("%d\n",ans
);
}
return 0;
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: