跳跃式LIS(nlogn),在普通的转移基础上增加一种可以跨越一段距离的转移,用一颗新的树状数组维护,同时,我们还要维护跨越完一次后面的转移,所以我用了3颗树状数组。。

比赛的时候一句话位置写错了,然后就。。。雪崩

呆马:

 #include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <vector>
#include <algorithm>
using namespace std;
int a[][];
int sum,ans,num;
int t,n,m,x,y;
int dp[][][];
int main()
{
scanf("%d",&t);
for (int k=;k<=t;k++)
{
memset(a,,sizeof(a));
memset(dp,,sizeof(dp)); scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
for (int j=;j<=m;j++)
scanf("%d",&a[i][j]); dp[][][a[][]]=a[][]*a[][]; for (int i=;i<=n;i++)
{
for (int j=;j<=m;j++)
{
x=i-; y=j-;
if (i== && j==) continue;
for (int k=;k<=;k++)
{
if (dp[x][j][k]==) continue;
sum=k+a[i][j];
num=dp[x][j][k]+a[i][j]*a[i][j];
if (dp[i][j][sum]==) dp[i][j][sum]=num;
dp[i][j][sum]=min(dp[i][j][sum],num);
}
for (int k=;k<=;k++)
{
if (dp[i][y][k]==) continue;
sum=k+a[i][j];
num=dp[i][y][k]+a[i][j]*a[i][j];
if (dp[i][j][sum]==) dp[i][j][sum]=num;
dp[i][j][sum]=min(dp[i][j][sum],num);
} }
} ans=;
for (int i=;i<=;i++)
{
if (dp[n][m][i]==) continue;
num=(n+m-)*dp[n][m][i]-i*i;
//cout<<i<<' '<<dp[n][m][i]<<' '<<num<<endl;
ans=min(ans,num);
}
printf("Case #%d: %d\n",k,ans);
}
}

Removed Interval

Hdu 5489 合肥网络赛 1009 Removed Interval的更多相关文章

  1. Hdu 5493 合肥网络赛 1010 Queue

    在线求第k大,第一次用二分+树状数组写...比赛的时候分治啊,splay啊,主席树啊换来换去,然而以前为什么不知道可以这么写... #include <iostream> #include ...

  2. 2015合肥网络赛 HDU 5489 Removed Interval LIS+线段树(树状数组)

    HDU 5489 Removed Interval 题意: 求序列中切掉连续的L长度后的最长上升序列 思路: 从前到后求一遍LIS,从后往前求一遍LDS,然后枚举切开的位置i,用线段树维护区间最大值, ...

  3. 2015合肥网络赛 HDU 5492 Find a path 动归

    HDU 5492 Find a path 题意:给你一个矩阵求一个路径使得 最小. 思路: 方法一:数据特别小,直接枚举权值和(n + m - 1) * aver,更新答案. 方法二:用f[i][j] ...

  4. hdu 5876 Sparse Graph icpc大连站网络赛 1009 补图最短路

    BFS+链表 代码改自某博客 #include<stdio.h> #include<iostream> #include<algorithm> #include&l ...

  5. HDU 5015 233 Matrix(网络赛1009) 矩阵快速幂

    先贴四份矩阵快速幂的模板:http://www.cnblogs.com/shangyu/p/3620803.html http://www.cppblog.com/acronix/archive/20 ...

  6. hdu 6194 沈阳网络赛--string string string(后缀数组)

    题目链接 Problem Description Uncle Mao is a wonderful ACMER. One day he met an easy problem, but Uncle M ...

  7. hdu 6199 沈阳网络赛---gems gems gems(DP)

    题目链接 Problem Description Now there are n gems, each of which has its own value. Alice and Bob play a ...

  8. HDU 6206 青岛网络赛1001 高精度 简单几何

    给出的数据1e12规模,常规判点是否在圆范围内肯定要用到半径,求得过程中无法避免溢出,因此用JAVA自带的浮点大数运算,和个ZZ一样比赛中eclipse出现问题,而且太久没写JAVA语法都不清楚变量忘 ...

  9. HDU 5876 大连网络赛 Sparse Graph

    Sparse Graph Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) T ...

随机推荐

  1. windows快捷键集锦

    输入命令:netstat -ano,列出所有端口的情况.在列表中我们观察被占用的端口,比如是8090,首先找到它. 查看被占用端口对应的PID,输入命令:netstat -aon|findstr &q ...

  2. c#操作xml文件(XmlDocument,XmlTextReader,Linq To Xml)

    主界面

  3. jquery插件学习之元素顶部悬浮

    jquery插件的学习: HTML部分及应用 <!DOCTYPE html> <html> <head> <meta charset="utf-8& ...

  4. C fopen

    格式:文件指针名=fopen(文件名,使用文件方式) 参数:文件名 意义"C://TC//qwe.txt" 文件C:/TC/qwe.txt"qwe.txt" 和 ...

  5. 10 款最好的 Python IDE

    Python 非常易学,强大的编程语言.Python 包括高效高级的数据结构,提供简单且高效的面向对象编程. Python 的学习过程少不了 IDE 或者代码编辑器,或者集成的开发编辑器(IDE).这 ...

  6. mysql查看锁表情况

    mysql> show status like 'Table%'; +----------------------------+----------+ | Variable_name       ...

  7. System.Linq.Dynamic的使用

    项目中经常用到组合条件查询,根据用户配置的查询条件进行搜索,拼接SQL容易造成SQL注入,普通的LINQ可以用表达式树来完成,但也比较麻烦.有个System.Linq.Dynamic用起来比较方便. ...

  8. Springboot数据库连接池报错的解决办法

    Springboot数据库连接池报错的解决办法 这个异常通常在Linux服务器上会发生,原因是Linux系统会主动断开一个长时间没有通信的连接 那么我们的问题就是:数据库连接池长时间处于间歇状态,导致 ...

  9. Spring注解@Resource和@Autowired区别对比

    转载:http://www.cnblogs.com/think-in-java/p/5474740.html @Resource和@Autowired都是做bean的注入时使用,其实@Resource ...

  10. java://Comparator、Comparable的用法(按照要求将map集合的键值对进行顺序输出)

    import java.util.*; public class Person implements Comparable<Person>//使Person的属性具有比较性 { priva ...