搜索
zhengdd1
There is nothing sadder than a dream delays until it fades forever
展开
-
POJ1064
http://poj.org/problem?id=1064题意:知道N段电缆的长度,从他们中切割出K条长度相同的电缆,求最大可以切多长,答案保留2位小数。二分搜索。#include<iostream>#include<cstdio>#include<algorithm>#include<queue>#include<cmath>using namespace std;const in原创 2016-05-11 20:53:51 · 549 阅读 · 0 评论 -
bfs
有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步#include<bits/stdc++.h>using namespace std;typedef long long LL;const int maxn = 400 + 10;const int dx[] = {1,1,-1,-1,2,2,-2,-2};const int dy[原创 2016-11-29 13:37:55 · 204 阅读 · 0 评论 -
枚举
给你n根火柴棍,你可以拼出多少个形如“A+B=C”的等式?等式中的A、B、C是用火柴棍拼出的整数(若该数非零,则最高位不能是0)。用火柴棍拼数字0-9的拼法如图所示:#include<bits/stdc++.h>using namespace std;typedef long long LL ;const int hc[10]={6,2,5,5,4,5,6,3,7,6};int n;int j原创 2016-11-29 13:39:15 · 240 阅读 · 0 评论 -
dfs
已知 n 个整数 x1,x2,…,xn,以及一个整数 k(k<n)。从 n 个整数中任选 k 个整数相加,可分别得到一系列的和。例如当 n=4,k=3,4 个整数分别为 3,7,12,19 时,可得全部的组合与它们的和为:3+7+12=223+7+19=297+12+19=383+12+19=34。现在,要求你计算出和为素数共有多少种。例如上例,只有一种的和为素数:3+7+19=29)。原创 2016-11-29 13:39:47 · 201 阅读 · 0 评论 -
dfs
我们要求找出具有下列性质数的个数(包含输入的自然数n):先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理:1.不作任何处理;2.在它的左边加上一个自然数,但该自然数不能超过原数的一半;3.加上数后,继续按此规则进行处理,直到不能再加自然数为止.int step ;void dfs(int x){ for(int i =1;i<=x/2;i++)原创 2016-11-29 13:40:11 · 453 阅读 · 0 评论 -
可重集全排列
可重集的全排列int n;int a[maxn];int p[maxn];void dfs(int step){ if(step==n) { for(int i = 0;i<n;i++) { printf("%d ",a[i]); } printf("\n"); } else原创 2016-11-29 13:44:38 · 590 阅读 · 0 评论 -
全排列
全排列std::next_permutation提供升序、std::prev_permutation提供降序。void dfs(int step){ if(step==n) { for(int i = 0;i<n;i++) printf("%d ",s[i]); printf("\n"); }else { for(原创 2016-11-29 13:45:00 · 260 阅读 · 0 评论 -
选数-计蒜客
本题的思路应该就是先筛选出一个素数表。。不过数据范围太大20*5000000,直接上筛法肯定爆空间,所以我们需要优化一下,我们这时候可以直接判断是不是素数时间复杂度sqrt(n),然后我们应该搜索所有的k个数字的组合,dfs搜索下,可以分为当前选或者不选,选了之后记得回溯现场,边界条件判断一下,是否递归到了选到了第k个数字了。import java.io.BufferedInputStream;原创 2017-03-30 15:18:00 · 349 阅读 · 0 评论