POJ2663-完全覆盖

题解见首注释

//简单递推-三个米诺牌(3*2)为一个单位打草稿得出规律
//题意-3*n块方格能被1*2的米诺牌以多少种情况完全覆盖
//Memory 132K Time: 0 Ms #include<iostream>
#include<cstring>
#include<cstdio>
using namespace std; int ans; //开始平铺
int Tiling(int n)
{
int sum = ;
if (n == )
return ;
else if (n >= )
{
sum += * Tiling(n - );
while (n -= , n - >= )
sum += *Tiling(n-);
}
return sum;
} int main()
{
int n;
while (scanf("%d",&n),n != -)
{
ans = Tiling(n);
printf("%d\n", ans);
}
return ;
}

POJ1057(百练2775)-旧式文件结构图

非递归版-注意记录状态

//旧式shell文件结构图模拟-分析文件(可递归)
//Memory: 148K Time: 0 Ms #include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std; #define MAX 62 char buff[MAX][MAX]; /* File name */
struct File{
char f[MAX];
}; /* Folder property */
struct Folder{
int catalog;
int num;
File f[MAX];
}dir[MAX]; /* sort_cmp */
bool cmp(File a,File b)
{
return strcmp(a.f, b.f) < ;
} void open_Folder(int cur,int num) //cur-当前文件目录,num-文件数
{
int i, j;
sort(dir[cur].f, dir[cur].f + num, cmp);
for (i = ; i < num; i++)
{
for (j = ; j < dir[cur].catalog; j++)
printf("| ");
printf("%s\n", dir[cur].f[i].f);
}
} int main()
{
int T, n;
int i, j, k;
T = ;
while (scanf("%s", buff[]), buff[][] != '#')
{
/*Reading all*/
n = ;
k = ;
while (scanf("%s", buff[++n]), buff[n][] != '*');
printf("DATA SET %d:\n",++T);
printf("ROOT\n");
dir[].num = ; //Init for (i = ; i <= n; i++)
{
if (buff[i][] == 'd') //Folder
{
k++;
dir[k].catalog = dir[k-].catalog+;
dir[k].num = ;
for (j = ; j < dir[k].catalog; j++)
printf("| ");
printf("%s\n", buff[i]);
}
else if (buff[i][] == 'f') //File
strcpy(dir[k].f[dir[k].num++].f, buff[i]);
else if (buff[i][] == ']') //end_Folder
{
open_Folder(k, dir[k].num);
k--;
}
else if (buff[i][] == '*') //end_root
open_Folder(k, dir[k].num);
}
printf("\n");
}
return ;
}

递归版-用形参记录状态

-PS:这个版本是本文发表当天写的,所以和上面版本(前一年做过的)的习惯和极值有些差异。

//递归模拟
//Memory:184K Time:0Ms
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std; #define MAX 31 int T; //当前为第T个样例
char cur[MAX]; //当前输入字符串 //FILE *out = fopen("out.txt", "w"); struct File {
char name[MAX];
friend bool operator < (File a, File b)
{
if (strcmp(a.name, b.name) < ) return true;
else return false;
}
}; struct Catalog {
char name[MAX];
int num; //该目录下的文件数
File f[MAX];
Catalog(char *name) { strcpy(this->name, name); num = ; }
}; void open(char *name,int level)
{
if (name[] == 'R') //ROOT前输入
printf("DATA SET %d:\n", ++T);
//fprintf(out, "\nDATA SET %d:\n", ++T);
while (level--)
printf("| ");
//fprintf(out,"| ");
printf("%s\n", name);
//fprintf(out, "%s\n", name);
} void root(Catalog dir,int level)
{
scanf("%s", cur); if (cur[] == '#') return; //END open(dir.name, level); do{
if (cur[] == 'd')
{
Catalog newDir(cur); //创建新文件夹,命名为cur
root(newDir, level + );
}
else if(cur[] == 'f')
strcpy(dir.f[dir.num++].name, cur);
else { //cur[0] == ']' or cur[0] == '*'
sort(dir.f, dir.f + dir.num);
for (int i = ; i < dir.num; i++)
open(dir.f[i].name, level);
return;
}
}while (scanf("%s", cur));
} int main()
{
while (cur[] != '#')
{
Catalog r("ROOT"); //创建根目录
root(r,);
printf("\n");
} return ;
}

