【2018.5.12】模拟赛之三-ssl2415 连通块【并查集】

正题


题目大意

在一个n*n的棋盘上进行m此操作。在一个格子上放一个黑或白的棋子。多个相连的同色棋子形成一个连通块,求每次操作后求连通块数。


解题思路

并查集表示连通,然后每次扩展,如果有同色的就连通,注意判断已经是同一个连通块的情况。


代码

#include<cstdio>
using namespace std;
int n,m,s,c,x,y,color[601][601],father[250001];
int dx[4]={1,-1,0,0},dy[4]={0,0,1,-1};
int find(int x)
{return x==father[x]?x:find(father[x]);}
//找祖先
int number(int x,int y)
{return (x-1)*n+y;}//求号
bool unionn(int x,int y)
{int fa=find(x),fb=find(y);if (fa==fb) return 0;if (fa<fb) father[fb]=fa;else father[fa]=fb;return 1;
}//相连并放回是否已经在同一连通块
int main()
{//freopen("blocks.in","r",stdin);f//reopen("blocks.out","w",stdout);scanf("%d%d",&n,&m);for (int i=1;i<=n*n;i++) father[i]=i;s=0;for (int i=1;i<=m;i++){scanf("%d %d %d",&c,&x,&y);c++;color[x][y]=c;//标记s++;//连通块增加for (int k=0;k<4;k++){int zx=x+dx[k],zy=y+dy[k];if (zx>0&&zx<=n&&zy>0&&zy<=n&&color[x][y]==color[zx][zy]){if(unionn(number(x,y),number(zx,zy)))s--;//合并(注意判断是否在同一连通块)}}printf("%d\n",s);}
}

对拍

随机数据与暴力

#include<cstdio>
#include<ctime>
#include<cstdlib>
#include<string>
#include<iostream>
#include<map>
#define random(x) rand()%x+1
using namespace std;
int n,m,s,color[501][501],c,x,y,e[501][501];
bool f[501][501];
void bfs(int x,int y,int c,int w)
{if (x>n || y>n || x<1 || y<1 || color[x][y]>c || !color[x][y])return;if (f[x][y] || e[x][y]!=w) return;f[x][y]=true;bfs(x+1,y,c,w);bfs(x-1,y,c,w);bfs(x,y+1,c,w);bfs(x,y-1,c,w);
}
int main()
{freopen("blocks.in","w",stdout);srand((unsigned)time(0));n=random(500);m=random(n*n);printf("%d %d\n",n,m);for (int i=1;i<=m;i++){c=random(2)-1;x=random(n);y=random(n);while (color[x][y]){x=random(n);y=random(n);}printf("%d %d %d\n",c,x,y);color[x][y]=i;e[x][y]=c;}fclose(stdout);freopen("blocks.ans","w",stdout);for (int k=1;k<=m;k++){memset(f,0,sizeof(f));s=0;for (int i=1;i<=n;i++)for (int j=1;j<=n;j++)if (!f[i][j] && color[i][j]<=k && color[i][j]){bfs(i,j,k,e[i][j]);s++;}printf("%d\n",s);}fclose(stdout);
}

对拍

