poj 1167 简单搜索
这题主要是注意好限定的条件
条件1:每个公交车都至少要到达两次
条件2:公交车相同时间和相同间隔是属于两种车辆
条件3:不同的车可能到达时间相同
上述都是深搜的重要条件:
#include<algorithm>
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
using std::sort;
int const N = ;
struct node
{
int begin,interval,Count;
bool operator <(const node &tmp)const
{
return Count>tmp.Count;
}
}bus[N];
int sum[N],n,val,cnt,ans;
int Min(int a,int b)
{
return a<b?a:b;
}
bool judge(int b,int inter)
{
for(int i=b;i<=;i+=inter)
{
if(sum[i]==)
return false;
}
return true;
}
void dfs(int t,int num)
{
if(n<=)
{
ans=Min(num,ans);
return ;
}
for(int i=t;i<cnt;i++)
{
if(num+(n/bus[i].Count)>=ans)return ;
if(judge(bus[i].begin,bus[i].interval))
{
for(int j=bus[i].begin;j<=;j+=bus[i].interval)
{
sum[j]--;
n--;
}
dfs(i,num+);
for(int j=bus[i].begin;j<=;j+=bus[i].interval)
{
sum[j]++;
n++;
}
}
}
}
int main()
{
while(~scanf("%d",&n))
{
memset(sum,,sizeof(sum));
cnt=;
for(int i=;i<n;i++)
{
scanf("%d",&val);
sum[val]++;
}
for(int i=;i<=;i++)
{
if(sum[i]==)continue;
for(int j=i+;j<=-i;j++)
{
if(judge(i,j))
{
bus[cnt].begin=i;
bus[cnt].interval=j;
bus[cnt].Count=(-i)/j+;
cnt++;
}
}
}
ans=;
sort(bus,bus+cnt);
dfs(,);
printf("%d\n",ans);
}
return ;
}
poj 1167 简单搜索的更多相关文章
- POJ 2243 简单搜索 (DFS BFS A*)
题目大意:国际象棋给你一个起点和一个终点,按骑士的走法,从起点到终点的最少移动多少次. 求最少明显用bfs,下面给出三种搜索算法程序: // BFS #include<cstdio> #i ...
- poj 3279 Fliptile (简单搜索)
Fliptile Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 16558 Accepted: 6056 Descrip ...
- 简单搜索 kuangbin C D
C - Catch That Cow POJ - 3278 我心态崩了,现在来回顾很早之前写的简单搜索,好难啊,我怎么写不出来. 我开始把这个写成了dfs,还写搓了... 慢慢来吧. 这个题目很明显是 ...
- ElasticSearch 5学习(4)——简单搜索笔记
空搜索: GET /_search hits: total 总数 hits 前10条数据 hits 数组中的每个结果都包含_index._type和文档的_id字段,被加入到_source字段中这意味 ...
- nyoj 284 坦克大战 简单搜索
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=284 题意:在一个给定图中,铁墙,河流不可走,砖墙走的话,多花费时间1,问从起点到终点至少 ...
- 分布式搜索ElasticSearch构建集群与简单搜索实例应用
分布式搜索ElasticSearch构建集群与简单搜索实例应用 关于ElasticSearch不介绍了,直接说应用. 分布式ElasticSearch集群构建的方法. 1.通过在程序中创建一个嵌入es ...
- solr简单搜索案例
solr简单搜索案例 使用Solr实现电商网站中商品信息搜索功能,可以根据关键字搜索商品信息,根据商品分类.价格过滤搜索结果,也可以根据价格进行排序,实现分页. 架构分为: 1. solr服务器 2. ...
- 和我一起打造个简单搜索之SpringDataElasticSearch入门
网上大多通过 java 操作 es 使用的都是 TransportClient,而介绍使用 SpringDataElasticSearch 的文章相对比较少,笔者也是摸索了许久,接下来本文介绍 Spr ...
- 和我一起打造个简单搜索之SpringDataElasticSearch关键词高亮
前面几篇文章详细讲解了 ElasticSearch 的搭建以及使用 SpringDataElasticSearch 来完成搜索查询,但是搜索一般都会有搜索关键字高亮的功能,今天我们把它给加上. 系列文 ...
随机推荐
- 鼠标事件(window.onload的自己的错误)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 进程,线程(thread)
每个正在系统上运行的程序都是一个进程.每个进程包含一到多个线程.进程也可能是整个程序或者是部分程序的动态执行.线程是一组指令的集合,或者是程序的特殊段, 它可以在程序里独立执行.也可把它理解为代码运行 ...
- win7 蛋疼的时间格式转化
win7系统 获得系统时间为 2015年1月1日 星期5 10:10 数据库中时间格式 是不认识的 转化为 DateTime.Now.ToString("yyyy-MM-dd HH:mm:s ...
- VB winform自动更新 笔记
看网上各种自动更新方法,最后自己找了个比较简单的,在此做个笔记. 服务器上的共享盘里存放生成的可执行文件和XML格式的配置: <?xml version="1.0" enco ...
- 安装JDK设置环境变量
PS:之前在CSDN上写的文章,现在转到博客园~ 在安装过程中第一次让选择jdk的安装路径,第二次让选择jre的安装路径.两者不可以在同一个文件夹下,否则在cmd中运行javac时会报:摘不到或无法加 ...
- 查找计算机IP及占用端口
1. 在电脑启动搜索框,输入cmd回车打开命令提示符窗口. 输入ipconfig,就可以查看电脑的子网淹没,默认网关,IP等信息. 2. 查看本机开放的端口,即已被占用的端口号. 命令: netsta ...
- margin系列之keyword auto
本系列摘自 px; margin: auto; /* 或者 margin: 0 auto; */ } HTML: <div id="demo"> <p>恩 ...
- 使用phpize安装php模块
1.下载包 2./usr/local/php/bin/phpize 3../configure --enable-soap --with-php-config=/usr/local/php/bin/ ...
- PHP 5.6.6 上运行 ecshop 2.7.3 不兼容问题整合
在安装完php在自己的服务器上以后, 发现在静态网页上出现了很多 error. 在网上查找过后发现,大部分问题是因为 PHP发展到PHP5.5版本以后,有了很多细微的变化.而ECSHOP官方更新又太慢 ...
- Dev-C++之开启装逼效果
Dev-C++是个不错的C++IDE——在10年前,它是很不错,在现在,它是个以界面丑陋和调试像吃粑粑这两点著称,如下图.