博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AtCoder:C - Nuske vs Phantom Thnook
阅读量:4615 次
发布时间:2019-06-09

本文共 1680 字,大约阅读时间需要 5 分钟。

C - Nuske vs Phantom Thnook

 

 

题意:

  n*m的网格,每个格子可能是蓝色, 可能是白色,问一个子矩阵内,蓝色方格的联通块数。

  输入的数据中,保证蓝色点之间只有一条路径(或者没有)。

分析:

  因为任意蓝点之间只有一条路径,如果在相邻的蓝点之间连一条边后,也就是整张图没有环,在一个森林内,求一个些点构成的树的数量。

  结论:联通块数=总节点数-边数。

  因为,没加入一条边,会减少一个联通块,(即减少一棵树),加入了n条,就减去了n个。

代码:

1 #include
2 #include
3 #include
4 using namespace std; 5 6 inline int read() { 7 int x=0,f=1;char ch=getchar();for(;!isdigit(ch);ch=getchar())if(ch=='-')f=-1; 8 for(;isdigit(ch);ch=getchar())x=x*10+ch-'0';return x*f; 9 }10 11 const int N = 2005;12 char s[N][N];13 int s1[N][N], s2[N][N], s3[N][N];14 15 int main() {16 int n = read(), m = read(), Q = read();17 for (int i=1; i<=n; ++i) scanf("%s",s[i] + 1);18 for (int i=1; i<=n; ++i) {19 for (int j=1; j<=m; ++j) {20 s1[i][j] = s1[i - 1][j] + s1[i][j - 1] - s1[i - 1][j - 1];21 s2[i][j] = s2[i - 1][j] + s2[i][j - 1] - s2[i - 1][j - 1];22 s3[i][j] = s3[i - 1][j] + s3[i][j - 1] - s3[i - 1][j - 1];23 if (s[i][j] == '1') {24 s1[i][j] ++;25 if (s[i][j] == s[i - 1][j]) s2[i][j] ++;26 if (s[i][j] == s[i][j - 1]) s3[i][j] ++;27 }28 }29 }30 while (Q--) {31 int a1 = read(), b1 = read(), a2 = read(), b2 = read();32 int t1 = s1[a2][b2] - s1[a2][b1 - 1] - s1[a1 - 1][b2] + s1[a1 - 1][b1 - 1];33 int t2 = s2[a2][b2] - s2[a2][b1 - 1] - s2[a1][b2] + s2[a1][b1 - 1];34 int t3 = s3[a2][b2] - s3[a2][b1] - s3[a1 - 1][b2] + s3[a1 - 1][b1];35 printf("%d\n",t1 - t2 - t3);36 }37 return 0;38 }

 

转载于:https://www.cnblogs.com/mjtcn/p/9707935.html

你可能感兴趣的文章
main方法中声明8种基本数据类型的变量并赋值
查看>>
smart pointer
查看>>
你还在为使用P/Invoke时,写不出win32 api对应的C#声明而犯愁吗?
查看>>
Codeforces Educational Codeforces Round 3 B. The Best Gift 水题
查看>>
Docker安装Gitlab
查看>>
C++虚函数和纯虚函数的区别
查看>>
vue.js:搭建开发环境及构建项目
查看>>
【设计模式】学习笔记14:状态模式(State)
查看>>
原生JQ实现图片滑动轮播
查看>>
composer
查看>>
CentOS配置smtp发邮件
查看>>
我的博客
查看>>
JSTL函数
查看>>
tensorflow中tensor与数组之间的转换
查看>>
有限状态机
查看>>
【转】 c#中两个DateTimePicker,一个时间设置为0:0:0,另一个设置为23:59:59
查看>>
history对象 screen对象
查看>>
composer 实现自动加载原理
查看>>
Windows环境npm无法生效
查看>>
软Raid50制作
查看>>