AtCoder Beginner Contest 179 F.Simplified Reversi

编程入门 行业动态 更新时间:2024-10-25 06:32:32

AtCoder Beginner <a href=https://www.elefans.com/category/jswz/34/1761927.html style=Contest 179 F.Simplified Reversi"/>

AtCoder Beginner Contest 179 F.Simplified Reversi

AtCoder Beginner Contest 179 F.Simplified Reversi

题目链接


非常有趣的思维题~
假设黑色区域宽为 x x x,长为 y y y,我们考虑一种修改,比如 1 , k 1,k 1,k,此时不难发现修改后对 [ k + 1 , y ] [k+1,y] [k+1,y] 的 1 1 1 操作,都是固定的减去 x x x,所以这是一种典型的缩小策略,每操作一次都将黑色区域的长宽进行缩小,并用数组记录减少的黑色方块数即可,AC代码如下:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2e5+5;
int n,x,y,q,op,k,r[N],c[N];
int main(){cin>>n>>q;x=y=n;ll ans=(n-2LL)*(n-2LL);while(q--){cin>>op>>k;if(op==1) {if (k < y) {ans -= x - 2;while (y > k) c[y--] = x - 2;} else ans -= c[k];}else{if (k < x) {ans -= y - 2;while (x > k) r[x--] = y - 2;} else ans -= r[k];}}cout<<ans;return 0;
}

更多推荐

AtCoder Beginner Contest 179 F.Simplified Reversi

本文发布于:2024-02-05 10:32:04,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1744808.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Contest   Beginner   AtCoder   Reversi   Simplified

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!