【习题 6-8 UVA - 806】Spatial Structures
【链接】 我是链接,点我呀:)
【题意】
在这里输入题意
【题解】
写两个dfs模拟就好。
注意每12个数字输出一个换行。。
【代码】
/*
1.Shoud it use long long ?
2.Have you ever test several sample(at least therr) yourself?
3.Can you promise that the solution is right? At least,the main ideal
4.use the puts("") or putchar() or printf and such things?
5.init the used array or any value?
6.use error MAX_VALUE?
7.use scanf instead of cin/cout?
*/
#include <bits/stdc++.h>
using namespace std;
const int N = 100;
int n;
char s[N][N];
vector <long long> v;
int numberblack(int x1,int y1,int x2,int y2){
int cnt = 0;
for (int i = x1;i <= x2;i++)
for (int j = y1;j<= y2;j++)
if (s[i][j]=='1')
cnt++;
return cnt;
}
void dfs(int x1,int y1,int x2,int y2,int now,int xishu){
int temp1 = numberblack(x1,y1,x2,y2);
if (temp1==0) return;
int should = (x2-x1+1)*(y2-y1+1);
if (temp1==should){
v.push_back(now);
return;
}
int midx = (x1+x2)/2,midy = (y1+y2)/2;
dfs(x1,y1,midx,midy,now + 1*xishu,xishu*5);
dfs(x1,midy+1,midx,y2,now + 2*xishu,xishu*5);
dfs(midx+1,y1,x2,midy,now + 3*xishu,xishu*5);
dfs(midx+1,midy+1,x2,y2,now + 4*xishu,xishu*5);
}
void fugai(int x1,int y1,int x2,int y2){
for (int i = x1;i <= x2;i++)
for (int j = y1;j <= y2;j++)
s[i][j] = '*';
}
void dfs2(int x1,int y1,int x2,int y2,int rest){
if (rest==0){
fugai(x1,y1,x2,y2);
return;
}
int ope = rest%5;
int midx = (x1+x2)/2,midy = (y1+y2)/2;
switch (ope){
case 1: dfs2(x1,y1,midx,midy,rest/5);break;
case 2: dfs2(x1,midy+1,midx,y2,rest/5);break;
case 3: dfs2(midx+1,y1,x2,midy,rest/5);break;
case 4: dfs2(midx+1,midy+1,x2,y2,rest/5);break;
}
}
int main(){
#ifdef LOCAL_DEFINE
freopen("F:\\c++source\\rush_in.txt", "r", stdin);
freopen("F:\\c++source\\rush_out.txt", "w", stdout);
#endif
ios::sync_with_stdio(0),cin.tie(0);
int kase = 0;
while (cin >>n && n!=0){
if (kase>0) cout << endl;
kase++;
cout <<"Image "<<kase<<endl;
if (n>0){
v.clear();
for (int i = 1;i <= n;i++) cin >> (s[i]+1);
dfs(1,1,n,n,0,1);
sort(v.begin(),v.end());
for (int i = 0;i < (int) v.size();i++){
cout << v[i];
if ((i+1)%12==0 || i==(int) v.size()-1) cout << endl;else cout <<' ';
}
cout <<"Total number of black nodes = "<<(int) v.size()<<endl;
}else{
n = -n;
for (int i = 1;i <= n;i++)
for (int j =1 ;j <= n;j++) s[i][j] = '.';
int x;
for (cin >>x;x!=-1;cin>>x){
dfs2(1,1,n,n,x);
}
for (int i = 1;i <= n;i++){
for (int j =1 ;j <= n;j++) cout <<s[i][j];
cout << endl;
}
}
}
return 0;
}
【习题 6-8 UVA - 806】Spatial Structures的更多相关文章
- UVA 806 Spatial Structures
题意: 如果某一大区域所有色块颜色是相同的,那么这一个大区域就算作一块,如果不同,则将其划分成四个小区域,然后重复上述步骤递归进行直到所有区域的颜色相同为止.然后根据上面划分的区域建树,小区域作为大区 ...
- [刷题]算法竞赛入门经典(第2版) 6-8/UVa806 - Spatial Structures
题意:黑白图像的路径表示法 代码:(Accepted,0.120s) //UVa806 - Spatial Structures //Accepted 0.120s //#define _XIENAO ...
- UVA-806 Spatial Structures (四分树)
题目大意:将一块图像上的黑点在两种表示法之间转换. 题目分析:递归下去... 注意:输出时要注意细节!!! 代码如下: # include<iostream> # include<c ...
- UVa 806 四分树
题意: 分析: 类似UVa 297, 模拟四分树四分的过程, 就是记录一个左上角, 记录宽度wideth, 然后每次w/2这样递归下去. 注意全黑是输出0, 不是输出1234. #include &l ...
- uva806 Spatial Structures 空间结构 (黑白图像的四分树表示)
input 8 00000000 00000000 00001111 00001111 00011111 00111111 00111100 00111000 -8 9 14 17 22 23 44 ...
- ACM训练计划建议(写给本校acmer,欢迎围观和指正)
ACM训练计划建议 From:freecode# Date:2015/5/20 前言: 老师要我们整理一份训练计划给下一届的学弟学妹们,整理出来了,费了不少笔墨,就也将它放到博客园上供大家参考. 菜 ...
- ACM训练计划建议(转)
ACM训练计划建议 From:freecode# Date:2015/5/20 前言: 老师要我们整理一份训练计划给下一届的学弟学妹们,整理出来了,费了不少笔墨,就也将它放到博客园上供大家参考. 菜 ...
- 动态规划 Dynamic Programming 学习笔记
文章以 CC-BY-SA 方式共享,此说明高于本站内其他说明. 本文尚未完工,但内容足够丰富,故提前发布. 内容包含大量 \(\LaTeX\) 公式,渲染可能需要一些时间,请耐心等待渲染(约 5s). ...
- UVa第五章STL应用 习题((解题报告))具体!
例题5--9 数据库 Database UVa 1592 #include<iostream> #include<stdio.h> #include<string.h&g ...
随机推荐
- weex入门(一)
emmmm其实没有接触过weex ,了解一番发现有很多坑,有很多基于weex改良后的框架,比如weexplus等等,基本不用踩多少坑.经过几天的深思熟虑我觉得还是去踩坑,毕竟踩完坑才能真正的了解嘛 w ...
- php,javascript设置和读取cookie
1.php设置cookie setcookie($name,$value,expire,path,domain,secrue); //$name:指的是cookie的名字:$value指的是cooki ...
- 【Uva 1630】Folding
[Link]: [Description] 你能对字符串进行压缩的操作; 即把连续出现的相同的子串改成它出现的次数+这个最基本的字符串的形式; 问你这个字符串最短能被压缩得多短; [Solution] ...
- PostgreSQL递归查询实现树状结构查询
在Postgresql的使用过程中发现了一个非常有意思的功能,就是对于须要相似于树状结构的结果能够使用递归查询实现.比方说我们经常使用的公司部门这样的数据结构.一般我们设计表结构的时候都是相似以下的S ...
- UML图和C#
这段时间学习了楚光明老师解说的C#视频,接触这个学习材料的第一感觉就是老师解说的通俗易懂,非常easy让人去接受:再有就是在学习到UML图和C#的一节时非常有收获,之前自己也学习过UML图的一 ...
- HBase写入操作卡住长时间不返回的原因分析
本文出处:http://blog.csdn.net/chaijunkun/article/details/44238163,转载请注明. 由于本人不定期会整理相关博文,会对相应内容作出完好.因此强烈建 ...
- tensorflow 语法及 api 使用细节
1. tf.nn.conv2d 的参数 padding='SAME' ⇒ 卷积之前的大小和卷积之后的大小一致,默认使用全 0 填充: padding='VALID' ⇒ 也即仅适用其有效部分,而不使用 ...
- H265(HEVC) nal 单元头介绍及rtp发送中的fu分组发送详解
首先来介绍下h265(HEVC)nal单元头,与h264的nal层相比,h265的nal unit header有两个字节构成,如下图所示: 从图中可以看出hHEVC的nal包结构与h264有明显的不 ...
- BZOJ 1572 贪心(priority_queue)
思路: 维护两个堆 一个按时间 (从后到前)的 另一个是按价值(从大到小)的 从时间的堆向价值的堆倒 每回(合法状态下)取当前的堆顶 判一判 //By SiriusRen #include <q ...
- BootStrap_table.js 学习
@{ Layout = null; ViewBag.Title = "基于BootstrapTable的简单应用";} <!--添加相关样式引用--><link ...