搜索学习(3)--NYOJ1058--部分和问题

挑战编程--初级篇:部分和问题(P30)

代码实现:

//部分和问题:
int a[maxn];
int n,m,i,j,k;
bool dfs(int i,int sum)     //已经从前i项得到了和sum,然后对于i项之后的进行分支
{
    if(i==n) return sum==k; //如果前n项都计算过了,则返回sum是否与k相等
    if(dfs(i+1,sum)) return true;//不加上a[i]的情况
    if(dfs(i+1,sum+a[i])) return true;//加上a[i]的情况
    return false;           //无论是否加上a[i]都不能凑成k就返回false;
}
void solve
{
    if(dfs(0,0)) printf("Yes\n");
    else printf("No\n");
}

拓展,输出路径,例题NYOJ1058  链接:click here

思路:DFS入门,用到了一个减枝

代码:

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
int n,k,a[25],sum[25];
bool vis[25],flag;
void dfs(int i, int ssum)
{
    if(i>=0&&!flag)
    {
        if(ssum+sum[i]<k)
        {
            return;
        }
        if (ssum+a[i]<=k)
        {
            vis[i]=true;
            dfs(i-1,ssum+a[i]);
            vis[i]=false;
        }
        dfs(i-1,ssum);
        if (ssum==k&&!flag)
        {
            flag=true;
            cout<<"YES"<<endl;
            for (int i=1;i<=n;i++)
            {
                if (vis[i])
                {
                    cout<<a[i]<<' ';
                }
            }
            cout<<endl;
        }
    }
}
int main()
{
    while(cin>>n>>k)
    {
        flag=false;
        for(int i=1;i<=n;i++)
        {
            cin>>a[i];
            sum[i]=sum[i-1]+a[i];
        }
        dfs(n,0);
        if(!flag)
        {
        cout<<"NO"<<endl;
        }
    }
    return 0;
}
时间: 2024-10-24 09:19:07

搜索学习(3)--NYOJ1058--部分和问题的相关文章

[转载]SharePoint 2013搜索学习笔记之搜索构架简单概述

Sharepoint搜索引擎主要由6种组件构成,他们分别是爬网组件,内容处理组件,分析处理组件,索引组件,查询处理组件,搜索管理组件.可以将这6种组件分别部署到Sharepoint场内的多个服务器上,组成适合需求的Sharepoint搜索场,搜索场的体系结构设计主要参考量是爬网内容量,微软根据爬网内容量不同将搜索场分为大型场,中型场和小型场,更多详细信息可参考: SharePoint Server 2013 中的搜索概述和在SharePoint Server 2013 中规划企业搜索体系结构.

[转载]SharePoint 2013搜索学习笔记之自定义结果源

搜索中心新建好之后在搜索结果页上会默认有所有内容,人员,对话,视频这四个结果分类,每个分类会返回指定范围的搜索结果,这里我再添加了部门日志结果分类,搜索这个分类只会返回部门日志内容类型的搜索结果,要实现这个效果,步骤如下: 第一步,进入管理中心,进入管理应用程序,点击Search Service 应用程序,进入搜索管理页,再点击结果源如图: 第二步,新建结果源,填写名称,协议填写本地sharepoint,凭据信息选择默认, 第三步,点击启动查询生成器,生成查询语句,最后点保存,接着继续点新建内容

SEO艺术——使用高级搜索 学习体会

前言: 在这个信息大爆炸的时代,网上的信息鱼龙混杂,有的时候我们费尽体力脑力也得不到自己想要的结果.在这个环境下,学习一个高级的搜索技术是一个现代人越来越需要掌握的一门技术和方法.于是,自己利用自己的业余时间,学习SEO的艺术,学会使用高级搜索技巧的同时,也学习影响网站搜索排名的重要因素和提高网站搜索排名的重要方法. 这是一门非常有用的技术,对于一个即将走向IT行业岗位的人来说,学习SEO技术可以大大提高自己对IT这个行业的认识和理解.借来了SEO的艺术这本书,进行初步的学习,现在整理一下高级搜

Sharepoint2013搜索学习笔记之设置业务数据内容源(六)

