标签:des style blog http color io os ar for
http://poj.org/problem?id=1175
题目解析:
这个题因为数据的原因可以很水的过,但我因为把1e-8写成了1e-9WA了N遍,一直WA,题目意思很简单就是相似图形(就是求旋转的图形,我不会,但在discuss中看到
可以通过求图形的长度来求)另外常识性问题double数据类型不能直接比较相等,需要借助一个小数比较,那个比较的小数题目一般会提示,例如这题就是1e-8,另外就是
这题的数据是在是忒坑了!
#include <iostream> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <algorithm> #include <queue> #include <math.h> #define MIN 1e-8 using namespace std; int map[102][102]; char ff[102][102]; int n,m,tt,v[102][102]; struct node { int x,y; }; int sum[501]; double dis[501]; struct node1 { int x,y; } s[501]; int jx[]= {1,1,1,0,0,-1,-1,-1}; int jy[]= {-1,0,1,-1,1,-1,0,1}; void bfs(int xx,int yy) { memset(v,0,sizeof(v)); queue<node>q; struct node t,f; int l=0; s[l].x=xx; s[l++].y=yy; t.x=xx; t.y=yy; v[t.x][t.y]=1; q.push(t); while(!q.empty()) { t=q.front(); q.pop(); for(int i=0; i<8; i++) { f.x=t.x+jx[i]; f.y=t.y+jy[i]; if(map[f.x][f.y]&&v[f.x][f.y]==0&&f.x>=0&&f.x<n&&f.y>=0&&f.y<m) { s[l].x=f.x; s[l++].y=f.y; v[f.x][f.y]=1; q.push(f); } } } double count=0; for(int i=0; i<l; i++) { for(int j=0; j<l; j++) { count=count+sqrt((s[i].x-s[j].x)*(s[i].x-s[j].x)*1.0+(s[i].y-s[j].y)*(s[i].y-s[j].y)*1.0); } } int flag=0; for(int i=0; i<tt; i++) { if(sum[i]==l&&fabs(dis[i]-count)<MIN) { ff[xx][yy]=i+‘a‘; flag=1; } } if(flag==0) { ff[xx][yy]=tt+‘a‘; dis[tt]=count; sum[tt]=l; tt++; } } int main() { char str; while(scanf("%d%d",&m,&n)!=EOF) { tt=0; for(int i=0; i<n; i++) { getchar(); for(int j=0; j<m; j++) { scanf("%c",&str);//不知道为什么不能直接输入map[i][j],基础知识太渣了 ff[i][j]=str; map[i][j]=str-‘0‘; } } for(int i=0; i<n; i++) { for(int j=0; j<m; j++) { if(map[i][j]) bfs(i,j); } } for(int i=0; i<n; i++) { for(int j=0; j<m; j++) { printf("%c",ff[i][j]); } printf("\n"); } } return 0; }
Description
Input
Output
Sample Input
23 15 10001000000000010000000 01111100011111000101101 01000000010001000111111 00000000010101000101111 00000111010001000000000 00001001011111000000000 10000001000000000000000 00101000000111110010000 00001000000100010011111 00000001110101010100010 00000100110100010000000 00010001110111110000000 00100001110000000100000 00001000100001000100101 00000001110001000111000
Sample Output
a000a0000000000b0000000 0aaaaa000ccccc000d0dd0d 0a0000000c000c000dddddd 000000000c0b0c000d0dddd 00000eee0c000c000000000 0000e00e0ccccc000000000 b000000e000000000000000 00b0f000000ccccc00a0000 0000f000000c000c00aaaaa 0000000ddd0c0b0c0a000a0 00000b00dd0c000c0000000 000g000ddd0ccccc0000000 00g0000ddd0000000e00000 0000b000d0000f000e00e0b 0000000ddd000f000eee000
Hint
Source
标签:des style blog http color io os ar for
原文地址:http://www.cnblogs.com/zhangmingcheng/p/4014224.html