这讲真就是一篇显得自己认真做题的博客

因为真的比较习惯将培训所有的题都放到一篇博客中,又因为暑假好多培训,所以单题很少,这也是从博客中摘出来的

题目链接

如果合法,一定有一条贯穿整个矩形的线;

dp[i][j][t]长度为i,宽度为j,面向大海的边的状态是t这样划分最小差异度是啥;、

然后因为一定要贯穿,可以一分为二:dp[i][j][t]=左边+右边;

其中t:

t==1 只有一面环海:

显然如果我们要将其分成两部分,只能:

for(int i=1;i<n;i++) ans=min(ans,work(i,m,1)+work(n-i,m,1));
return f[n][m][t]=ans;

t2 && t4 有2面环海:

t==2:

如果要分成两部分的话,可以横着分,也可以竖着分:

    for(int i=1;i<n;i++) ans=min(ans,work(i,m,2)+work(n-i,m,1));//竖着分?
for(int i=1;i<m;i++) ans=min(ans,work(n,i,2)+work(m-i,n,1));//横着分?

t==4:

同样可以横着分和竖着分:

for(int i=1;i<n;i++) ans=min(ans,work(i,m,4)+work(n-i,m,4));
for(int i=1;i<m;i++) ans=min(ans,work(n,i,1)+work(n,m-i,1));

t==3:三面环海:

同样有两种划分方法:

for(int i=1;i<n;i++) ans=min(ans,work(i,m,3)+work(n-i,m,4));
for(int i=1;i<m;i++) ans=min(ans,work(n,i,2)+work(n,m-i,2));

CODE:

#include<cstdio>
#include<algorithm>
#include<cstring>
#define ll long long using namespace std; inline int read(){
int ans=0;
char last=' ',ch=getchar();
while(ch>'9'||ch<'0') last=ch,ch=getchar();
while(ch>='0'&&ch<='9') ans=(ans<<1)+(ans<<3)+ch-'0',ch=getchar();
if(last=='-') ans=-ans;
return ans;
} int n,m,k;
ll ans;
ll f[310][310][5]; ll hs(int x,int y,int t){
if(f[x][y][t]!=-1) return f[x][y][t];
ll ans=((ll)x*y-k)*((ll)x*y-k); if(t==1){
for(int i=1;i<x;i++) ans=min(ans,hs(i,y,1)+hs(x-i,y,1));
return f[x][y][t]=ans;
}
if(t==3){
for(int i=1;i<x;i++) ans=min(ans,hs(i,y,3)+hs(x-i,y,2));
for(int i=1;i<y;i++) ans=min(ans,hs(x,i,4)+hs(x,y-i,4));
return f[x][y][t]=ans;
}
if(t==2){
for(int i=1;i<x;i++) ans=min(ans,hs(i,y,2)+hs(x-i,y,2));
for(int i=1;i<y;i++) ans=min(ans,hs(x,i,1)+hs(x,y-i,1));
return f[x][y][t]=ans;
}
if(t==4){
for(int i=1;i<x;i++) ans=min(ans,hs(i,y,4)+hs(x-i,y,1));
for(int i=1;i<y;i++) ans=min(ans,hs(x,i,4)+hs(y-i,x,1));
return f[x][y][t]=ans;
}
} int main(){
n=read();
m=read();
k=read();
memset(f,-1,sizeof(f));
ans=1e18;
for(int i=1;i<n;i++) ans=min(ans,hs(i,m,3)+hs(n-i,m,3));
for(int i=1;i<m;i++) ans=min(ans,hs(m-i,n,3)+hs(i,n,3));
printf("%lld",ans);
return 0;
}

