codeforce 35C fire again
2017-08-25 17:04:07
writer:pprp
题目描述:
• Codeforces 35C Fire Again
• N*M的格子,最开始有K个点 (坐标给定) 开始着火
• 每一秒着火的点会扩散到与其距离为1的其他点
• 求最后一个着火的点
• 1 ≤ n, m ≤ 2000
• 1 ≤ K ≤ 10
模拟的题,本来想用dfs做感觉有点复杂,
可以通过判断两个点之间横纵距离之和来计算出时间
参见的是cf上某位大佬的代码,差距还是很大,要加油了,
话说cf真是好,越来越觉得cf好用了
代码如下:
/*
theme:cf 35c fire again
writer:pprp
declare:reference from WannabeStronger
type: 模拟
date:2017/8/25
*/ #include <cstdio>
#include <bits/stdc++.h> using namespace std; struct point
{
int x, y;
} pt[]; const int maxn = ; int mp[maxn][maxn]; int main()
{
freopen("input.txt","r",stdin);//这几句很神奇,不知道为什么加上这个就可以运行过去,不加就过不去
freopen("output.txt","w",stdout);
ios_base::sync_with_stdio(false); int n, m, k;
cin >> n >> m >>k; for(int i = ; i <= k ; i++)
cin >> pt[i].x >> pt[i].y;
//初始化
for(int i = ; i <= n ; i++)
{
for(int j = ; j <= m ; j++)
{
mp[i][j] = 1e6;
}
}
//开始枚举着火点的时间
for(int l = ; l <= k ; l++)
{
for(int i = ; i <= n ; i++)
{
for(int j = ; j <= m ; j++)
{
int _x = abs(i - pt[l].x);
int _y = abs(j - pt[l].y);
mp[i][j] = min(_x+_y, mp[i][j]);
}
}
}
//找到最大值,也就是最晚被烧到的树
int ans = INT_MIN;
int ans_x, ans_y;
for(int i = ; i <= n ; i++)
{
for(int j = ; j <= m ; j++)
{
if(ans < mp[i][j])
{
ans = mp[i][j];
ans_x = i;
ans_y = j;
}
}
} cout << ans_x << " " << ans_y << endl; return ;
}
关于freopen部分的代码找到原因了
题目中有要求所以要这样做
codeforce 35C fire again的更多相关文章
- Codeforce E. Fire
E. Fire time limit per test 2 seconds memory limit per test 256 megabytes input standard input outpu ...
- codeforce E. Fire背包
E. Fire time limit per test 2 seconds memory limit per test 256 megabytes input standard input outpu ...
- Fire Again CodeForces - 35C (BFS)
After a terrifying forest fire in Berland a forest rebirth program was carried out. Due to it N rows ...
- 关于SequeezeNet中的Fire Module
在论文<SQUEEZENET: ALEXNET-LEVEL ACCURACY WITH 50X FEWER PARAMETERS AND <0.5MB MODEL SIZE>中,作者 ...
- FZU 2150 Fire Game
Fire Game Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit St ...
- Fire
Fire 分析: 首先,明确题意:b1,b2,--,bn 交换为b2,--,bn,b1,但这并不是意味着只能从b1开始交换,(这点从样例中可以看出),并且也不意味着交换的必须是连续的一串,可以是几个单 ...
- Android 轻量级输入校验库:Fire Eye
Fire Eye是一款轻量级简单易用的Android校验库. FireEye 2.0 在 1.0 的基础上,全部重写了代码,并优化了架构,性能上和逻辑上都大大提升.只需要几行代码,即可验证用户输入,并 ...
- ACM: FZU 2150 Fire Game - DFS+BFS+枝剪 或者 纯BFS+枝剪
FZU 2150 Fire Game Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u ...
- Codeforce - Street Lamps
Bahosain is walking in a street of N blocks. Each block is either empty or has one lamp. If there is ...
随机推荐
- python学习笔记(二)— 列表(list)
列表也叫数组,列表定义,使用[]即可:列表里面可以再套列表,一个里面套一个列表,叫二维数组:一个里面套一个列表,里面的列表再套一个列表,这个叫三维数组,套几层就是几维,定义格式如下: list1 = ...
- SpringBoot 与 Web开发
1. SpringBoot 静态资源映射规则 webjars:以JAR包的方式引入静态资源; 所有/webjars/**,都去classpath:/META-INF/resources/webjars ...
- 重点:怎样正确的使用QThread类(很多详细例子的对比,注意:QThread 中所有实现的函数是被创建它的线程来调用的,不是在线程中)good
背景描述: 以前,继承 QThread 重新实现 run() 函数是使用 QThread唯一推荐的使用方法.这是相当直观和易于使用的.但是在工作线程中使用槽机制和Qt事件循环时,一些用户使用错了.Qt ...
- nginx日志配置(cookie,header,post等字段记录)
如果你对nginx日志格式,有这样那样的要求. 那么就看一下说明吧. $remote_addr The remote host $remote_user The authenticated user ...
- 11个你应该知道的django博客引擎
这段时间一直在学python和django,准备写个小小的blog巩固下自己学到的东西,看到了GAE上的一些程序,大部分都是纯python的,想找一些基于django的,还真是难.无意中搜索到一篇文章 ...
- DjangoORM 执行 python manage.py makemigrations出现 no changes detected
出现 no changes detected python manage.py makemigrations No changes detected 为什么出现这种情况: 当执行这条命令,他会去找所有 ...
- 需求用例分析之五:业务用例之Rational系
版权声明:作者:张克强.未经作者允许不得转载. https://blog.csdn.net/zhangmike/article/details/28134897 作者:张克强 作者微博:张克强- ...
- Python之OS模块函数
函数列表: 1 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'. os. ...
- 005-Shell echo命令
一.概述 Shell 的 echo 指令,用于字符串的输出.命令格式: echo string 可以使用echo实现更复杂的输出格式控制. 1.显示普通字符串: echo "It is a ...
- 最长上升子序列算法(n^2 及 nlogn) (LIS) POJ2533Longest Ordered Subsequence
问题描述: 一个数的序列bi,当b1 < b2 < ... < bS的时候,我们称这个序列是上升的.对于给定的一个序列(a1, a2, ..., aN),我们可以得到一些上升的子序列 ...