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 ...
随机推荐
- 设计模式之Factory工厂模式
在上一章,模板模式中,我们在父类规定处理的流程,在子类中实现具体的处理.如果我们将该模式用于生成实例,便演变成了Factory模式,即工厂模式. 在Factory模式中,父类决定实例的生成方式,但并不 ...
- python基础-第七篇-7.2面向对象(进阶篇)
进入到今天的探索前,我先对上节内容进行一下回顾: 面向对象是一种编程方式,此编程方式的实现是基于对类和对象的使用 类是一个模板,模板中包装了多个函数可供使用 对象是基于类创建的,实例用于调用被包装在类 ...
- 剑指Offer——删除链表中重复的结点
题目描述: 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3->4->4->5 处理 ...
- var 声明变量的变量提升问题(let/const)
在ES6之前,JavaScript没有块级作用域(一对花括号{}即为一个块级作用域),只有全局作用域和函数作用域.变量提升即将变量声明提升到它所在作用域的最开始的部分.既全局变量. <scrip ...
- Php 创建XML
Php 创建XML Php 创建XML并保存,学习示比例如以下: <? php try{ //创建DOMDocument 对象 $dom = new DOMDocument("1.0 ...
- Latch free等待事件
Latch free等待事件的三个参数:p1-latch的地址:p2-latch编号:p3-请求次数.从oracle10g起,latchfree不再包含所有的latch等待,有些latch等待可能表现 ...
- JavaScript-dom1
获取事件源 var div = document.getElementById("box"); // var arr1 = document.getElementsByTagNam ...
- 某个php爬虫程序分析--来自wooyun
乌云漏洞编号: WooYun-2014-68061 作者:hkAssassin 爬虫程序源码: <?php header("content-type:text/html;charset ...
- 如何通过包名打开手机里的APP
目前已知的打开APP的方式有两种, 一种是通过openUrl打开,这种有一个严重的问题,即必须添加白名单,白名单之外的APP即时安装了也无法打开. 另一种就是今天的重点,通过包名打开APP.先上核心代 ...
- Spring MVC 复习笔记03
1. @RequestMapping 1). url映射 定义controller方法对应的url,进行处理器映射使用. 2). 窄化请求映射 3). 限制http请求方法 出于安全性考虑,对htt ...