#include<cstdio>
#include<ctime>
#include<cstdlib>
#include<cstring>
using namespace std;
int main()
{for (int t=1;t<=100000;t++){system("blocksdata.exe");double st=clock();system("blocks.exe");double ed=clock();if (system("fc blocks.out blocks.ans")){printf("WA");return 0;}elseprintf("AC point:%d time:%.0lfms\n",t,ed-st);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/324274.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot访问jsp页面变成直接下载?

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号【雄雄的小课堂】。前言大家在写springboot的时候不知道你们遇没遇到过这样的问题&#xff0c;当我们满怀信心的在浏览器中输入&#xff1a;localhost://8080/default&#xff0c;然后回车的时候&#xff0c;期待的页…

ASP.NET WebAPI 中的参数绑定

当 WebAPI 调用 Controller 上的方法时&#xff0c; 必须为其参数赋值&#xff0c; 这个过程就是参数绑定。 本文介绍 WebAPI 如何绑定参数&#xff0c; 以及如何进行自定义。 WebAPI 默认使用下面的规则进行参数绑定&#xff1a; 简单类型&#xff0c; WebAPI 尝试从 URL 中…

<table/>设置列宽度无效的问题

一、场景重现 <html> <head><title>测试</title><style type"text/css">.table {table-layout: fixed;}</style> </head> <body> <div style"width: 100%"><table class"table" styl…

【2018.5.12】模拟赛之四-ssl2416 条形图【高精度,dp】

正题 题目大意 第ii行有n&#x2212;i+1" role="presentation" style="position: relative;">n−i+1n−i+1个格子&#xff0c;每一行要求从左到右画#&#xff0c;要求下面哪行的#数不能超过前一行。要求第一行必须有#&#xff0c;求画的方案数。…

JavaFX如何将WritableImage转换为Image

转载自 JavaFX如何将WritableImage转换为Image 我正在做一些应用程序&#xff0c;制作截图LineChart并将其保存为pdf&#xff0c;所以我不知道将WritableImage&#xff08;JavaFX 2.2&#xff09;转换为Image&#xff08;iText lib&#xff09;的平滑方式。 临时解决方案是 …

公众号一年能有多少收入?

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号【雄雄的小课堂】。前言由于坚持日更公众号也有一年左右了&#xff0c;好多人问我你这公众号一年到底能收入多少啊&#xff1f;值得你花那么多的时间去摆弄吗&#xff1f;今天我就来说说我这公众号&#xff0c;一年到…

ASP.NET Core 源码学习之 Options[1]:Configure

ASP.NET Core 配置系统 在ASP.NET 4.X中&#xff0c;通常将配置存储在 web.config 中&#xff0c;使用静态帮助类来获取这些配置&#xff0c;而对 web.cofng 中进行任何修改时&#xff0c;则会导致应用程序池的回收&#xff0c;这种实现方式并不是很友好。 因此&#xff0c;在…

SpringBootAdmin客户端接入

只有网关微服务有方框中的内容&#xff0c;其他微服务没有

ssl初一组周六模拟赛【2018.5.12】(期中)

前言 这周竟然没有奶死自己&#xff0c;成为模拟赛第一个AK的&#xff08;然而第一题数据错了所以这次放加上第一题的分&#xff09; 先说一下成绩&#xff1a; 姓名成绩wyc400xjq290xxy255lrz225hzb205zyc190hjq180lw140 期中总结 正题 题目1&#xff1a;ssl2413 排名【…

Java自动化邮件中发送图表(一)

一、邮件需求 邮件中需要展示柱状图、折线图和饼图等图表数据。如图&#xff1a; 二、解决方案 将图表转成图片&#xff0c;采用html邮件文本&#xff0c;使用base64编码图片发送邮件。 将图表导出成图片有三种方式&#xff1a; &#xff08;1&#xff09;JFreeChart 优点…

springboot+mybatis-plus实例demo

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号【雄雄的小课堂】。前言故事还得从一次微信通话说起……一个夜深人静的晚上&#xff0c;正在电脑前看书&#xff0c;突然&#xff0c;放在旁边的手机响了起来&#xff0c;原来是一个朋友打的微信电话。“你在干嘛呢&a…

分布式事务,EventBus 解决方案:CAP【中文文档】

前言 很多同学想对CAP的机制以及用法等想有一个详细的了解&#xff0c;所以花了将近两周时间写了这份中文的CAP文档&#xff0c;对 CAP 还不知道的同学可以先看一下 .NET Core 事件总线,分布式事务解决方案&#xff1a;CAP。 本文档为 CAP 文献&#xff08;Wiki&#xff09;&…

POJ1330-Nearest Common Ancestors【tarjan,LCA】

正题 题目链接&#xff1a; http://poj.org/problem?id1330 题目大意 就是给出一棵树&#xff0c;求LCA&#xff08;最近公共祖先&#xff09; 解题思路 用tarjan求LCA&#xff0c;这里给出tarjan算法 代码 #include<cstdio> #include<iostream> using nam…

Java自动化邮件中发送图表(二)之JFreeChart

一、JFreeChart库 JFreeChart是JAVA平台上的一个开放的图表绘制类库。 JFreeChart可生成饼图&#xff08;pie charts&#xff09;、柱状图&#xff08;bar charts&#xff09;、散点图&#xff08;scatter plots&#xff09;、时序图&#xff08;time series&#xff09;、甘…

springboot点击运行没反应,什么都不显示的解决方式

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号【雄雄的小课堂】。最近这段时间一直在看开源框架&#xff0c;自己慢慢的琢磨&#xff0c;终于将jeecgboot环境搭建起来&#xff0c;并且成功的跑起来了demo&#xff0c;在此过程中&#xff0c;很明显的能感觉到自己进…

C#和NewSQL更配 —— CockroachDB入门

一、CockroachDB是什么 CockroachDB&#xff08;https://www.cockroachlabs.com&#xff09;是Google备受瞩目的Spanner的开源模仿&#xff0c;承诺提供一种高存活性、强一致性&#xff0c;可横向扩展的SQL数据库。主要的设计目标是全球一致性和可靠性&#xff0c;从蟑螂&#…

ssl1746-商务旅行【tarjan,LCA】

正题 题目大意 一个n-1个点的有向无环图&#xff0c;给出若干个点&#xff0c;要求依次到达的最少时间。 解题思路 有向无环图我们可以把其看做一颗树&#xff0c;然后每次用LCA求两个点之间的距离&#xff0c;然后把所有距离统计一下就是结果。 代码 #include<cstdio>…

springboot+layui从控制器请求至页面时js失效的解决方法

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注公众号【雄雄的小课堂】。 昨天遇到了个很棘手的问题&#xff0c;其实也怪自己大意了&#xff0c;然后翻来覆去一个类一个类的去看&#xff0c;看完之后挨个技术点怀疑&#xff0c;然后分别从各个技术点入手解决&#xff0c;但…