博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【HDOJ】4932 Miaomiao's Geometry
阅读量:5923 次
发布时间:2019-06-19

本文共 1671 字,大约阅读时间需要 5 分钟。

递归检测。因为dis数组开的不够大,各种wa。写了个数据发生器,果断发现错误,改完就过了。

1 #include 
2 #include
3 #include
4 #include
5 6 using namespace std; 7 8 #define MAXN 55 9 10 int n;11 double a[MAXN], dis[MAXN*2];12 char visit[MAXN]; // 0: false, 1: left, 2:right13 14 bool dfs(int x, double l) {15 if (x == n-1)16 return true;17 if (x == 0) {18 visit[x] = 2;19 return dfs(x+1, l);20 }21 if (visit[x-1] == 2) {22 if (a[x-1]+l <= a[x]) {23 visit[x] = 2;24 if ( dfs(x+1, l) )25 return true;26 } else if (a[x]+l <= a[x+1]) {27 visit[x] = 1;28 return dfs(x+1, l);29 }30 return false;31 } else {32 if (a[x-1]+2*l <= a[x] || a[x-1]+l==a[x]) {33 visit[x] = 2;34 if ( dfs(x+1, l) )35 return true;36 } else if (a[x]+l <= a[x+1]) {37 visit[x] = 1;38 return dfs(x+1, l);39 }40 return false;41 }42 }43 44 int main() {45 //FILE *fout = fopen("data", "w");46 int case_n, m;47 int i;48 49 scanf("%d", &case_n);50 while (case_n--) {51 scanf("%d", &n);52 for (i=0; i
=0; --i) {62 if (dis[i] != dis[i+1]) {63 memset(visit, 0, sizeof(visit));64 if ( dfs(0, dis[i]) )65 break;66 }67 }68 printf("%.3lf\n", dis[i]);69 //fprintf(fout, "%.3lf\n", dis[i]);70 }71 72 return 0;73 }

 

转载于:https://www.cnblogs.com/bombe1013/p/3903742.html

你可能感兴趣的文章
利用python多线程和队列管理shell程序
查看>>
Greenplum迁移数据后批量更新序列值
查看>>
Spring学习笔记六--外部配置文件
查看>>
代理模式
查看>>
zabbix监控linux tcp连接数
查看>>
【AD】AD通用工具
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
intellij idea搭建Java web环境
查看>>
NFS on AIX
查看>>
CIO十大利器:如何延长数据中心的使用寿命
查看>>
Makefile中制定动态库路径的问题
查看>>
volatile关键字
查看>>
【如何搭建×××】全世界都是你的Office
查看>>
.NET框架设计(高级框架架构模式)—钝化程序、逻辑冻结、冻结程序的延续、瞬间转移...
查看>>
《转》VMware vSphere 5.1 学习系列之一:实验环境的搭建
查看>>
我的友情链接
查看>>
了不起的全能MAC系统监测工具iStat Menus 5下载
查看>>
当ppt演示文档过大应该怎么办如何压缩
查看>>
数据推荐系统系列 8种方法之零 简单方式 SlopeOne 方式 (补充简单的方式)
查看>>