ACM/ICPC 之 递归(POJ2663-完全覆盖+POJ1057(百练2775)-旧式文件结构图)的更多相关文章

  1. 【转】lonekight@xmu·ACM/ICPC 回忆录

    转自:http://hi.baidu.com/ordeder/item/2a342a7fe7cb9e336dc37c89 2009年09月06日 星期日 21:55 初识ACM最早听说ACM/ICPC ...

  2. 2017 ACM ICPC Asia Regional - Daejeon

    2017 ACM ICPC Asia Regional - Daejeon Problem A Broadcast Stations 题目描述:给出一棵树,每一个点有一个辐射距离\(p_i\)(待确定 ...

  3. HDU 4041 Eliminate Witches! (模拟题 ACM ICPC 2011亚洲北京赛区网络赛)

    HDU 4041 Eliminate Witches! (模拟题 ACM ICPC 2011 亚洲北京赛区网络赛题目) Eliminate Witches! Time Limit: 2000/1000 ...

  4. ACM ICPC 2017 Warmup Contest 9 I

    I. Older Brother Your older brother is an amateur mathematician with lots of experience. However, hi ...

  5. 训练报告 (2014-2015) 2014, Samara SAU ACM ICPC Quarterfinal Qualification Contest

    Solved A Gym 100488A Yet Another Goat in the Garden   B Gym 100488B Impossible to Guess Solved C Gym ...

  6. 2014嘉杰信息杯ACM/ICPC湖南程序设计邀请赛暨第六届湘潭市程序设计竞赛

    比赛链接: http://202.197.224.59/OnlineJudge2/index.php/Contest/problems/contest_id/36 题目来源: 2014嘉杰信息杯ACM ...

  7. ACM/ICPC 之 BFS(离线)+康拓展开(TSH OJ-玩具(Toy))

    祝大家新年快乐,相信在新的一年里一定有我们自己的梦! 这是一个简化的魔板问题,只需输出步骤即可. 玩具(Toy) 描述 ZC神最擅长逻辑推理,一日,他给大家讲述起自己儿时的数字玩具. 该玩具酷似魔方, ...

  8. ACM ICPC 2015 Moscow Subregional Russia, Moscow, Dolgoprudny, October, 18, 2015 G. Garden Gathering

    Problem G. Garden Gathering Input file: standard input Output file: standard output Time limit: 3 se ...

  9. ACM ICPC 2015 Moscow Subregional Russia, Moscow, Dolgoprudny, October, 18, 2015 D. Delay Time

    Problem D. Delay Time Input file: standard input Output file: standard output Time limit: 1 second M ...

随机推荐

  1. 代码重构 & 常用设计模式

    代码重构 重构目的 相同的代码最好只出现一次 主次方法 主方法 只包含实现完整逻辑的子方法 思维清楚,便于阅读 次方法 实现具体逻辑功能 测试通过后,后续几乎不用维护 重构的步骤 1  新建一个方法 ...

  2. CSS这些代码你都不会,你还有什么好说的!!!

    都说自己工资低的,先看看这些代码你能写出来不?这些都不会,你还嫌工资? 很多人抱怨工资低,觉得自己大材小用,但你真的是才不是柴嘛?? 经常听到一些人,遇到不会的问百度,如果这样,我们都不用学习了,天天 ...

  3. ggplo2学习笔记——基本图形类型

    1.散点图:又称散点分布图,是以一个变量为恨坐标,另一个变量为纵坐标,利用散点(坐标点)的分布形态反映变量统计关系的一种图形.可以用来确认两个变量之间的关系.绘制自由曲线.矩阵关联分析等. 2.条形图 ...

  4. PHP的扩展类 mysqli_stmt:预处理类

    mysqli和mysqli_result能完成的功能 都可以使用mysqli_stmt类开完成 1.编译一次,使用多次,类似于存储过程 2.参数化查询,可防止sql注入 1: <?php 2: ...

  5. HTML5 之Canvas绘制太阳系

    <!DOCTYPE html> <html> <head> <title>HTML5_Canvas_SolarSystem</title> ...

  6. hadoop之 flume1.6安装

    flume 1.6安装1.解压 2.复制 cp conf/flume-conf.properties.template conf/flume.conf cp conf/flume-env.sh.tem ...

  7. 教你如何删除tomcat服务器的stdout.log文件

    用Tomcat做WEB服务器的人都知道,有个很让人头痛的问题,就是stdout.log日志文件会自动增长,而且增长得很快. 先来看看我的痛处吧,公司有个WEB应用,就是用Tomcat作为服务器的,由于 ...

  8. ubuntu安装php常见错误集锦

    一.configure 报错 1.错误类型: Configure: error: Please reinstall the libcurl distribution-easy.h should be ...

  9. HDU 5023 A Corrupt Mayor's Performance Art(线段树区间更新)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5023 解题报告:一面墙长度为n,有N个单元,每个单元编号从1到n,墙的初始的颜色是2,一共有30种颜色 ...

  10. 符瑞艺 160809228_C语言程序设计实验2 选择结构程序设计

    实验2- 输入3个数,并按由大到小的顺序输出. 实验要求: 编写一个C程序,输入3个数,并按由大到小的顺序输出. 参考: 源码: #include <stdio.h> int main() ...