BZOJ 3810 [Coci2015]Stanovi
这讲真就是一篇显得自己认真做题的博客
因为真的比较习惯将培训所有的题都放到一篇博客中,又因为暑假好多培训,所以单题很少,这也是从博客中摘出来的
如果合法,一定有一条贯穿整个矩形的线;
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的更多相关文章
- BZOJ3810: [Coci2015]Stanovi
3810: [Coci2015]Stanovi Description Input 输入一行,三个整数,n, m, k Output 输出一个数,表示最小不满意度. Sample Input ...
- BZOJ 3881: [Coci2015]Divljak [AC自动机 树链的并]
3881: [Coci2015]Divljak 题意:添加新文本串,询问某个模式串在多少种文本串里出现过 模式串建AC自动机,考虑添加一个文本串,走到的节点记录下来求树链的并 方法是按dfs序排序去重 ...
- BZOJ 3881: [Coci2015]Divljak
3881: [Coci2015]Divljak Time Limit: 20 Sec Memory Limit: 768 MBSubmit: 553 Solved: 176[Submit][Sta ...
- bzoj 3745: [Coci2015]Norma
Description Solution 考虑分治: 我们要统计跨越 \(mid\) 的区间的贡献 分最大值和最小值所在位置进行讨论: 设左边枚举到了 \(i\),左边 \([i,mid]\) 的最大 ...
- 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 ...
- 【刷题】BZOJ 3745 [Coci2015]Norma
Description Input 第1行,一个整数N: 第2~n+1行,每行一个整数表示序列a. Output 输出答案对10^9取模后的结果. Sample Input 4 2 4 1 4 Sam ...
- bzoj3810: [Coci2015]Stanovi(记忆化搜索)
实际上切出来的矩阵在原矩阵上的位置是不重要的...重要的只有矩阵的大小和上下左右是否在边界上. 于是我们可以设f[x][y][l][r][u][d]表示x*y的矩阵上下左右是不是边界的最小代价. 记忆 ...
- bzoj 3881: [Coci2015]Divljak AC自动机
题目大意: http://www.lydsy.com/JudgeOnline/problem.php?id=3881 题解: 这道题我想出了三种做法,不过只有最后一种能过. 第一种: 首先我们把所有的 ...
- bzoj 3881 [Coci2015]Divljak fail树+树链的并
题目大意 Alice有n个字符串S_1,S_2...S_n,Bob有一个字符串集合T,一开始集合是空的. 接下来会发生q个操作,操作有两种形式: "1 P",Bob往自己的集合里添 ...
随机推荐
- 【leetcode】1217. Play with Chips
题目如下: There are some chips, and the i-th chip is at position chips[i]. You can perform any of the tw ...
- 【shell】awk格式对齐文本
源: 218.104.69.100 218.104.69.100 安徽合肥 218.104.69.99 218.104.69.99 安徽合肥 61.190.72.38 61.190.72.38 安徽合 ...
- 020:reverse函数补充
补充reverse两点: 1.如若在反转url时,需要添加参数,那么可以传递 kwargs 参数到 reverse 函数中,实例代码如下: '}) ) 2.如若想添加查询字符串参数,则必须手动进行ur ...
- js怎么上传文件夹
1 背景 用户本地有一份txt或者csv文件,无论是从业务数据库导出.还是其他途径获取,当需要使用蚂蚁的大数据分析工具进行数据加工.挖掘和共创应用的时候,首先要将本地文件上传至ODPS,普通的小文件通 ...
- BZOJ 1901 洛谷 P2617 ZOJ 2112 Dynamic Rankings
以下时空限制来自zoj Time limit 10000 ms Memory limit 32768 kB OS Linux Source Online Contest of Christopher' ...
- CTSC&APIO 2017游记
Day 0 早上4点多起床赶飞机,起床的时候发现闹钟调成下午4点的了...(虽然说早就已经被父母的洗漱声音吵醒了) 飞机上碎觉.到了北京发现比福州还热...而且北京今天意外地好天气,没有传言中的&qu ...
- JMS学习十(ActiveMQ支持的传输协议)
ActiveMQ提供了一种连接机制,这种连接机制使用传输连接器(TransportConnector)实现客户端与代理(client - to - broker)之间的通信. 网络连接器(networ ...
- Access to the requested object is only available from the local network phpmyadmin
http://stackoverflow.com/questions/11999371/access-to-the-requested-object-is-only-available-from-th ...
- lr_save_string和sprintf、lr_eval_string的使用
一.lr_save_string函数 1.该函数主要是将程序中的常量或变量保存为参数: //将常量保存为参数 lr_save_string("777","page&quo ...
- 搭建ORACLE11g_RAC_单实例_ADG 注意事项
搭建ORACLE11g_RAC_单实例_ADG 建库时候的注意事项:实例名为orcl1SYS@orcl1>select instance_name from v$instance; INSTAN ...