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 作战总结的更多相关文章

  1. [BZOJ1106][POI2007] Tet 立方体大作战

    Description 一个叫做立方体大作战的游戏风靡整个Byteotia.这个游戏的规则是相当复杂的,所以我们只介绍他的简单规则:给定玩家一个有2n个元素的栈,元素一个叠一个地放置.这些元素拥有n个 ...

  2. 【BZOJ-2892&1171】强袭作战&大sz的游戏 权值线段树+单调队列+标记永久化+DP

    2892: 强袭作战 Time Limit: 50 Sec  Memory Limit: 512 MBSubmit: 45  Solved: 30[Submit][Status][Discuss] D ...

  3. hiho #1114 : 小Hi小Ho的惊天大作战:扫雷·一

    #1114 : 小Hi小Ho的惊天大作战:扫雷·一 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 故事背景:密室.监视器与充满危机的广场 “我们还是循序渐进,先来考虑这 ...

  4. OneAPM x 腾讯 | OneAPM 技术公开课·深圳 报名:前端性能大作战!

    「 OneAPM 技术公开课」由应用性能管理第一品牌 OneAPM 发起,内容面向 IT 开发和运维人员.云集技术牛人.知名架构师.实践专家共同探讨技术热点. 11月28日,OneAPM 技术公开课第 ...

  5. BZOJ1106: [POI2007]立方体大作战tet

    1106: [POI2007]立方体大作战tet Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 419  Solved: 302[Submit][St ...

  6. 刺猬大作战(游戏引擎用Free Pascal写成,GUI用C++写成,使用SDL和Qt4)

    游戏特性[编辑] 游戏引擎用Free Pascal写成,GUI用C++写成,使用SDL和Qt4[2]. 0.9.12开始支持实时动态缩放游戏画面. 个性化[编辑] 刺猬大作战有着高度定制性 游戏模式: ...

  7. cocos2d-x 3.2 它 三消游戏——万圣节大作战

    ***************************************转载请注明出处:http://blog.csdn.net/lttree************************** ...

  8. 【百度地图API】情人节求爱大作战——添加标注功能

    原文:[百度地图API]情人节求爱大作战--添加标注功能 任务描述: 2月2日是除夕,2月14立马来!即将到来的情人节,你想送TA一份什么礼物呢? 不如,在你们居住的地方,画个大大的桃心,表达你对TA ...

  9. BZOJ 1106: [POI2007]立方体大作战tet

    1106: [POI2007]立方体大作战tet Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 682  Solved: 496[Submit][St ...

随机推荐

  1. 如何在本地配置lemonlime和使用lemonlime测试交互题

    如何在本地配置\(lemonlime\)和使用\(lemonlime\)测试交互题 \(lemonlime\)下载地址链接,提取码ae3z 点开\(lemonlime.exe\)然后编译器选择\(gc ...

  2. 清理忽略springboot控制台启动的banner和启动日志

    清理忽略springboot控制台启动的banner和启动日志 1.springboot的banner spring: main: banner-mode: off 2.mybatis-plus的ba ...

  3. 万答#13,MySQL自增键用完后,插入数据会发生什么情况

    欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 MySQL自增键用完了,插入数据会发生什么情况 1.实验场景 GreatSQL ...

  4. Apache DolphinScheduler 2.X保姆级源码解析,中国移动工程师揭秘服务调度启动全流程

    2022年1月,科学技术部高新技术司副司长梅建平在"第六届中国新金融高峰论坛"上表示,当前数据量已经大大超过了处理能力的上限,若信息技术仍然是渐进式发展,则数据处理能力的提升将远远 ...

  5. MyBatis-Plus(二、常用注解)

    1.@TableName @TableName 用法:映射数据库的表名,如果数据库表名与实体类名不一致,用@TableName来映射. package com.example.mybatisplus. ...

  6. 如何在Linux快速搭建一套ADB环境

    一.ADB简介 1.什么是ADB Android Debug Bridge,安卓调试桥,它借助adb.exe(Android SDK安装目录platform-tools下),用于电脑端与模拟器或者真实 ...

  7. Redis架构之哨兵机制与集群

    Redis架构之哨兵机制与集群 哨兵机制 1.介绍: Sentinel(哨兵)是redis高可用性解决方案:由一个或多个由一个或多个Sentinel 实例 组成的Sentinel 系统可以监视任意多个 ...

  8. HMS Core Discovery第17期回顾|音随我动,秒变音色造型师

    HMS Core Discovery第17期直播<音随我动,秒变音色造型师>,已于8月25日圆满结束,本期直播我们邀请了HMS Core音频编辑服务的产品经理.技术专家以及创新娱乐类应用& ...

  9. C#基础_XML文件读写

    使用C#对XML文件进行操作,包括生成一个XML文档,以及读取XML文档中的内容,修改某个元素中的内容 using System; using System.Collections.Generic; ...

  10. Kotlin快速上手

    一.Kotlin基础 1.数据类型声明 在Kotlin中要定义一个变量需要使用var关键字 //定义了一个可以修改的Int类型变量 var number = 39 如果要定义一个常量可以使用val关键 ...