[USACO13FEB] Tractor
题目链接
大家的 Blog 里面都是做过的题目,只有我的里面什么都没有
那我也开始写一点吧
刷着刷着 DP 不知怎的就出来一道这个题……用时 2 hours 后怒而删两个文件重构……
然后过了……过了……
至今不知道前两遍错在哪里……
Code - first time:连通块染色 +建图,然后二分,广搜判断
Code - second time:连通块染色 +建图,并查集维护连通块大小,做伪 Kruskal
Code - third time:二分,广搜判断
#include <queue>
#include <cstdio>
#include <cctype>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std; const int maxn = + ;
const int maxk = * + ;
int n, h[maxn][maxn], vis[maxn][maxn], flag;
int f[][] = { , , , , -, , , - }; inline int Abs(int x) { return x > ? x : -x; } inline bool Breath_fs(int sx, int sy, int c) {
queue<pair<int, int> > q;
q.push(make_pair(sx, sy)), vis[sx][sy] = ;
int cnt = ;
while( !q.empty() ) {
int x = q.front().first, y = q.front().second;
for(int i = ; i < ; ++i) {
int tx = x + f[i][], ty = y + f[i][];
if( tx < || tx > n || ty < || ty > n ) continue;
if( Abs(h[x][y] - h[tx][ty]) > c || vis[tx][ty] ) continue;
++cnt, vis[tx][ty] = , q.push(make_pair(tx, ty));
}
q.pop();
}
return cnt + > ((n * n) >> ) + ((n * n) & );
} inline bool Check(int x) {
memset(vis, , sizeof vis), flag = ;
for(int i = ; i <= n; ++i) {
for(int j = ; (!flag && j <= n); ++j)
if( !vis[i][j] ) flag = flag | Breath_fs(i, j, x);
if( flag ) break;
}
return flag;
} int main(int argc, char const *argv[])
{
freopen("nanjolno.in", "r", stdin);
freopen("nanjolno.out", "w", stdout); scanf("%d", &n);
for(int i = ; i <= n; ++i) for(int j = ; j <= n; ++j) scanf("%d", &h[i][j]);
int lef = , righ = , mid = (lef + righ) >> , ans = ;
for( ; lef <= righ; mid = (lef + righ) >> )
Check(mid) ? ans = mid, righ = mid - : lef = mid + ;
printf("%d\n", ans); fclose(stdin), fclose(stdout);
return ;
}
—— 晨意微寒秋渐深,侧畔无事俏佳人。
[USACO13FEB] Tractor的更多相关文章
- 【题解】[USACO13FEB]Tractor S
题目戳我 \(\text{Solution:}\) 好久没写啥\(dfs\)了,借这个题整理下细节. 观察到答案具有二分性,所以先求出其差的最大最小值,\(\log val\)的复杂度不成问题. 考虑 ...
- USACO Tractor
洛谷 P3073 [USACO13FEB]拖拉机Tractor 洛谷传送门 JDOJ 2351: USACO 2013 Feb Silver 2.Tractor JDOJ传送门 题意翻译 题目描述 F ...
- [USACO13FEB]出租车Taxi
洛谷题目链接:[USACO13FEB]出租车Taxi 题目描述 Bessie is running a taxi service for the other cows on the farm. The ...
- 洛谷 P1849 [USACO12MAR]拖拉机Tractor
题目描述 After a long day of work, Farmer John completely forgot that he left his tractor in the middle ...
- 洛谷—— P1849 [USACO12MAR]拖拉机Tractor
https://www.luogu.org/problemnew/show/P1849 题目描述 After a long day of work, Farmer John completely fo ...
- [bzoj3061][Usaco13Feb]Partitioning the Farm_动态规划_状压dp
Partitioning the Farm bzoj-3061 Usaco13Feb 题目大意:给定一个n*n的方格图,用k条贯穿方格图的直线将整个方格图分割,使得每一块的权值和的最大值最小. 注释: ...
- [bzoj3062][Usaco13Feb]Taxi_贪心
Taxi bzoj-3062 Usaco13Feb 题目大意:有n个奶牛想坐出租车.第i头奶牛在起点a[i]等候,想坐出租车到b[i].Bessie从0出车,车上只能坐一头奶牛.她必须完成所有奶牛的要 ...
- Android有用的任务管理器—tractor
在平时的android开发工作中,我们常常须要运行耗时操作,有时为了用户体验还须要显示个等待框,我之前的做法都是开一个线程,然后用handler发消息进行显示和关闭等待框以及相关的ui操作.假设任务比 ...
- USACO 2012 March Silver Tractor /// 优先队列BFS oj21567
题目大意: 输入n,(x,y):n为阻挡的草堆数量,(x,y)为开始时拖拉机所在的位置 接下来n行每行一个坐标(a,b):为各个草堆的坐标 输出拖拉机要回到原点(0,0)需要移动的草堆数量 Sampl ...
随机推荐
- Nginx map模块
L77 Syntax: map string $variable { ... } Default: — Context: http map 指令 curl -H 'aaaa:4444444' -H ' ...
- Nginx GoAccess安装与配置
1.下载并安装Geoip $ wget https://github.com/maxmind/geoip-api-c/releases/download/v1.6.12/GeoIP-1.6.12.ta ...
- BZOJ1503[NOI2004]郁闷的出纳员——treap
OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的工资.这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常调整员工的工资.如果他心 ...
- 【XSY1642】Another Boring Problem 树上莫队
题目大意 给你一棵\(n\)个点的树,每个点有一个颜色\(c_i\),每次给你\(x,y,k\),求从\(x\)到\(y\)的路径上出现次数第\(k\)多的颜色的出现次数 \(n,q\leq 1000 ...
- Leetcode 209.长度最小的子数组 By Python
给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组.如果不存在符合条件的连续子数组,返回 0. 示例: 输入: s = 7, nums = [2, ...
- hexo+next主题目录解析
默认目录结构: . ├── .deploy ├── public ├── scaffolds ├── scripts ├── source | ├── _drafts | └── _posts ├── ...
- HR_Counting Valleys
把字符串数字化之后应该从 i>0开始判断而不是 i>1 因此错了4个testcases. #!/bin/python3 import math import os import rando ...
- Nio再学习之NIO的buffer缓冲区
1. 缓冲区(Buffer): 介绍 我们知道在BIO(Block IO)中其是使用的流的形式进行读取,可以将数据直接写入或者将数据直接读取到Stream对象中,但是在NIO中所有的数据都是使用的换冲 ...
- nuxt.js实战之用vue-i18n实现多语言
一.实现步骤 1.安装vue-i18n并且创建store.js(vuex状态管理)文件 2.创建一个(middleware)中间件,用来管理不同的语言 3.创建不同语言的json文件作为语言包(例如: ...
- 关于windows下NODE_ENV=test无效的情况解决办法
redux的单元测试命令为 NODE_ENV=test mocha --recursive --compilers js:babel-core/register --require ./test/se ...