4月8日

poj3194

题意:这题的题意比较难理解,我理解了半天,题意是给定一个n*n的矩阵,矩阵里面有n*n个元素,问每个元素是否都能组成n连块,若可以输出good,否则输出wrong,输出比较奇怪,是给的是每个点的两个坐标,这个点的值为所在行号

分析:读懂题以后这题不难,直接dfs,统计连块的个数即可

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <string>
 5 #include <vector>
 6 #include <algorithm>
 7 #include <set>
 8 #include <map>
 9 #include <bitset>
10 #include <cmath>
11 #include <queue>
12 #include <stack>
13 using namespace std;
14 const int maxn=120;
15 int mp[maxn][maxn];
16 int vis[maxn][maxn];
17 int n;
18 int cnt;
19 int dx[]={-1,1,0,0},dy[]={0,0,1,-1};
20 void dfs(int x,int y,int k)
21 {
22     vis[x][y]=1;
23     for(int i=0;i<4;i++)
24     {
25         int nx=x+dx[i];
26         int ny=y+dy[i];
27         if(nx>=0&&nx<n&&ny>=0&&ny<n&&!vis[nx][ny]){
28             if(mp[nx][ny]==k)
29             {
30                 cnt++;
31                 dfs(nx,ny,k);
32             }
33         }
34     }
35 }
36 int main()
37 {
38     while(cin>>n)
39     {
40         if(n==0)  break;
41         memset(mp,0,sizeof(mp));
42         for(int i=1;i<n;i++)
43             for(int j=0;j<n;j++)
44             {
45                 int x,y;
46                 scanf("%d%d",&x,&y);
47                 mp[x-1][y-1]=i;
48             }
49         memset(vis,0,sizeof(vis));
50         int num=0;
51         for(int k=1;k<n;k++)
52         {
53             bool flag=false;
54             for(int i=0;i<n;i++)
55             {
56                 for(int j=0;j<n;j++)
57                 {
58                     cnt=1;
59                     if(!vis[i][j]&&mp[i][j]==k)
60                     {
61                          dfs(i,j,k);
62                          if(cnt==n) num++;
63                     }
64                 }
65             }
66         }
67         if(num==n-1) cout<<"good"<<endl;
68         else cout<<"wrong"<<endl;
69     }
70     return 0;
71 }

时间: 2024-08-26 13:29:47

4月8日的相关文章

用PHP打印出前一天的时间,打印格式是2007年5月10日22:21:21

答案1: <?php echo date('Y'.'年'.'m'.'月'.'d'.'日'.' H:i:s',strtotime('-1 day')); 输出结果: Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() f

在刀尖上跳舞 -- 2015年6月9日

前言: 在DBA群是认识酱油.木木.土豆.虎子.闪客.蝈蝈等,之后他们因为共同的爱好投资行为à股票而建立了新的群----票票群,如今记不清群是哪天建立的了.而我一直在群里潜水,只默默的在远处看着酱油他们吹牛逼吹的不亦乐乎,可惜我不懂,也不好贸然插嘴,所以只有看着他们闹腾. 1,对股市的恐惧 在07到08年的牛市里面,因为自己支援家里,所以身上总是没有多少现钱,所以没有入股市,对股票交易也是一知半解,之后熊市,大部分亏得一塌糊涂,身边同学更是被套了,之后对股票敬而远之,以为它就是一个投机倒把的地方

Oyk的ACM刷题记录(始于2015年2月29日,可能含剧透)

Online Judge 题目序号/题目 简单大意/题解 犯2情况 2月29日 SPOJ GSS1  不带更新区间最大子段和. 线段树维护 区间从左/右开始的最大值.区间最大值.区间和. 1.输出忘了换行. 2.打错了一个字母. SPOJ GSS2 区间不重复最大子段和. 离线维护s[i..now],线段树维护 区间历史最大值.区间历史最大更新值.区间现在最大值.区间现在更新值. 询问输出区间历史最大值. 1.线段树询问忘记写pushdown了. SPOJ TEST 输出所有42前的数. 1.不

