POJ 1190(深搜)
http://poj.org/problem?id=1190
又有好久没做搜索的题了,没想到做一个卡了我那么久,想哭啊。
一个中文题,思路呢也就是搜索呗,一层一层往上面搜,不过这里有两个比较重要的地方的剪枝。
一、每一次搜索可以达到的最小的半径和高度为当前总的层数减去当前层数(我是默认为最底层是第1层的)。
二、上一层的总面积和加上这一层的最大面积和如果大于最小的表面积的话,直接返回。
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <math.h> using namespace std;
#define INF 9999999 int s=INF,m,n,ans,mv[]; int dfs(int r,int h,int x,int y)
{
for(int i=r-;i>=(n-y);i--)
for(int j=h-;j>=(n-y);j--)
{
if(x+*(m-ans)/r>=s) return ;
if(x>s) return ;
if(ans+i*i*j<m&&y!=n&&i!=&&j!=){
ans+=i*i*j;
if(y==) x+=i*i; //如果有多层的话,那么表面的总面积和就等于最底下的蛋糕的表面积。(从上往下看)
dfs(i,j,x+*i*j,y+);
if(y==) x-=i*i;
ans-=i*i*j;
}
if(ans+i*i*j==m&&y==n){
x+=*i*j;
if(y==) x+=i*i; //如果只有一层的话,那么上表面积也就等于半径的平方。
if(x<s) s=x;
x-=*i*j;
if(y==) x-=i*i; //这里记得要减。
}
}
return ;
} int main()
{
scanf("%d%d",&m,&n);
ans=;
s=INF;
dfs(sqrt(double(m))+,m+,,);
if(s!=INF) printf("%d\n",s);
else printf("0\n");
}
POJ 1190(深搜)的更多相关文章
- POJ 2531 深搜剪枝
题意:全局最大割. 分析:有相应的算法,数据量很小,可以枚举源点,汇点,最大流. 这里用DFS,状态定义:分成两个集合,刚开始S集合全部点,然后一个一个放,这是一个回溯的过程. 没剪枝也过了. 剪枝技 ...
- POJ 1321 深搜dfs
思路其实挺简单的,为什么我想不到呢!!! 原因分析:(1)题目还是做少了 (2)做题目的时候在放音乐 (3)最近脑袋都不愿意想思路总是想一些无用的 改进:(1)以后做题目坚决不开音乐,QQ直接挂隐身 ...
- POJ 2488 深搜dfs、
题意:模拟国际象棋中马的走棋方式,其实和中国象棋的马走的方式其实是一样的,马可以从给定的方格棋盘中任意点开始,问是否能遍历全部格子,能的话输出字典序最小的走棋方式,否则输出impossible 思路: ...
- 深搜+回溯 POJ 2676 Sudoku
POJ 2676 Sudoku Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 17627 Accepted: 8538 ...
- poj 3249 Test for Job (记忆化深搜)
http://poj.org/problem?id=3249 Test for Job Time Limit: 5000MS Memory Limit: 65536K Total Submissi ...
- (深搜)Sum It Up -- poj --1564
链接: http://poj.org/problem?id=1564 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=88230#probl ...
- 广搜,深搜,单源最短路径,POJ(1130),ZOJ(1085)
题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=85 http://poj.org/problem?id=1130 这 ...
- Poj(2488),按照字典序深搜
题目链接:http://poj.org/problem?id=2488 思路:按照一定的字典序深搜,当时我的想法是把所有的可行的路径都找出来,然后字典序排序. 后来,凡哥说可以在搜索路径的时候就按照字 ...
- POJ 2386 Lake Counting (简单深搜)
Description Due to recent rains, water has pooled in various places in Farmer John's field, which is ...
随机推荐
- 使用Alcatraz来管理Xcode插件(转)
转自唐巧的博客:http://blog.devtang.com/blog/2014/03/05/use-alcatraz-to-manage-xcode-plugins/ 简介 Alcatraz是一个 ...
- NSOperation GCD 对比 (附NSOperation演练)
项目中使用NSOperation的优点是NSOperation是对线程的高度抽象,在项目中使用它,会使项目的程序结构更好子类化NSOperation的设计思路,是具有面向对象的优点(复用.封装),使得 ...
- 【10-25】OOP基础-飞机游戏知识点
知识点 鼠标适配器类为抽象类,使用匿名子类实现鼠标事件的重写,创建一个鼠标适配器对象 添加鼠标事件监听器到JPanel对象实现鼠标的响应 创建定时器Timer对象,在定时器的任务列表方法schedul ...
- SQl语句学习笔记(二)
merge into when matched then... when not mached then... merge into t_road_pre_parameter a fr ...
- ActiveMQ 目录
(1) ActiveMQ简介 (2) JMS基本概念和模型 (3) JMS的可靠性 (4) ActiveMQ结合Spring开发 (5)ActiveMQ支持的传输协议 (6)ActiveMQ消息存储持 ...
- Java字节流:InputStream OutputStream
字节输入流:InputStream 类声明: public abstract class InputStream implements Closeable 位于java.io包下,是一个抽象类. 官方 ...
- 导航菜单:jQuery粘性滚动导航栏效果
粘性滚动是当导航在滚动过程中会占粘于浏览器上,达到方便网站页面浏览的效果,也是一种用户体验,下面我们看一下是怎么实现的: jQuery的 smint插件,也是一个导航菜单固定插件.当页滚动时,导航菜单 ...
- Mongoose简单的连表查询
原文摘自我的前端博客,欢迎大家来访问 http://www.hacke2.cn 像我这篇文章所说的基于Node.js + jade + Mongoose 模仿gokk.tv,当时停止开发是因为我深深的 ...
- 文件操作 fopen() fclose()
#define _CRT_SECURE_NO_DEPRECATE /*取消scanf,printf不安全之类的错误提示*/ /* fopen example */ #include <stdio ...
- php综合应用
php面试题之五--PHP综合应用(高级部分) 五.PHP综合应用 1.写出下列服务的用途和默认端口(新浪网技术部) ftp.ssh.http.telnet.https ftp:File Transf ...