【NOIP2017提高组】好路线
来源:互联网 发布:土豆for mac 编辑:程序博客网 时间:2024/05/22 10:39
Description
Solution
很容易的DP。
先把式子化简可以发现变成了
Code
#include<algorithm>#include<math.h>#include<stdio.h>#include<string.h>#include<iostream>using namespace std;#define fo(i,a,b) for(i=a;i<=b;i++)typedef long long ll;const int N=52;ll f[N][N][2*N*N],a[N][N],INF,ans;ll n,m,i,j,k,K,mx;ll sqr(ll x){return x*x;}int main(){ scanf("%lld%lld",&n,&m); fo(i,1,n) fo(j,1,m) scanf("%lld",&a[i][j]),mx=max(mx,a[i][j]); K=n+m-1;mx*=K; memset(f,127/2,sizeof(f));INF=f[0][0][0]; fo(i,1,n) fo(j,1,m){ if(i==1&&j==1){ f[i][j][a[i][j]]=sqr(a[i][j]); continue; } fo(k,0,mx){ if(i>1&&k-a[i][j]>=0&&f[i-1][j][k-a[i][j]]<INF) f[i][j][k]=min(f[i][j][k],f[i-1][j][k-a[i][j]]+sqr(a[i][j])); if(j>1&&k-a[i][j]>=0&&f[i][j-1][k-a[i][j]]<INF) f[i][j][k]=min(f[i][j][k],f[i][j-1][k-a[i][j]]+sqr(a[i][j])); } } ans=INF;fo(k,0,mx) if(f[n][m][k]<INF)ans=min(ans,f[n][m][k]*K-sqr(k)); printf("%lld\n",ans);}
阅读全文
0 0
- 【NOIP2017提高组】好路线
- JZOJ 5453. 【NOIP2017提高A组冲刺11.5】好路线
- Jzoj5453【NOIP2017提高A组冲刺11.5】好路线
- JZOJ5453. 【NOIP2017提高A组冲刺11.5】好路线
- JZOJ 100045. 【NOIP2017提高A组模拟7.13】好数
- 【NOIP2017提高A组模拟7.13】好数
- JZOJ100045. 【NOIP2017提高A组模拟7.13】好数
- Jzoj5462【NOIP2017提高A组冲刺11.8】好文章
- JZOJ5462. 【NOIP2017提高A组冲刺11.8】好文章
- JZOJ 5462. 【NOIP2017提高A组冲刺11.8】好文章
- [jzoj5462]【NOIP2017提高A组冲刺11.8】好文章
- 【NOIP2017提高组】轰炸
- Noip2017提高组Day1
- NOIP2017提高组游记
- NOIP2017提高组小记
- 【总结】NOIP2017 提高组
- NOIP2017提高组总结
- NOIP2017 提高组 题解
- 使用HTML5 File API 在浏览器中实现本地与远程桌面间传递文件
- c#list,Dictionary,Queue,Stack
- Debugging with RStudio
- glide简单使用笔记
- 传统IT七大职业的云计算转型之路
- 【NOIP2017提高组】好路线
- GAN 学习 (1)
- 机器学习中的偏差与方差
- 如何给元素添加事件监听和取消事件冒泡
- Spring MVC AOP通过自定义注解方式拦截Controller等实现日志管理
- 001-Java杂记之二分查找
- “软件工程(C编码实践篇)”实验报告【实验七:将menu设计为可重用的子系统】
- Android的service
- User Authentication in Django