杭电acm2517属什么类型题?

找不着思路,请高手指点

DP动态规划
见刘汝佳黑书

考虑左上角坐标为(x1,y1),右下角坐标为(x2,y2)的棋盘,设它把切割k次以后得到的k+1块矩形的总分平方和最小值为d[k,x1,y1,x2,y2]
状态转移: 沿着某横线切或者竖线切,然后选一块继续切, 如横着切的两类决策是
d[k-1,x1,y1,a,y2]+s[a+1,y1,x2,y2]
d[k-1,a+1,y1,x2,y2]+s[x1,y1,a,y2]
其中x1<=a<=x2

状态d[k,x1,y1,x2,y2]
设m为棋盘边长,则状态数目为m4n,决策数目为O(m)
转移时间取决于计算s[x1,y1,x2,y2]的时间
预处理先用O(m2)时间算出左上角为(1,1)的所有矩阵元素和,这样状态转移时间就是O(1),总的时间复杂度为O(m5n)
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-07-28
机电类

杭电acm2517属什么类型题?
考虑左上角坐标为(x1,y1),右下角坐标为(x2,y2)的棋盘,设它把切割k次以后得到的k+1块矩形的总分平方和最小值为d[k,x1,y1,x2,y2]状态转移: 沿着某横线切或者竖线切,然后选一块继续切, 如横着切的两类决策是 d[k-1,x1,y1,a,y2]+s[a+1,y1,x2,y2]d[k-1,a+1,y1,x2,y...

ACM入门阶段去哪做题?
杭电的OJ,上面的水题多,特别是输入输出那部分,在第一页的最下面。 ACM (Association for Computing Machinery ) 中文:国际计算机学会。ACM是一个世界性的计算机从业员专业组织,创立于1947年,是世界上第一个科学性及教育性计算机学会,目前在全世界130多个国家和地区拥有超过10万名的会员。ACM是全世界计算机领域影响...

杭电acm题的答案在什么地方啊?C++
acm onlinejudge一般没有公布答案的,只有一些做出来的人可能会公开,否则一般来说官方是不会提供答案的,所以楼主可以把题目拿出来问人,或者网上找照看有没有答案

杭电一位学生还没毕业年薪已过百万,这位学生是什么专业的?
在杭州电子科技大学有一位大学生还没有毕业,就已经受到年薪百万的offer,而这件事情也在网上引起热议立即登上了微博热搜,现在大多数毕业生面临失业的状况,这名学生竟然能找到这么好的工作,也惹得同龄人一顿的羡慕,据了解这个人的专业是人工智能班,这也是该专业第一届毕业生,由于专业符合用人需求,...

请问acm和oj有什么区别呀??华为的oj系统和杭电oj有什么区别??题目是...
acm 和 oj的区别 可以类比 : 欧冠和足球 华为oj和杭电oj 可以类比: 亚冠和欧冠 题目肯定不一样 就算题目描述一样,测试数据也不一定一样

杭电acm2007题,提交总是Presentation Error。。。帮忙看下什么情况
double类型用cout输出,比较大的数会用科学计数法输出,你改成printf("%d %d\\n",(int)x,(int)y);就可以了 当然头文件就需要#include<cstdio>了

杭电ACM1001我的代码和一个完全正确的代码输出效果一样,为什么提交还是w...
题目里面限定了【最终结果 R】是不超过 int 类型的范围的,这样用公式 f1 的话,【所有中间结果】都不会超过【最终结果 R】,也就不会超过 int 类型的范围;这样用公式 f2的话,有些【中间结果】会超过【最终结果 R】,也就【可能会】超过 int 类型的范围。中间结果超出了 int 范围,最终的结果...

杭电1003 http:\/\/acm.hdu.edu.cn\/showproblem.php?pid=1003 这个代码...
3 -1 2 -4 你的结果 1 1 2;正确结果 2 2 2 还有,即使你的算法对了,可是你的时间复杂度很大,会超时。这一题属于典型的动态规划, 求最大连续子段和 说下原理 f [ j ] = ai + a(i + 1) + ... aj; (1 <= i <= j <= n)b [ j ] = max( f[ j ] )要求的...

杭电acm1009 急啊http:\/\/acm.hdu.edu.cn\/showproblem.php?pid=1009
i].f;if(m==0)break;} printf("%.3lf\\n",max);} return 0;} 。。。此题除了要满足例子以外,还要满足一些条件才能真正算ac:0 1 1 0 1.000 1 0 0.000 5 4 10000 5 2000 2 100 0 300 0 10400.000 数据类型用double,就这样 ...

杭电ACM中1106问题--排序,提交的时候老是出现“wrong answer",请问这是...
int compare(const void *a,const void *b){ return *((int*)a)-*((int*)b);} int main(){ int n,i,j,k;int length;char str[1002];char *s;int a[1002];\/\/freopen("br.txt","r",stdin);while(scanf("%s",str)!=EOF){ n=0;j=0;length=strlen(str);s=(char*)malloc...

相似回答