YESLAB 7月12日陈老师CCNA+CCNP真机Rack实战课程

CCNA 是网络行业的入门课程,为了能够让学员很好的了解网络,Yeslab提供真实设备Rack,学员实战搭建拓扑.完成配置,为学员打造一个真实的网络,总之只要学员想学,Yeslab毫不吝啬 CCNP路由部分为IE的基础,只有基础打的牢,楼才能盖得高,Yeslab拒绝Paper IE,除此之外Yeslab还针对工作特别开发了面试模拟课程,可以针对集成商,厂商的职位进行不同级别的面试,能够让学员不单单的只是找到工作,而是对职业有个好的规划. 交换一直是思科培训里比较弱化的一门,不过Yeslab提供真

2014年10月MVP开始申请了~[截止时间:7月10日]

51CTO与微软中国合作长期为用户提供申请"微软最有价值专家"的平台希望有兴趣.资历的朋友以及正在朝这个方向努力的朋友能够积极参与只要您想参与我们将为您向微软推荐 微软最有价值专家MVP一年评选4次分别为每年的1月.4月.7月.10月.2014年10月的MVP申请截止时间是2014年7月10日. 申请MVP的午饭请下载2014年10月MVP申请表填好后发送到[email protected].我们会在每次MVP申请开始时把用户提交的申请表格推荐到微软中国相关部门 [注意事项]1.51C

2014年4月23日 10:22:08

step 1 : 做tcp网络编程,要解析一批批的数据,可是数据是通过Socket连接的InputStream一次次读取的,读取到的不是需要转换的对象,而是要直接根据字节流和协议来生成自己的数据对象. 按照之前的编程思维,总是请求然后响应,当然Socket也是请求和响应,不过与单纯的请求响应是不同的. 这里Socket连接往往是要保持住的,也就是长连接,然后设置一个缓冲区,网络流不断的追加到缓冲区.然后后台去解析缓冲区的字节流. http://cuisuqiang.iteye.com/blog/

2017年8月14日套题记录 | 普及组

写在前面 今天登洛谷发现离Noip剩下88天了??(虽然看起有点久),然后觉得似乎水了一个暑假什么也没做(虽然学了点数据结构和一些奇奇Gaygay的东西),于是打开题库发现去年Long Happy的集训套题我似乎没有提交过,那就一天一套题,顺便码个题解+心得(雾? T2.传作业 题目描述 某十三同学一日上学迟到,此时已经开始上早自习了,所以他只好请同学帮忙把作业传到组长那里.由于刚开学不久,某十三同学还没来得及认识所有同学,所以传作业时只好找熟悉的同学.已知某十三与组长之间有N个他熟悉的同学,并

6月2日上午学习日志

2017年6月2日上午把之前记忆的考研核心单词复习了一部分,然后听外教讲授Eclipse 的课程.

5月15日上午学习日志

2017年5月15日上午把昨天记忆的英语单词的多种词意用自己组句的方法联系起来再记忆一遍,然后再联系真题学10个考研高频词汇,然后再复习昨天的词汇,听外教讲授Eclipse 的课程.

老男孩教育每日一题-2017年5月9日-vim命令粘贴带#号或注释信息格式会出现混乱情况怎么办

1.题目 老男孩教育每日一题-2017年5月9日-vim编辑器使用知识点:vim命令粘贴带#号或注释信息格式会出现混乱情况,有什么方法进行解决?问题说明:每次复制代码时,如果代码里有 //或# 这样的注释就容易让格式乱掉,显示的内容不整齐,并不是所期望的显示格式. 2.参考答案 原因分析: 是由于vim编辑命令的自动缩进功能所影响,因此粘贴带注释的代码时可以取消自动缩进 问题解决: vim在粘贴代码时会自动缩进,把代码搞得一团糟糕,甚至可能因为某行的一个注释造成后面的代码全部被注释掉:最初的解决