ABC260 作战总结
ABC260 作战总结
今后开始写一些模拟赛外的其他比赛的总结(也许有题解?)。
开场点到另一场\(\text{ARC}\)去了,耽误了点时间,切完前四题发现已经过了\(37\)分钟了,看来自己读题+写题的速度还有待提高。
\(\text{E}\)想了一段时间,然后发现可以差分然后尺取法,然后就切了
做\(\text{F}\)的时候老师来说了两句话,稍微分了下心,再加上没有认真观察数据范围,导致思路不是很明朗,不过一会就想到了,花了\(20\text{min}\)
然而写\(\text{E,F}\)的时候都把字母打错,导致之后\(\text{18min}\)做\(\text{G}\)和\(\text{EX}\)了。。然后开摆,最终排名\(247\)
赛后发现\(G\)的做法没遇见过。下面简要写了\(G\)的题解。
G - Scalene Triangle Area
官方题解:https://atcoder.jp/contests/abc260/editorial/4466
我们考虑每一个石子对答案产生的贡献,大概长这样
11111110
11111000
11100000
10000000
00000000
每行都做一个差分,就变成了
+......-
+....-..
+..-....
+-......
........
考虑把这个东西处理出来,发现复杂度依然很庞大,但我们处理这个东西可以再差分
对于+
+.......
........
........
........
-.......
对于-
.......-
........
........
........
+.......
这样,每个石子就可以\(O(1)\)做了
然后做\(3\)次前缀和就行了
代码ヽ( ̄▽ ̄)ノ
#include <cstdio>
#include <iostream>
#define RE register
#define LL long long
using namespace std;
inline void read(int &x) {
x = 0; int f = 0; char ch = getchar();
for(; !isdigit(ch); ch = getchar()) if(ch == '-') f = 1;
for(; isdigit(ch); ch = getchar()) x = (x << 3) + (x << 1) + (ch ^ 48);
if(f) x = ~x + 1;
}
int n, m;
char s[2020][2020];
int vert[2020][10010], diag[2020][10010], res[2020][10010], q, x, y;
int main() {
read(n), read(m);
for(int i = 1; i <= n; ++i)
scanf("%s",s[i] + 1);
for(int i = 1; i <= n; ++i)
for(int j = 1; j <= n; ++j)
if(s[i][j] == 'O') {
++vert[i][j], --diag[i][j + 2 * m];
if(i + m <= n) --vert[i + m][j], ++diag[i + m][j];
}
for(RE int i = 1; i <= n; ++i)
for(RE int j = 1; j <= 10000; ++j)
vert[i][j] += vert[i - 1][j], diag[i][j] += diag[i - 1][j + 2];
for(RE int i = 1; i <= n; ++i)
for(RE int j = 1; j <= 10000; ++j)
res[i][j] = vert[i][j] + diag[i][j];
for(RE int i = 1; i <= n; ++i)
for(RE int j = 1; j <= 10000; ++j)
res[i][j] += res[i][j - 1];
read(q);
while(q--) {
read(x), read(y);
printf("%d\n",res[x][y]);
}
}
ABC260 作战总结的更多相关文章
- [BZOJ1106][POI2007] Tet 立方体大作战
Description 一个叫做立方体大作战的游戏风靡整个Byteotia.这个游戏的规则是相当复杂的,所以我们只介绍他的简单规则:给定玩家一个有2n个元素的栈,元素一个叠一个地放置.这些元素拥有n个 ...
- 【BZOJ-2892&1171】强袭作战&大sz的游戏 权值线段树+单调队列+标记永久化+DP
2892: 强袭作战 Time Limit: 50 Sec Memory Limit: 512 MBSubmit: 45 Solved: 30[Submit][Status][Discuss] D ...
- hiho #1114 : 小Hi小Ho的惊天大作战:扫雷·一
#1114 : 小Hi小Ho的惊天大作战:扫雷·一 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 故事背景:密室.监视器与充满危机的广场 “我们还是循序渐进,先来考虑这 ...
- OneAPM x 腾讯 | OneAPM 技术公开课·深圳 报名:前端性能大作战!
「 OneAPM 技术公开课」由应用性能管理第一品牌 OneAPM 发起,内容面向 IT 开发和运维人员.云集技术牛人.知名架构师.实践专家共同探讨技术热点. 11月28日,OneAPM 技术公开课第 ...
- BZOJ1106: [POI2007]立方体大作战tet
1106: [POI2007]立方体大作战tet Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 419 Solved: 302[Submit][St ...
- 刺猬大作战(游戏引擎用Free Pascal写成,GUI用C++写成,使用SDL和Qt4)
游戏特性[编辑] 游戏引擎用Free Pascal写成,GUI用C++写成,使用SDL和Qt4[2]. 0.9.12开始支持实时动态缩放游戏画面. 个性化[编辑] 刺猬大作战有着高度定制性 游戏模式: ...
- cocos2d-x 3.2 它 三消游戏——万圣节大作战
***************************************转载请注明出处:http://blog.csdn.net/lttree************************** ...
- 【百度地图API】情人节求爱大作战——添加标注功能
原文:[百度地图API]情人节求爱大作战--添加标注功能 任务描述: 2月2日是除夕,2月14立马来!即将到来的情人节,你想送TA一份什么礼物呢? 不如,在你们居住的地方,画个大大的桃心,表达你对TA ...
- BZOJ 1106: [POI2007]立方体大作战tet
1106: [POI2007]立方体大作战tet Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 682 Solved: 496[Submit][St ...
随机推荐
- Selenium自动化测试之Selenium IDE
简介 Selenium IDE 是实现Web自动化的一种便捷工具,本质上它是一种浏览器插件.该插件支持Chrome和Firefox浏览器,拥有录制.编写及回放操作等功能,能够快速实现Web的自动化测试 ...
- 人工智能不过尔尔,基于Python3深度学习库Keras/TensorFlow打造属于自己的聊天机器人(ChatRobot)
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_178 聊天机器人(ChatRobot)的概念我们并不陌生,也许你曾经在百无聊赖之下和Siri打情骂俏过,亦或是闲暇之余与小爱同学谈 ...
- 「Python实用秘技10」深度比较Python对象间差异
本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills 这是我的系列文章「Python实用秘技」的第10 ...
- 048_末晨曦Vue技术_处理边界情况之使用$root访问根实例
处理边界情况之使用$root访问根实例 点击打开视频教程 在每个 new Vue 实例的子组件中,其根实例可以通过 $root property 进行访问. 例如,在这个根实例中: src\main. ...
- 这次我设计了一款TPS百万级别的分布式、高性能、可扩展的RPC框架
作者:冰河 博客地址:https://binghe001.github.io 大家好,我是冰河~~ 没错,这次冰河又要搞事情了,这次准备下手的是RPC框架项目.为什么要对RPC框架项目下手呢,因为在如 ...
- session,cookie,jwt的简单使用
cookie的使用 https://blog.csdn.net/qq_58168493/article/details/122492358 session的使用 https://blog.csdn.n ...
- 刨析一下C++构造析构函数能不能声明为虚函数的背后机理?
以下内容为本人的著作,如需要转载,请声明原文链接微信公众号「englyf」https://www.cnblogs.com/englyf/p/16631774.html 先说结论: 构造函数不能声明为虚 ...
- 第一章 kubernetes概述
一.Kubernetes概述 1.官网地址:https://kubernetes.io 2.GuiHub:https://github.com/kubernetes/kubernetes 3.又来:谷 ...
- Homework7
问:了解java的反射机制. 答:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法.而对于任意一个对象,都能够调用它的任意一个方法.这种动态获取的信息以及动态调用对象的 ...
- IP地址最后一位斜杠是什么意思?比如192.168.1.10/27?还有IP地址和子网掩码相加得到的网络地址是什么意思
IP地址最后一位斜杠是什么意思?比如192.168.1.10/27?还有IP地址和子网掩码相加得到的网络地址是什么意思 IP地址最后一位斜杠是什么意思?比如192.168.1.10/27?还有IP地址 ...