Sharepoint搜索爬网组件支持爬Business Data Connectivity Service 承载的外部数据,关于Business Data Connectivity Service设置外部数据源,详请请参考:如何:在 SharePoint 2013 中为 SQL Server 创建外部内容类型,爬网设置步骤如下: 第一步,进入管理中心,点击管理应用程序,点击search service 应用程序进入到搜索管理配置页面,点击内容源 第二步,点击新建内容源,给内容源命名,在爬网内容类

Sharepoint2013搜索学习笔记之搜索构架简单概述(一)

Sharepoint搜索引擎主要由6种组件构成,他们分别是爬网组件,内容处理组件,分析处理组件,索引组件,查询处理组件,搜索管理组件.可以将这6种组件分别部署到Sharepoint场内的多个服务器上,组成适合需求的Sharepoint搜索场,搜索场的体系结构设计主要参考量是爬网内容量,微软根据爬网内容量不同将搜索场分为大型场,中型场和小型场,更多详细信息可参考:SharePoint Server 2013 中的搜索概述和在SharePoint Server 2013 中规划企业搜索体系结构. S

Sharepoint2013搜索学习笔记之设置sharepoint网站内容源(五)

第一步,进入管理中心,点击管理应用程序,点击search service 应用程序进入到搜索管理配置页面,点击内容源 第二步,点击新建内容源,给内容源命名,在爬网内容类型中选sharepoint网站,输入sharepoint网址地址,注意下图 sps3的意思是对这个sharepoint网址进行人员搜索,如果需要对人员进行搜索,需要提前进行一些配置,参考如下链接: 在sharepoint中部署人员搜索 第三步,爬网计划点启用增量爬网,创建增量爬网计划,注意,完全爬网会对所有内容源进行爬网,增量爬网

Sharepoint2013搜索学习笔记之创建搜索服务(二)

第一步,进入管理中心,点击管理服务器上的服务 第二步,在服务器上选择需要承载搜索服务的服务器,并启动服务列表上的sharepoint server search 第三步,从管理中心进入管理服务应用程序 第四步,新建search service application 第五步,在弹出的新建窗口分别填好相应信息点击确定,主要注意的是 应用程序池可以选择已经有的,也可以自己填一个新的名称,选择填写新的之后,程序会在稍后新建一个应用程序池,一般推荐新建应用程序池. 默认情况,爬网组件会用配置好的搜索服务

Sharepoint2013搜索学习笔记之修改搜索拓扑(三)

搜索服务新建好之后可以从管理中心,应用程序管理页面,进入搜索服务的管理页面,进入管理页面之后可以看到当前sharepoint场的搜索拓扑结构. 如果sharepoint场内有多台服务器,需要将搜索组件部署到这些服务器上,可以在装有sharepoint管理中心的服务器上启动sharepoint命令行管理程序,通过口令的方式对搜索拓扑进行更改. 注意: 向新的服务器添加搜索组件之前,必须先启动新增服务器上的搜索服务实例.搜索服务实例将启动搜索服务(OSearch15 和 SPSearchHostCo

Sharepoint2013搜索学习笔记之设置外网内容源(四)

第一步,进入管理中心,点击管理应用程序,点击search service 应用程序进入到搜索管理配置页面,选择内容源 第二步,点击新建内容源,给内容源命名,在爬网内容类型中选网站,在爬网设置中选中仅对每个开始地址的第一个页面进行爬网,在这一步需要注意爬网设置的选择,如果选择自定义,服务器越距配置过大可能会造成对全网进行爬网,让你的服务器资源急剧耗尽. 第三步,爬网计划点启用增量爬网,创建增量爬网计划,注意,完全爬网会对所有内容源重新进行爬网,增量爬网只访问上次爬网之后被更新的内容.新建的内容源就

Sharepoint2013搜索学习笔记之自定义结果精简分类(八)

搜索结果页左边的结果精简分类是可以根据搜索结果自定义的,在搜索的部门日志结果集页面上我搜索测试关键字,左边分类导航在默认分类的基础上增加了一个日志类型的分类,如下图: 要实现这个效果,导航到之前定义的depresult.aspx页面上,点编辑页面 Sharepoint2013搜索学习笔记之自定义结果精简分类(八)