codeforces 424D Biathlon Track

题意

题解

代码

#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define rep(i, a, b) for(int i=(a); i<(b); i++)
#define sz(a) (int)a.size()
#define de(a) cout << #a << " = " << a << endl
#define dd(a) cout << #a << " = " << a << " "
#define all(a) a.begin(), a.end()
#define endl "\n"
typedef long long ll;
typedef pair<int, int> pii;
typedef vector<int> vi;
//--- const int N = 333; int n, m, t, tp, tu, td;
int x11, y11, x2, y2;
int a[N][N];
ll ans;
ll pre[N][N][4]; inline void upd(ll x, int i, int j, int a, int b) {
if(!ans || abs(x - t) < abs(ans - t)) {
ans = x;
x11 = i;
x2 = j;
y11 = a;
y2 = b;
}
} inline int calc(int x, int y) {
if(x == y) return tp;
if(x > y) return tu;
return td;
} int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(0);
cin >> n >> m >> t;
cin >> tp >> tu >> td;
rep(i, 1, n+1) rep(j, 1, m+1) cin >> a[i][j];
rep(i, 1, n+1) rep(j, 2, m+1) pre[i][j][0] = pre[i][j-1][0] + calc(a[i][j], a[i][j-1]);
rep(i, 1, n+1) rep(j, 1, m) pre[i][j][2] = pre[i][j-1][2] + calc(a[i][j], a[i][j+1]);
rep(j, 1, m+1) rep(i, 2, n+1) pre[i][j][1] = pre[i-1][j][1] + calc(a[i][j], a[i-1][j]);
rep(j, 1, m+1) rep(i, 1, n) pre[i][j][3] = pre[i-1][j][3] + calc(a[i][j], a[i+1][j]);
rep(i, 1, n+1) rep(j, i+2, n+1) {
set<pair<ll, int> > s;
rep(k, 1, m+1) {
if(k-2>=1) {
int c = k - 2;
ll t = - pre[i][c][0] - pre[j][c-1][2] + pre[j-1][c][3] - pre[i-1][c][3];
s.insert(mp(t, c));
}
if(!s.empty()) {
ll res = pre[i][k][0] + pre[j][k-1][2] + pre[j][k][1] - pre[i][k][1];
ll c = t - res;
auto tmp = s.lower_bound(mp(c, 0));
if(tmp != s.end()) {
upd(res + tmp->fi, i, j, tmp->se, k);
}
if(tmp != s.begin()) {
tmp--;
upd(res + tmp->fi, i, j, tmp->se, k);
}
}
}
}
cout << x11 << " " << y11 << " " << x2 << " " << y2 << endl;
return 0;
}

codeforces 424D Biathlon Track的更多相关文章

  1. Biathlon Track

    Codeforces Round #242 (Div. 2) D:http://codeforces.com/contest/424/problem/D 题意:给你一个n*m的矩阵,每个格子上面有个数 ...

  2. Codeforces 615C Running Track(DP + Trie树)

    题目大概说给两个串,问最少要用多少个第一个串的子串(可以翻转)拼成第二个串. UVa1401,一个道理..dp[i]表示前缀i拼接成功所需最少的子串,利用第一个串所有子串建立的Trie树往前枚举转移. ...

  3. codeforces 424D

    题意:给定n,m<=300的矩阵,然后求一个长宽大于2的矩形,使得是从左上角位置开始逆时针绕边框一圈的时间最少.时间的计算是:给定3个数tu,tp, td,路径上数字增加为tu,相等为tp否则为 ...

  4. CodeForces 424D: ...(二分)

    题意:给出一个n*m的矩阵,内有一些数字.当你从一个方格走到另一个方格时,按这两个方格数字的大小,有(升,平,降)三种费用.你需要在矩阵中找到边长大于2的一个矩形,使得按这个矩形顺时针行走一圈的费用, ...

  5. Codeforces Round #242 (Div. 2) &lt;A-D&gt;

    CF424 A. Squats 题目意思: 有n(n为偶数)个x和X,求最少的变换次数,使得X的个数为n/2,输出变换后的序列. 解题思路: 统计X的个数ans,和n/2比較,少了的话,须要把n/2- ...

  6. Codeforces Round #338 (Div. 2) C. Running Track dp

    C. Running Track 题目连接: http://www.codeforces.com/contest/615/problem/C Description A boy named Ayrat ...

  7. 【28.57%】【codeforces 615C】 Running Track

    time limit per test1 second memory limit per test512 megabytes inputstandard input outputstandard ou ...

  8. Codeforces Round #313 (Div. 2) C. Gerald's Hexagon 数学

    C. Gerald's Hexagon Time Limit: 2 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/559/pr ...

  9. Codeforces Gym 100531I Instruction 构造

    Problem I. Instruction 题目连接: http://codeforces.com/gym/100531/attachments Description Ingrid is a he ...

随机推荐

  1. SVN版本控制——SVN 合并的六种方式

    合并的工作是把主干或者分支上合并范围内的所有改动列出,并对比当前工作副本的内容,由合并者手工修改冲突,然后提交到服务器的相应目录里.如果当前工作副本是主干,则合并的范围是分支上的改动,如果工作副本是分 ...

  2. Func的介绍——c#封装的代理

    经常看到  Func<int, bool>...这样的写法,看到这样的就没有心思看下去了.我们学技术还是需要静下心来. 对Func<int,bool>的Func转到定义看它的解 ...

  3. Android Studio 3.0找不到Android Device Monitor

    因为自Android Studio 3.0开始弃用Android Device Monitor,Android Developers官网上的原话是: Android Device Monitor is ...

  4. 【原】Spring整合Shiro基础搭建[3]

    1.前言 上个Shiro Demo基础搭建是基于官方的快速入门版本,没有集成其他框架,只是简单的通过Main方法来执行Shiro工作流程,并测试一下比较核心的函数:但在企业开发中一般都会集成Sprin ...

  5. SpringBoot(三) Core Features: External Configuration(配置文件)

    码云: external-configuration 可以使用属性文件,YAML文件,环境变量和命令行参数来外部化配置 一.属性值可以直接注入到bean 系统属性值不可以 // application ...

  6. 【学习笔记】--- 老男孩学Python,day13 生成器,生成器函数,各种推倒式和生成器表达式

    1. 生成器和生成器函数 生成器的本质就是迭代器 生成器的三种创建办法: 1.通过生成器函数 2.通过生成器表达式创建生成器 3.通过数据转换   2. 生成器函数: 函数中包含了yield的就是生成 ...

  7. EOS开发经验总结——不定期持续更新中

    一.新手安装mysql乱码问题 1.数据库安装时设置默认编码格式为UTF8或者打开mysql安装目录下my.ini,变更default-character-set=utf8: 2.打开EOS的Gove ...

  8. CentOS7.4 + Hadoop2.9安装配置管理(分布式)

    1.  规划 1.1.  机器列表 NameNode SecondaryNameNode DataNodes 192.168.1.121 192.168.1.122 192.168.1.101 192 ...

  9. CentOS7系列--2.2CentOS7中配置SSH服务

    CentOS7配置SSH服务 1. SSH配置 1.1. 使用SSH服务更加安全 [root@centos7 ~]# vi /etc/ssh/sshd_config 设置如下 PermitRootLo ...

  10. 风云2号云图Mosaic Dataset处理

    # ---------------------------------------------------------------------------# -*- coding: utf-8 -*- ...