ural 1115,搜索
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1115
题意:n个军舰,m个海岸线,各个长度给出,求n个军舰怎么组成这些海岸线。
思路很简单,就是深搜,好吧,我WA了很多次在test10,错的地方是在回溯,我在处理回溯的时候,只考虑了一条海岸线的回溯,要是下个海岸线结果不能成功了,就要回溯到前一个海岸线,而我直接输出了。
解决办法: 就是把每一个军舰插入后深搜,这里有个要注意的地方是,一碰到结果,直接退出所有栈,exit(0),这样就解决了拆前一根海岸线。
两个代码都附到下面。
/*
#include <bits/stdc++.h>
using namespace std; int n,m; int dist[105];
int vis[105];
int ans[15];
int t;
int cnt; bool dfs(int k,int ans)
{
if(k>=ans)
return true;
for(int i=0; i<n; i++)
{
if(vis[i]==false&&(k+dist[i])<=ans)
{
cnt++;
vis[i] = t;
if(dfs(k+dist[i],ans)==true)
return true;
vis[i] = 0;
--cnt;
}
}
return false;
} bool cmp(int a,int b)
{
return a>b;
} int main()
{
scanf("%d%d",&n,&m);
for(int i=0; i<n; i++)
scanf("%d",&dist[i]);
sort(dist,dist+n);
for(int i=0; i<m; i++)
scanf("%d",&ans[i]); t = 1;
for(int i=0; i<m; i++)
{
cnt = 0;
if(dfs(0,ans[i]))
{
printf("%d\n",cnt);
for(int i=0; i<n; i++)
if(vis[i]==t) {
printf("%d ",dist[i]);
}
puts("");
t++;
}
}
return 0;
}
*/
#include <bits/stdc++.h>
using namespace std; int a[],len[];
bool vis[];
vector<int> ans[];
int n,m; void dfs(int x)
{
if(x==m)
{
for(int i=; i<m; i++)
{
printf("%d\n",ans[i].size());
for(int j=; j<ans[i].size();j++)
printf("%d ",ans[i][j]);
puts("");
}
exit();
}
for(int i=n-; i>=; i--)
{
if(!vis[i]&&a[i]<=len[x])
{
len[x] -= a[i];
vis[i] = ;
ans[x].push_back(a[i]);
if(!len[x]) dfs(x+);
else dfs(x);
len[x] +=a[i];
vis[i] = ;
ans[x].pop_back();
}
}
} int main()
{
scanf("%d%d",&n,&m);
for(int i=; i<n; i++)
scanf("%d",&a[i]);
sort(a,a+n);
for(int i=; i<m; i++)
scanf("%d",&len[i]);
dfs();
return ;
}
ural 1115,搜索的更多相关文章
- 记忆化搜索(DP+DFS) URAL 1183 Brackets Sequence
题目传送门 /* 记忆化搜索(DP+DFS):dp[i][j] 表示第i到第j个字符,最少要加多少个括号 dp[x][x] = 1 一定要加一个括号:dp[x][y] = 0, x > y; 当 ...
- 记忆化搜索(DFS+DP) URAL 1223 Chernobyl’ Eagle on a Roof
题目传送门 /* 记忆化搜索(DFS+DP):dp[x][y] 表示x个蛋,在y楼扔后所需要的实验次数 ans = min (ans, max (dp[x][y-i], dp[x-1][i-1]) + ...
- 记忆化搜索(DFS+DP) URAL 1501 Sense of Beauty
题目传送门 /* 题意:给了两堆牌,每次从首部取出一张牌,按颜色分配到两个新堆,分配过程两新堆的总数差不大于1 记忆化搜索(DFS+DP):我们思考如果我们将连续的两个操作看成一个集体操作,那么这个操 ...
- ural 1698. Square Country 5(记忆化搜索)
1698. Square Country 5 Time limit: 2.0 secondMemory limit: 64 MB The first arithmetical operation ta ...
- Ural 1183 Brackets Sequence(区间DP+记忆化搜索)
题目地址:Ural 1183 最终把这题给A了.. .拖拉了好长时间,.. 自己想还是想不出来,正好紫书上有这题. d[i][j]为输入序列从下标i到下标j最少须要加多少括号才干成为合法序列.0< ...
- URAL 1501. Sense of Beauty(记忆化搜索)
题目链接 本来暴力写个TLE了,加上记忆化就A了. #include <cstring> #include <cstdio> #include <string> # ...
- URAL 1152. False Mirrors (记忆化搜索 状压DP)
题目链接 题意 : 每一颗子弹破坏了三个邻近的阳台.(第N个阳台是与第1个相邻)射击后后的生存的怪物都对主角造成伤害- 如此,直到所有的怪物被消灭,求怎样射击才能受到最少伤害. 思路 : 状压,数据不 ...
- URAL 1698. Square Country 5(记忆化搜索)
题目链接 题意 : 自守数的定义:如果某个数的平方的末尾几位数等于这个数,那么就称这个数为自守数.例如5*5=25,则5就是自守数.让你求不超过n位的自守数有多少 思路 : 实际上,自守数还有两个性质 ...
- ural 1250. Sea Burial
1250. Sea Burial Time limit: 1.0 secondMemory limit: 64 MB There is Archipelago in the middle of a s ...
随机推荐
- 转:JAVA强制类型转换
object对象转换为String的一些总结 ----------------------------------------------------------------------------- ...
- Sikuli增强包
一.前提准备1) VCForPython27.msi2) Cython安装包3) pyjnius安装包4) sikuli_cpython安装包5) SLF4J文件包二.安装过程1) VCF ...
- 转:python webdriver API 之操作测试对象
一般来说,所有有趣的操作与页面交互都将通过 WebElement 接口,包括上一节中介绍的对象定位,以及本节中需要介绍的常对象操作.webdriver 中比较常用的操作元素的方法有下面几个: cle ...
- 活动组件(五):一个activity的例子
建立两个Activity,一个是NormalActivity,另一个是DialogActivity.首先建立这两个Activity的布局文件,如下图: 然后编写这连个Activity,如下: 接着对这 ...
- 杭电ACM分类
杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze ...
- Android 仿土巴兔选择效果
1,前两天在群里看到有人在讨论土巴兔的选择装修风格的效果,自己也想实现,果断百度一下,有些好的文章,就花了些时间来分析了下,先看看别人土巴兔原装的功能 2,可以看到,基本上可以使用一个vviewpag ...
- 直关的sql 联级更新语句
在sql-server中用这种写法最直观:UPDATE a SET a.c = b.c FROM table1 ainner join table2 b on b.a=a.aWHERE a.c is ...
- 夺命雷公狗---DEDECMS----6快速入门之总结篇
我们dedecms四大表分别是: dede_channeltype(模型表) dede_arctype(栏目表) dede_archives(文章主表) dede_addonXXXX(附加表) 使用d ...
- Left Join 与Right Join 与 Inner Join 与 Full Join的区别
首先看看Left Join 与Right Join 与 Inner Join 与 Full Join对表进行操作后得到的结果. 在数据库中新建两张表,并插入要测试的数据. 新建表: USE [Test ...
- sql server 2008 安装过程与创建建sql server登录用户
1.sql server 下载安装包路径:http://pan.baidu.com/s/1qWuzddq 2.安装过程图解教程 ,参照网址:http://jingyan.baidu.com/album ...