- 1、本文档共73页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* POJ 1703 犯罪团伙 警察抓到了n个罪犯,警察根据经验知道他们属于不同的犯罪团伙,但通过警察的审讯,知道其中的一些罪犯之间相互认识,已知同一犯罪团伙的成员直接直接或间接认识。有可能一个犯罪团伙只有一个人。请你根据已知罪犯之间的关系,确定犯罪团伙的数量。已知罪犯的编号从1至n。 六、遍历的应用 * 样例输入 11 8 1 2 4 3 5 4 1 3 5 6 7 10 5 10 8 9 样例输出 3 输入说明 n=1000,罪犯数量 m500,关系数量 每2个数,i和j,表示罪犯i和罪犯j相互认识 输出说明 一个整数,犯罪团伙的数量 * 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 3 4 5 6 7 8 9 10 11 1 2 3 4 5 6 7 8 9 10 11 邻 接 矩 阵 * 0 0 0 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 8 9 10 11 visited 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 2 3 4 5 6 7 10 8 9 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 3 4 5 6 7 8 9 0 1 1 2 3 4 5 6 7 8 9 10 11 1 1 1 1 11 1 * #includeiostream using namespace std; int a[1001][1001], visited[1001],n,m,i,s=0; void dfs(int i) { int j; visited[i]=1; for(j=1;j=n;j++) if(a[i][j]==1 visited[j]==0) dfs(j); } int main(void){ int i,x,y; cinnm; for(i=1;i=m;i++) { cinxy; a[x][y]=1;a[y][x]=1;} for(i=1;i=n;i++) visited[i]=0; for(i=1;i=n;i++) if(visited[i]==0) {dfs(i); s++;} coutsendl; return 0; } * 1866 位图 现在给定一个n*m的矩形位图,位图中每个像素不是白色就是黑色,但至少含有一个白色的像素。第i行第j列的像素被称作像素(i,j),两像素p1=(i1,j1)和p2=(i2,j2)之间的距离定义为d(p1,p2)=|i1-i2|+|j1-j2|。现在请你编写一个程序计算图中每个像素与其最近的白像素的距离。 七、遍历的应用 * 样例输入 3 4 0001 0011 0110 样例输出 3 2 1 0 2 1 0 0 1 0 0 1 输入说明 第一行的n和m,1=n=182,1=m=182 矩阵中的1表示白像素,否则为黑像素。 输出说明 第i行第j列的整数表示与它最近的白像素之间的距离 * #includeiostream using namespace std; int dx[4]={-1,0,1,0},dy[4]={0,1,0,-1}; char a[200][200]; int f[200][200],p[400][4],i,j,k,m,n,ans; bool used[200][200]; 0 3 1 2 0 0 0 1 0 0 1 1 0 1 1 0 (x,y)--(1,1) (0,1) (2,1) (1,2) (1,0) 1 1 (3,1) (2,2) (1,3) 2 2 2 ans=2+1 * void bfs(int x, int y) { int i,x1,y1,open,closed; p[1][1]=x; p[1][2]=y;p[1][3]=0; open =1 ; closed =1; memset(used,0,sizeof(used)); if(a[x][y]==‘1’) return; while(open=closed) { for(i=0; i4;i++) { x1=p[open][1]+dx[i]; y1=p[open][2]+dy[i]; if(x10 x1=n y10 y1=m !used[x][y]) { closed++; p[closed][1]=x1; p[closed][2]=y1; p[closed][3]=p
文档评论(0)