题目链接: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,搜索的更多相关文章

  1. 记忆化搜索(DP+DFS) URAL 1183 Brackets Sequence

    题目传送门 /* 记忆化搜索(DP+DFS):dp[i][j] 表示第i到第j个字符,最少要加多少个括号 dp[x][x] = 1 一定要加一个括号:dp[x][y] = 0, x > y; 当 ...

  2. 记忆化搜索(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]) + ...

  3. 记忆化搜索(DFS+DP) URAL 1501 Sense of Beauty

    题目传送门 /* 题意:给了两堆牌,每次从首部取出一张牌,按颜色分配到两个新堆,分配过程两新堆的总数差不大于1 记忆化搜索(DFS+DP):我们思考如果我们将连续的两个操作看成一个集体操作,那么这个操 ...

  4. ural 1698. Square Country 5(记忆化搜索)

    1698. Square Country 5 Time limit: 2.0 secondMemory limit: 64 MB The first arithmetical operation ta ...

  5. Ural 1183 Brackets Sequence(区间DP+记忆化搜索)

    题目地址:Ural 1183 最终把这题给A了.. .拖拉了好长时间,.. 自己想还是想不出来,正好紫书上有这题. d[i][j]为输入序列从下标i到下标j最少须要加多少括号才干成为合法序列.0< ...

  6. URAL 1501. Sense of Beauty(记忆化搜索)

    题目链接 本来暴力写个TLE了,加上记忆化就A了. #include <cstring> #include <cstdio> #include <string> # ...

  7. URAL 1152. False Mirrors (记忆化搜索 状压DP)

    题目链接 题意 : 每一颗子弹破坏了三个邻近的阳台.(第N个阳台是与第1个相邻)射击后后的生存的怪物都对主角造成伤害- 如此,直到所有的怪物被消灭,求怎样射击才能受到最少伤害. 思路 : 状压,数据不 ...

  8. URAL 1698. Square Country 5(记忆化搜索)

    题目链接 题意 : 自守数的定义:如果某个数的平方的末尾几位数等于这个数,那么就称这个数为自守数.例如5*5=25,则5就是自守数.让你求不超过n位的自守数有多少 思路 : 实际上,自守数还有两个性质 ...

  9. ural 1250. Sea Burial

    1250. Sea Burial Time limit: 1.0 secondMemory limit: 64 MB There is Archipelago in the middle of a s ...

随机推荐

  1. Leetcode: Data Stream as Disjoint Intervals && Summary of TreeMap

    Given a data stream input of non-negative integers a1, a2, ..., an, ..., summarize the numbers seen ...

  2. Lintcode: Maximum Subarray Difference

    Given an array with integers. Find two non-overlapping subarrays A and B, which |SUM(A) - SUM(B)| is ...

  3. Oracle-数据库

    Oracle 1.特点 关系型数据库 采用二维表的行使管理数据库 具有行和列  表间存在关联关系 2.安装 数据库(11g) 版本类型 32位    64位  安装类型 桌面类 本机开发 服务器类 生 ...

  4. PHP检测用户名是否存在

    reg.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...

  5. [转]-Dmaven.multiModuleProjectDirectory system propery is not set. 解决方案 适用于myeclipes 和 eclipes

    eclipse中使用maven插件的时候,运行run as maven build的时候报错 -Dmaven.multiModuleProjectDirectory system propery is ...

  6. Java基础(50):二分法查找的非递归实现和递归实现(完整代码可运行,参考VisualGO理解更佳)

    一.概念 二分查找算法也称折半查找,是一种在有序数组中查找某一特定元素的搜索算法. 二.算法思想 搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束:如果某一特定元素大于或者 ...

  7. ant的那些闹挺事

    今日发现了一个问题,用ant+hudson去运行脚本代码时,突然ant报错: 即使我在ant的build文件中指定了basedir=“C:/Users/145064/.hudson/jobs/haix ...

  8. 经过本人 6 年.net 工作经验证明 .net 工资确实比 Java 低

    很久没有逛博客园了,很久没有出来吐槽了.怎么呢?生活压力大,就需要找地方吐槽. 排版不怎么好,文笔不怎么好,可以看出我不是雇佣的写手. 工作到今夏,已经有6个年头了,一直使用着.net技术,但是最近工 ...

  9. MVC4 下DropDownList使用方法

    与MVC3相比,差别很大: 表现形式一: public ActionResult Main() { List<SelectListItem> items = new List<Sel ...

  10. weka 文本分类(1)

    一.初始化设置 1 jvm out of memory 解决方案: 在weka SimpleCLI窗口依次输入java -Xmx 1024m 2 修改配置文件,使其支持中文: 配置文件是在Weka安装 ...