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. thinkphp笔记16-20集

    16.ThinkPHP3.1.3使用视频教程--独立分组配置项与目录部署详解_高清 17.ThinkPHP3.1.3使用视频教程--RBAC详解(一)思路分析_高清 18.ThinkPHP3.1.3使 ...

  2. vim基础命令

    2015-06-04 by komilevim基础命令 打开一个文件 vim index.php 几种模式说明Normal Mode也就是最一般的普通模式,默认进入vim之后,处于这种模式.Inser ...

  3. HighCharts日期及数值格式化

    1.函数原型   1 dateFormat(Stringformat,[Numbertime],[Booleancapitalize])::String 2.说明 格式化JavaScript 时间(也 ...

  4. solr6.1-----solrJ 程序管理索引库

    solrJ 是solr 提供的一个客户端,就是一个jar 包,把jar 添加到工程中整合solr 服务. 所需jar 包 D:\solr-6.1.0\dist 下面的 solr-solrj-6.1.0 ...

  5. solr6.1-----mysql 数据导入-查询

    此部分一定要细心,lz 中间错了一个细节,调了好长时间(汗).请严格按照步骤操作 新建core 步骤1: 在webapps中solrhome下新建一个文件夹名字叫做collection1(名字不固定, ...

  6. fastJSON☞JSONParameters☞时区的修改☞时间最后有一个"Z"

    why... 为什么会有这个问题; 由于近期用到需要将数据序列化... 最终选择了fastJSON(版本为1.)来实现. 但是发现了一个问题,表中有一个dateTime类型的字段, 本来数据库中存入的 ...

  7. 在PHP中遍历数据库表中的数据

    数据库中的数据: //1.分别将每一行的每一列遍历出来 //mysql_fetch_row()函数在每一次遍历后会将指针向后自动移动一个单位 while($row=mysql_fetch_row($r ...

  8. 给一系列的div中的第一个添加class

     $(".lb:first").addClass("active")

  9. Wdcp在安装memcached出现错误的解决办法

    今天在安装memcached时出现了以下错误(tar: libevent-1.4.14b-stable.tar.gz: Cannot open: No such file or directory), ...

  10. php网络编程

    php面试题之三--PHP网络编程(高级部分) 三.PHP网络编程 [!!!]1.禁用COOKIE后SEESION还能用吗?(51.com笔试题) 可以,COOKIE和SESSION都是用来实现会话机 ...