zoj 3864 Quiz for EXO-L(连通块 bfs)
2015-04-15 22:06
393 查看
Quiz for EXO-L
Time Limit: 2 Seconds Memory Limit: 65536 KB
Exo (Korean: 엑소; Chinese:爱咳嗽; often stylized as EXO) is a Chinese-South Korean boy band based in Seoul, South Korea. Formed by SM Entertainment in 2011, the group consists of twelve members
separated into two subgroups, EXO-K and EXO-M, performing music in Korean and Mandarin, respectively. The group officially debuted on April 8, 2012, with Suho, Baekhyun, Chanyeol, D.O, Kai, and Sehun under the Korean subgroup while Xiumin, Luhan, Kris, Lay,
Chen, and Tao are under the Mandarin group. Kris filed a lawsuit against S.M. to be removed from the group, and Luhan followed suit in October 2014. The band now promotes with 10 members since mid-October 2014, which consists of 8 Korean and 2 Chinese members.
In their first album, each member of EXO has a kind of super power. For example, Tao can control time and Lay has a super power of healing. The badges are the symbols of their super powers.
Each member of EXO has an unique badge. The following table shows the shapes of their badges.
EXO’s official fanclub name has been announced to be EXO-L. EXO-L is short for EXO-LOVE, L being the letter between M and K in the alphabet, signifying all the fans' love for both EXO-K
and EXO-M of EXO, and also holds the meaning of 'EXO and the fans are one' like their team slogan 'WE ARE ONE.'
You should help an EXO-L pass a quiz about image recognition. The quiz requires a program to recognize the badges. The input is one of the above 12 images with rotation, and the output
should be the owner of the badge in the image. The badge is rotated at an unknown angle. And each image is a square matrix. The badges will never touch or exceed the boundary of the image.
Since the images are large, we will compress the images. Each pixel in the image is either 1(white) or 0(black) after binarization. The compress method is simple:
Concatenate the pixels in the row first order to a string.
Split the string to some runs with same characters, and two adjacent runs have different characters.
Output the length of each run.
For example, an image in size 6×6:
We can compress it as the following:
Concatenate the pixels in the row first order, then we can get
The runs are
So the result of compressed images is
Note that in this task the first run and the last run is always in white.
The first line contains 2 integers n and m. n is the size of the square image. m is the number of the runs in the compressed images. (100≤ n ≤
900)
The second line contains m positive integers, indicating the length of the each runs in the compressed image. (The sum of the integers is n2).
"Kris", "Lay", "Chen", and "Tao".
100 443
1445 1 99 2 97 3 97 4 6 1 88 5 5 2 88 5 4 4 86 6 4 4 73 1 12 6 3 6 72 4 8 6 5 5 72 6 6 6 5 6 72 7 3 6 6 6 12 1 59 16 7 6 9 3 60 14 8 6 6 6 61 13 9 6 3 7 65 12 7 16 8 1 45 3 10 12 5 15 6 4 45 5 9 14 3 12 6 6 45 6 8 15 2 9 9 5 47 5 7 17 1 7 10 6 47 6 6 17 2 3
13 5 48 6 5 18 17 6 49 5 5 8 1 10 5 3 8 5 50 6 3 8 5 7 3 7 6 5 50 6 3 8 7 18 2 5 52 5 3 7 10 23 52 6 2 7 13 20 52 6 3 6 15 17 53 7 2 5 19 15 49 10 2 5 21 16 44 12 2 4 24 17 38 12 6 3 25 18 34 12 6 4 26 7 1 13 31 9 7 6 25 7 5 10 34 4 6 9 25 7 8 5 46 8 25 8
58 9 25 7 59 8 25 8 59 8 25 7 48 4 7 8 26 7 8 2 35 9 5 8 25 6 7 7 33 11 3 8 25 4 6 11 35 18 25 3 5 15 36 16 25 3 3 15 40 17 21 4 2 14 44 17 19 5 2 10 49 17 16 6 2 8 51 20 13 6 2 6 52 23 11 7 2 4 53 5 2 18 8 8 2 5 51 6 5 8 2 7 6 7 3 5 51 5 8 4 5 9 2 8 4 4 50
6 17 18 5 5 49 5 13 3 2 18 5 5 48 6 11 5 3 16 7 5 47 6 9 8 2 16 7 5 47 5 7 11 3 14 9 4 46 3 8 14 4 13 9 4 45 1 8 16 6 14 8 2 54 16 9 13 62 9 3 5 8 15 60 6 6 5 8 16 58 5 9 5 7 5 2 9 58 2 12 5 6 6 5 7 72 5 5 5 8 5 72 5 4 6 11 2 73 3 5 5 87 3 5 5 87 3 5 4 89
1 6 4 97 3 97 2 98 2 1445
100 451
1449 2 96 4 96 5 94 6 93 6 94 5 93 6 93 6 10 4 78 7 7 13 72 6 6 18 80 21 62 2 14 24 58 3 14 26 55 3 13 15 6 8 54 4 10 20 8 5 51 5 8 25 8 3 51 4 7 29 7 3 49 5 6 31 7 2 48 5 6 15 4 14 7 1 48 5 5 15 9 11 54 6 4 15 12 10 53 5 4 16 14 8 53 5 3 16 16 8 51 6 3 8 1
6 18 8 50 6 2 8 2 6 19 7 50 6 2 7 3 5 7 21 5 1 43 6 1 7 4 5 4 24 4 2 43 6 1 7 4 5 2 26 4 3 43 12 4 5 2 28 3 3 43 12 4 5 16 14 3 4 42 11 5 5 19 12 3 4 42 10 5 5 15 1 5 10 3 5 41 10 6 3 16 1 7 8 4 5 40 9 7 3 16 2 7 8 3 7 32 1 6 8 7 3 16 2 8 7 4 7 29 5 4 8 7
3 16 3 7 8 4 6 29 6 4 7 7 3 16 3 8 7 5 5 29 7 3 8 7 2 16 3 8 8 5 3 31 6 4 8 6 2 16 4 7 8 40 6 4 8 6 1 16 4 6 10 40 6 3 9 6 1 15 4 6 10 42 4 3 11 20 4 6 10 42 4 4 12 18 4 6 11 42 3 4 15 15 4 5 12 43 2 4 26 3 5 5 12 43 2 4 25 4 5 4 6 1 6 44 1 5 6 2 14 6 5 4
6 1 6 44 1 5 7 5 6 9 6 3 7 1 6 50 8 19 6 2 7 2 6 51 8 18 6 1 7 3 6 51 9 16 15 3 6 52 10 13 15 4 5 54 11 11 14 5 5 47 1 6 14 6 15 6 4 49 1 6 33 6 5 49 2 6 31 7 4 50 3 7 27 8 4 52 4 6 25 9 3 53 6 7 20 10 3 55 29 12 2 57 26 14 1 60 23 78 20 6 5 71 15 7 8 72 10
8 7 92 7 92 6 93 6 94 6 94 5 95 4 97 2 1448
博士去年提过一道跟这个类似的题 就是通过连通块 数洞 这题差不多
根据黑色白色的连通块的个数 进行辨别 然后样例中给出的图 还要附加判断
Time Limit: 2 Seconds Memory Limit: 65536 KB
Exo (Korean: 엑소; Chinese:爱咳嗽; often stylized as EXO) is a Chinese-South Korean boy band based in Seoul, South Korea. Formed by SM Entertainment in 2011, the group consists of twelve members
separated into two subgroups, EXO-K and EXO-M, performing music in Korean and Mandarin, respectively. The group officially debuted on April 8, 2012, with Suho, Baekhyun, Chanyeol, D.O, Kai, and Sehun under the Korean subgroup while Xiumin, Luhan, Kris, Lay,
Chen, and Tao are under the Mandarin group. Kris filed a lawsuit against S.M. to be removed from the group, and Luhan followed suit in October 2014. The band now promotes with 10 members since mid-October 2014, which consists of 8 Korean and 2 Chinese members.
In their first album, each member of EXO has a kind of super power. For example, Tao can control time and Lay has a super power of healing. The badges are the symbols of their super powers.
Each member of EXO has an unique badge. The following table shows the shapes of their badges.
Baekhyun | Chanyeol | Chen | D.O |
Kai | Kris | Lay | Luhan |
Sehun | Suho | Tao | Xiumin |
and EXO-M of EXO, and also holds the meaning of 'EXO and the fans are one' like their team slogan 'WE ARE ONE.'
You should help an EXO-L pass a quiz about image recognition. The quiz requires a program to recognize the badges. The input is one of the above 12 images with rotation, and the output
should be the owner of the badge in the image. The badge is rotated at an unknown angle. And each image is a square matrix. The badges will never touch or exceed the boundary of the image.
Since the images are large, we will compress the images. Each pixel in the image is either 1(white) or 0(black) after binarization. The compress method is simple:
Concatenate the pixels in the row first order to a string.
Split the string to some runs with same characters, and two adjacent runs have different characters.
Output the length of each run.
For example, an image in size 6×6:
111111 100101 100011 110111 101001 111111
We can compress it as the following:
Concatenate the pixels in the row first order, then we can get
111111100101100011110111101001111111
The runs are
1111111 00 1 0 11 000 1111 0 1111 0 1 00 1111111
So the result of compressed images is
7 2 1 1 2 3 4 1 4 1 1 2 7
Note that in this task the first run and the last run is always in white.
Input
There are multiple test cases. The first line of input contains an integer T indicating the number of test cases. For each test case:The first line contains 2 integers n and m. n is the size of the square image. m is the number of the runs in the compressed images. (100≤ n ≤
900)
The second line contains m positive integers, indicating the length of the each runs in the compressed image. (The sum of the integers is n2).
Output
For each case, output the owner of the badge in one line. Your output should be formated as one of following words: "Suho", "Baekhyun", "Chanyeol", "D.O", "Kai", "Sehun", "Xiumin", "Luhan","Kris", "Lay", "Chen", and "Tao".
Sample Input
2100 443
1445 1 99 2 97 3 97 4 6 1 88 5 5 2 88 5 4 4 86 6 4 4 73 1 12 6 3 6 72 4 8 6 5 5 72 6 6 6 5 6 72 7 3 6 6 6 12 1 59 16 7 6 9 3 60 14 8 6 6 6 61 13 9 6 3 7 65 12 7 16 8 1 45 3 10 12 5 15 6 4 45 5 9 14 3 12 6 6 45 6 8 15 2 9 9 5 47 5 7 17 1 7 10 6 47 6 6 17 2 3
13 5 48 6 5 18 17 6 49 5 5 8 1 10 5 3 8 5 50 6 3 8 5 7 3 7 6 5 50 6 3 8 7 18 2 5 52 5 3 7 10 23 52 6 2 7 13 20 52 6 3 6 15 17 53 7 2 5 19 15 49 10 2 5 21 16 44 12 2 4 24 17 38 12 6 3 25 18 34 12 6 4 26 7 1 13 31 9 7 6 25 7 5 10 34 4 6 9 25 7 8 5 46 8 25 8
58 9 25 7 59 8 25 8 59 8 25 7 48 4 7 8 26 7 8 2 35 9 5 8 25 6 7 7 33 11 3 8 25 4 6 11 35 18 25 3 5 15 36 16 25 3 3 15 40 17 21 4 2 14 44 17 19 5 2 10 49 17 16 6 2 8 51 20 13 6 2 6 52 23 11 7 2 4 53 5 2 18 8 8 2 5 51 6 5 8 2 7 6 7 3 5 51 5 8 4 5 9 2 8 4 4 50
6 17 18 5 5 49 5 13 3 2 18 5 5 48 6 11 5 3 16 7 5 47 6 9 8 2 16 7 5 47 5 7 11 3 14 9 4 46 3 8 14 4 13 9 4 45 1 8 16 6 14 8 2 54 16 9 13 62 9 3 5 8 15 60 6 6 5 8 16 58 5 9 5 7 5 2 9 58 2 12 5 6 6 5 7 72 5 5 5 8 5 72 5 4 6 11 2 73 3 5 5 87 3 5 5 87 3 5 4 89
1 6 4 97 3 97 2 98 2 1445
100 451
1449 2 96 4 96 5 94 6 93 6 94 5 93 6 93 6 10 4 78 7 7 13 72 6 6 18 80 21 62 2 14 24 58 3 14 26 55 3 13 15 6 8 54 4 10 20 8 5 51 5 8 25 8 3 51 4 7 29 7 3 49 5 6 31 7 2 48 5 6 15 4 14 7 1 48 5 5 15 9 11 54 6 4 15 12 10 53 5 4 16 14 8 53 5 3 16 16 8 51 6 3 8 1
6 18 8 50 6 2 8 2 6 19 7 50 6 2 7 3 5 7 21 5 1 43 6 1 7 4 5 4 24 4 2 43 6 1 7 4 5 2 26 4 3 43 12 4 5 2 28 3 3 43 12 4 5 16 14 3 4 42 11 5 5 19 12 3 4 42 10 5 5 15 1 5 10 3 5 41 10 6 3 16 1 7 8 4 5 40 9 7 3 16 2 7 8 3 7 32 1 6 8 7 3 16 2 8 7 4 7 29 5 4 8 7
3 16 3 7 8 4 6 29 6 4 7 7 3 16 3 8 7 5 5 29 7 3 8 7 2 16 3 8 8 5 3 31 6 4 8 6 2 16 4 7 8 40 6 4 8 6 1 16 4 6 10 40 6 3 9 6 1 15 4 6 10 42 4 3 11 20 4 6 10 42 4 4 12 18 4 6 11 42 3 4 15 15 4 5 12 43 2 4 26 3 5 5 12 43 2 4 25 4 5 4 6 1 6 44 1 5 6 2 14 6 5 4
6 1 6 44 1 5 7 5 6 9 6 3 7 1 6 50 8 19 6 2 7 2 6 51 8 18 6 1 7 3 6 51 9 16 15 3 6 52 10 13 15 4 5 54 11 11 14 5 5 47 1 6 14 6 15 6 4 49 1 6 33 6 5 49 2 6 31 7 4 50 3 7 27 8 4 52 4 6 25 9 3 53 6 7 20 10 3 55 29 12 2 57 26 14 1 60 23 78 20 6 5 71 15 7 8 72 10
8 7 92 7 92 6 93 6 94 6 94 5 95 4 97 2 1448
Sample Output
Xiumin Sehun
Hint
The images in the sample input are visualized as:Sample 1 | Sample 2 |
根据黑色白色的连通块的个数 进行辨别 然后样例中给出的图 还要附加判断
#include <cstdio> #include <iostream> #include <cstring> #include <cmath> #include <algorithm> #include <string.h> #include <string> #include <vector> #include <queue> #define MEM(a,x) memset(a,x,sizeof a) #define eps 1e-8 #define MOD 10009 #define MAXN 10010 #define MAXM 100010 #define INF 99999999 #define ll __int64 #define bug cout<<"here"<<endl #define fread freopen("ceshi.txt","r",stdin) #define fwrite freopen("out.txt","w",stdout) using namespace std; int Read() { char ch; int a = 0; while((ch = getchar()) == ' ' | ch == '\n'); a += ch - '0'; while((ch = getchar()) != ' ' && ch != '\n') { a *= 10; a += ch - '0'; } return a; } void Print(int a) //Êä³öÍâ¹Ò { if(a>9) Print(a/10); putchar(a%10+'0'); } struct node { int x,y; }; int mp[1000][1000]; int vis[1000][1000]; int n,m; int dir[8][2]={{-1,0},{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1}}; int bfs(int x,int y,int z)//连通块 { node no; no.x=x; no.y=y; queue<node> que; que.push(no); vis[x][y]=1; int cnt=1; while(!que.empty()) { node q=que.front(); que.pop(); for(int i=0;i<8;i++) { node next; next.x=q.x+dir[i][0]; next.y=q.y+dir[i][1]; if(next.x>=0&&next.x<n&&next.y>=0&&next.y<n) { if(vis[next.x][next.y]) continue; if(mp[next.x][next.y]!=z) continue; cnt++; vis[next.x][next.y]=1; que.push(next); } } } return cnt; } int main() { // fread; int tc; scanf("%d",&tc); while(tc--) { scanf("%d%d",&n,&m); int nx=0,ny=0; MEM(vis,0); for(int i=0;i<m;i++) { int num; scanf("%d",&num); while(num--) { mp[nx][ny]=i%2; ny++; if(ny==n) { ny=0; nx++; } } } bfs(0,0,0); vector<int> black,white; for(int i=0;i<n;i++) for(int j=0;j<n;j++) { if(!vis[i][j]) { if(!mp[i][j]) { int cnt=bfs(i,j,0); white.push_back(cnt); } else { int cnt=bfs(i,j,1); black.push_back(cnt); } } } int wcnt=white.size(); int bcnt=black.size(); // cout<<"wcnt "<<wcnt<<" bcnt "<<bcnt<<endl; if(bcnt==1) { if(wcnt==2) puts("Chen"); if(wcnt==1) puts("D.O"); } else if(bcnt==2) { if(wcnt==7) puts("Suho"); if(wcnt==3) puts("Tao"); if(wcnt==12) puts("Kai"); } else if(bcnt==3) puts("Kris"); else if(bcnt==9) puts("Baekhyun"); else if(bcnt==5) { if(wcnt==0) puts("Chanyeol"); if(wcnt==7) puts("Luhan"); if(wcnt==1) { sort(black.begin(),black.end()); int sum=black[0]+black[1]+black[2]+black[3]; double tem=(double)sum/black[4]; if(tem<0.4) puts("Sehun"); else puts("Xiumin"); // int x=black[4]/black[0]; //// cout<<x<<endl; // if(x<30) // puts("Xiumin"); // else puts("Sehun"); } } else if(bcnt==6) puts("Lay"); } return 0; }
相关文章推荐
- 【搜索】 ZOJ 3864 Quiz for EXO-L BFS
- ZOJ 3864 Quiz for EXO-L
- ZOJ 3864 Quiz for EXO-L
- ZOJ3864:Quiz for EXO-L(BFS)
- ZOJ 1091 Knight Moves 【BFS】
- ZOJ 3820 Building Fire Stations(二分+BFS)
- !POJ 2251 & ZOJ 1940--BFS(第一道BFS)
- ZOJ 1438 Asteroids!--BFS(注意细节)
- zoj 3420 纯bfs
- ZOJ 3811 Untrusted Patrol 并查集 染色 BFS
- ZOJ 3781 Paint the Grid Reloaded ( BFS(重点是对问题的分析) )
- ZOJ2849 优先队列BFS
- zoj 1649 rescue (bfs)
- Coursera课程Python for everyone:Quiz: Reading Web Data From Python
- BFS ZOJ problem-1671 Waking Ant
- ZOJ 1671(广度搜索bfs)(Walking Ant)
- ZOJ 649 Rescue(优先队列+bfs)
- zoj1649 BFS
- 位置数组zoj1649 BFS
- HDU 1242 && ZOJ 1649( BFS (队列 || 优先队列)).