BZOJ 3810 [Coci2015]Stanovi的更多相关文章

  1. BZOJ3810: [Coci2015]Stanovi

    3810: [Coci2015]Stanovi Description Input 输入一行,三个整数,n, m, k   Output 输出一个数,表示最小不满意度.   Sample Input ...

  2. BZOJ 3881: [Coci2015]Divljak [AC自动机 树链的并]

    3881: [Coci2015]Divljak 题意:添加新文本串,询问某个模式串在多少种文本串里出现过 模式串建AC自动机,考虑添加一个文本串,走到的节点记录下来求树链的并 方法是按dfs序排序去重 ...

  3. BZOJ 3881: [Coci2015]Divljak

    3881: [Coci2015]Divljak Time Limit: 20 Sec  Memory Limit: 768 MBSubmit: 553  Solved: 176[Submit][Sta ...

  4. bzoj 3745: [Coci2015]Norma

    Description Solution 考虑分治: 我们要统计跨越 \(mid\) 的区间的贡献 分最大值和最小值所在位置进行讨论: 设左边枚举到了 \(i\),左边 \([i,mid]\) 的最大 ...

  5. BZOJ 3745: [Coci2015]Norma(分治)

    题意 给定一个正整数序列 \(a_1, a_2, \cdots, a_n\) ,求 \[ \sum_{i=1}^{n} \sum_{j=i}^{n} (j - i + 1) \min(a_i,a_{i ...

  6. 【刷题】BZOJ 3745 [Coci2015]Norma

    Description Input 第1行,一个整数N: 第2~n+1行,每行一个整数表示序列a. Output 输出答案对10^9取模后的结果. Sample Input 4 2 4 1 4 Sam ...

  7. bzoj3810: [Coci2015]Stanovi(记忆化搜索)

    实际上切出来的矩阵在原矩阵上的位置是不重要的...重要的只有矩阵的大小和上下左右是否在边界上. 于是我们可以设f[x][y][l][r][u][d]表示x*y的矩阵上下左右是不是边界的最小代价. 记忆 ...

  8. bzoj 3881: [Coci2015]Divljak AC自动机

    题目大意: http://www.lydsy.com/JudgeOnline/problem.php?id=3881 题解: 这道题我想出了三种做法,不过只有最后一种能过. 第一种: 首先我们把所有的 ...

  9. bzoj 3881 [Coci2015]Divljak fail树+树链的并

    题目大意 Alice有n个字符串S_1,S_2...S_n,Bob有一个字符串集合T,一开始集合是空的. 接下来会发生q个操作,操作有两种形式: "1 P",Bob往自己的集合里添 ...

随机推荐

  1. linux-ntp-10

    Unix/linux类:ntp.aliyun.com,ntp1-7.aliyun.com windows类: time.pool.aliyun.com s1a.time.edu.cn 北京邮电大学 s ...

  2. ICPC — International Collegiate Programming Contest Asia Regional Contest, Yokohama, 2018–12–09 题解

    目录 注意!!此题解存在大量假算法,请各位巨佬明辨! Problem A Digits Are Not Just Characters 题面 题意 思路 代码 Problem B Arithmetic ...

  3. CSS注

    1.css3内容上下左右居中 .box { display:-moz-box; -moz-box-pack:center; -moz-box-align:center; display:-webkit ...

  4. 使用http-server在本地搭建一个HTTP服务器

    安装http-server 在控制台中输入 npm install http-server -g 进行全局安装 共享资源 进入需要共享资源的目录,比如 D:\,然后在控制台中输入 http-serve ...

  5. vue基于element-ui的三级CheckBox复选框

    最近vue项目需要用到三级CheckBox复选框,需要实现全选反选不确定三种状态.但是element-ui table只支持多选行,并不能支持三级及以上的多选,所以写了这篇技术博文供以后学习使用. 效 ...

  6. xml文件中 xmlns xmlns:xsi 等解释

    http://bbs.csdn.NET/topics/390751819 maven 的 pom.xml 开头是下面这样的 <project xmlns="http://maven.a ...

  7. gdb调试知识

    之前一直不怎么用gdb,现在要用做一下记录 用gdb启动程序 gdb ./demo intel风格反汇编main函数,一共两行第一行设置汇编风格,第二行才是反汇编main函数 set disassem ...

  8. 阶段3 1.Mybatis_09.Mybatis的多表操作_4 完成account一对一操作-建立实体类关系的方式

    定义user的实体.然后生成getter和setter 定义一个可以封装Account和User的Map type这里虽然是account类型 这一段只能保证account的数据完成.并不能保证use ...

  9. Tomcat中出现"RFC 7230 and RFC 3986"错误的解决方法

    在用axios从前台向后台发请求时,后台报错 Invalid character found in the request target. The valid characters are defin ...

  10. Jmeter之Synchronizing Timer(同步集合点)

    在性能测试时,需要压测并发,此时就需要用到Synchronizing Timer组件. 一.界面显示 二.配置说明 1.名称:标识 2.注释:备注 3.Grouping (1.Number of si ...