SRM 531 SutTheBumbers
来源:互联网 发布:windows不激活 编辑:程序博客网 时间:2024/05/19 23:13
【分析】
一开始是直接想到用贪心的,因为样例是完全可以过的(要么全是横的,要么全是竖的)。不过在用大数据跑的时候就发现了问题。贪心不行,难道我们真的要模拟怎么分割这个矩形吗?不说复杂度,关键是不会模拟啊。最后将目光聚集到小方块上,一个方块的状态其实只有横着的或竖着的,也就是0、1序列。这就想到了状压。接下来就是模拟的事情了。
【代码】
bool mk[6][6];class CutTheNumbers {public: int maximumSum(vector <string> a) { int n=a.size(); int m=a[0].length(); int ans=0; int i,j,p,q; for(p=0;p<(1<<(n*m));p++){ int an=0; memset(mk,0,sizeof(mk)); for(i=0;i<n;i++){ for(j=0;j<m;j++){ if(mk[i][j])continue; if((1<<(i*m+j))&p){//是横着的 int w=0; for(q=j;q<m&&!mk[i][q];q++){ if((1<<(i*m+q))&p){ w=w*10+a[i][q]-'0'; mk[i][q]=1; } else break; } an+=w; } else{ int w=0; for(q=i;q<n&&!mk[q][j];q++){ if(!(((1<<(q*m+j))&p))){ w=w*10+a[q][j]-'0'; mk[q][j]=1; }else break; } an+=w; } } } ans=max(ans,an); } return ans; }};
2 0
- SRM 531 SutTheBumbers
- srm 531
- SRM 531 DIV 2
- srm
- topcoder srm 531 div2 600pt
- SRM 531 div1 600/300 div2 950
- topcode srm SRM 557
- SRM 443
- SRM 442
- SRM 439
- SRM 438
- SRM 444
- SRM 434
- SRM 445
- SRM 426
- SRM 456
- SRM 467
- SRM 466
- java基础之面向对象
- 九度 oj 题目1130:日志排序
- 或许我们就是人工智能
- Android--多线程之Handler
- P1125 笨小猴
- SRM 531 SutTheBumbers
- Spring的三大核心接口——BeanFactory、ApplicationContext、WebApplicationContext
- PHP安装 (windows)
- 21 semaphore 3
- JVM内存模型
- KiCad设计PCB-4-使用KiCad制作第一个元器件的封装
- 浅谈谷歌全新设计理念Material design
- 配置Spring后Tomcat启动错误——已解决
- SRM 514 MagicalGirlLevelThreeDivTwo