当前位置: 首页 > news >正文

郑州做网站推广地网站建设与维护合同

郑州做网站推广地,网站建设与维护合同,自学网设计,王烨妮标准差分模板 差分——前缀和的逆运算(一维二维)-CSDN博客 题目 小蓝拥有 nn 大小的棋盘,一开始棋盘上全都是白子。 小蓝进行了 m 次操作,每次操作会将棋盘上某个范围内的所有棋子的颜色取反(也就是白色棋子变为黑色&#xff0…

标准差分模板   差分——前缀和的逆运算(一维+二维)-CSDN博客

题目

小蓝拥有 n×n 大小的棋盘,一开始棋盘上全都是白子。

小蓝进行了 m 次操作,每次操作会将棋盘上某个范围内的所有棋子的颜色取反(也就是白色棋子变为黑色,黑色棋子变为白色)。

请输出所有操作做完后棋盘上每个棋子的颜色。

输入格式

输入的第一行包含两个整数 n,m,用一个空格分隔,表示棋盘大小与操作数。

接下来 m 行每行包含四个整数 x1,y1,x2,y2,相邻整数之间使用一个空格分隔,表示将在 x1 至 x2 行和 y1 至 y2 列中的棋子颜色取反。

输出格式

输出 n 行,每行 n 个 0 或 1 表示该位置棋子的颜色。

如果是白色则输出 0,否则输出 1。

数据范围

对于 30% 的评测用例,1≤n,m≤500;
对于所有评测用例,1≤n,m≤2000,1≤x1≤x2≤n,1≤y1≤y2≤n。

输入样例:

3 3
1 1 2 2
2 2 3 3
1 1 3 3

输出样例:

001
010
100

方法

        针对于改变一个区间的值进行改变,(无论是加,减等),都可以考虑使用差分来做。

差分定义:给定一个原数组a[1],a[2],a[3]...a[n],构造一个差分数组b[1],b[2],b[3]...b[n],                        使得a[i] = b[1]+b[2]+b[3]+...+ b[i]

        因此,这里可以选用二维差分:

         差分——前缀和的逆运算(一维+二维)-CSDN博客   (对差分的详解)

        对于该题来说,可以发现,翻奇数次是黑子,翻偶数次是白子。因此如果我们想要改变某个区间的值 ,我们可以直接选择对于该区间的每个数+1,如果最终结果是偶数,就用0表示,奇数用1表示。

代码

import java.io.*;
// 直接+1,如果是偶数,则为白子,否则为黑子
class Main{static int N = 2010;static int n,m;static int[][] a = new int[N][N];public static void main(String[] args) throws IOException{BufferedReader in = new BufferedReader(new InputStreamReader(System.in));BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));String[] s = in.readLine().split(" ");n = Integer.parseInt(s[0]);m = Integer.parseInt(s[1]);while(m-->0){s = in.readLine().split(" ");int x1 = Integer.parseInt(s[0]);int y1 = Integer.parseInt(s[1]);int x2 = Integer.parseInt(s[2]);int y2 = Integer.parseInt(s[3]);insert(x1,y1,x2,y2); // 对每个区间进行差分}for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){a[i][j] = a[i-1][j]+a[i][j-1]-a[i-1][j-1]+a[i][j]; // 计算前缀和,即a[i][j]if(a[i][j]%2==0) out.write("0");else out.write("1");}out.write("\n");}out.close();}// 差分计算public static void insert(int x1,int y1,int x2,int y2){a[x1][y1] += 1;a[x1][y2+1] -= 1;a[x2+1][y1] -= 1;a[x2+1][y2+1] += 1;}
}
http://www.yayakq.cn/news/293653/

相关文章:

  • 门户网站建设招标网页设计课程报告总结
  • 烟台网站建设外贸青岛网站建设建议
  • 温州网络公司网站建设wordpress域名地址设置
  • 网站突然没有收录广东企业网站建设
  • 路由器怎么做网站小说网站的图片长图怎么做的
  • 东莞公司网站做优化福州关键词排名
  • 网站建设维护预算湖北省建设厅官方网站文件
  • 建设一个简单的网站网站开发的调研
  • ss网站代码做网站赚钱 2017
  • 杭州seo网站建设汽车网站图片
  • 广西网站建设价钱网站开发主要技术
  • 个人免费发布招聘信息快优吧seo优化
  • 自己的网站怎样做优化公司网站建设比较好的公司
  • 企业网站营销优缺点常州兼职网站建设
  • 丰台手机网站设计公司什么叫软文推广
  • 网站开发语言分类网页设计代码开头
  • 外贸网站框架个人网站 做导航
  • 建设网站流程图中文网页设计模板下载
  • 建站平台软件网站开发公司如何做直播
  • 响应式网站适合用什么框架做青岛seo排名扣费
  • 自己做个网站多少钱亿网中国网站管理系统
  • ps做网站首页步骤广州市几个区
  • 有想做企业网站建设网站地图在哪里展现
  • 长春企业网站排名优化做网站需要用到什么技术
  • 咸宁网站设计短网址生成系统设计
  • 帝国建站教程wordpress添加快速添加按钮
  • 外国网站架构南宁seo平台费用
  • 网站建设的一般步骤wordpress仿互站
  • 汕头网站排名推广做qq的网站
  • 网站服务运营队伍与渠道建设wordpress文章页加一言