暴力DFS+验证。

验证如果是暴力检验可能复杂度会太高,事实上可以o(1)进行,这个可以o(n*n)dp预处理。

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std; const int maxn=;
bool flag[maxn];
bool r;
int a[maxn];
int n,sum; int mul[][]; bool check(int s)
{
if(s==sum) return ;
return ;
} void dfs(int deep,int tot)
{
if(deep==n-)
{
if(check(tot))
{
r=;
for(int i=;i<=deep;i++)
{
printf("%d",a[i]);
if(i<deep) printf(" ");
else printf("\n");
}
}
return ;
} for(int i=;i<=n;i++)
{
if(flag[i]==)
{
flag[i]=;
a[deep+]=i;
dfs(deep+,tot+a[deep+]*mul[n][deep++]); if(r==) return;
flag[i]=;
}
}
} void init()
{
memset(mul,,sizeof mul); mul[][]=;
for(int i=;i<=;i++)
{
for(int j=;j<=;j++) mul[i][j]=mul[i-][j];
for(int j=;j<=+;j++) mul[i][j]=mul[i][j]+mul[i-][j-];
}
} int main()
{
init();
while(~scanf("%d%d",&n,&sum))
{
r=; memset(flag,,sizeof flag);
for(int i=;i<=n;i++)
{
flag[i]=;
a[]=i;
dfs(,a[]*mul[n][+]);
flag[i]=;
}
}
return ;
}

POJ 3187 Backward Digit Sums的更多相关文章

  1. POJ 3187 Backward Digit Sums 枚举水~

    POJ 3187  Backward Digit Sums http://poj.org/problem?id=3187 题目大意: 给你一个原始的数字序列: 3   1   2   4  他可以相邻 ...

  2. 穷竭搜索:POJ 3187 Backward Digit Sums

    题目:http://poj.org/problem?id=3187 题意: 像这样,输入N : 表示层数,输入over表示最后一层的数字,然后这是一个杨辉三角,根据这个公式,由最后一层的数,推出第一行 ...

  3. poj 3187 Backward Digit Sums(穷竭搜索dfs)

    Description FJ and his cows enjoy playing a mental game. They write down the numbers to N ( <= N ...

  4. POJ 3187 Backward Digit Sums (递推,bruteforce)

    第1行j列的一个1加到最后1行满足杨辉三角,可以先推出组合数来 然后next_permutation直接暴. #include<cstdio> #include<iostream&g ...

  5. POJ 3187 Backward Digit Sums (dfs,杨辉三角形性质)

    FJ and his cows enjoy playing a mental game. They write down the numbers from 1 to N (1 <= N < ...

  6. Backward Digit Sums(POJ 3187)

    Backward Digit Sums Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5495   Accepted: 31 ...

  7. 【POJ - 3187】Backward Digit Sums(搜索)

    -->Backward Digit Sums 直接写中文了 Descriptions: FJ 和 他的奶牛们在玩一个心理游戏.他们以某种方式写下1至N的数字(1<=N<=10). 然 ...

  8. BZOJ1653: [Usaco2006 Feb]Backward Digit Sums

    1653: [Usaco2006 Feb]Backward Digit Sums Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 207  Solved:  ...

  9. Backward Digit Sums(暴力)

    Backward Digit Sums Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5664   Accepted: 32 ...

随机推荐

  1. JPA 系列教程8-双向一对一共享主键

    双向一对一共享主键的ddl语句 CREATE TABLE `t_person` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(25 ...

  2. scrollview上面的图片不上下滑动

    self.automaticallyAdjustsScrollViewInsets= NO;

  3. PHP显示超全局变量和显示程序执行时间

    <?php header('Content-type: text/html; charset=utf-8'); $t1 = microtime(true);//记录脚本刚开始运行是的时间戳 ec ...

  4. windows程序设计(三)

    MFC所有封装类一共200多个,但在MFC的内部技术不只是简单的封装 MFC的内部总共有六大关键技术,架构起了整个MFC的开发平台 一.MFC的六大关键技术包括: a).MFC程序的初始化过程 b). ...

  5. lucene中Field.Index,Field.Store的一些设置

    lucene在doc.add(new Field("content",curArt.getContent(),Field.Store.NO,Field.Index.TOKENIZE ...

  6. Android与路由器连接服务

    界面UI: package my.work.Library; import java.util.Timer; import java.util.TimerTask; import java.util. ...

  7. linux自动化构建工具-scons指南

    1.scons是linux下的自动构建工具 scons是用Python编写的,使用scons之前需确认是否已经安装了Python.(在系统的命令行中运行python -V或python --versi ...

  8. json中文乱码问题

    首先在 tomcat的 D:\apache-tomcat-7.0.57\conf\server.xml里添加中文编码 <Connector port="8080" proto ...

  9. psy & obv

    PSY和OBV 1,PSY心理线是投资者对股市涨跌产生心理波动的情绪指标.相反,当PSY曲线向下跌破PSYMA曲线后,为卖出时机..当PSY曲线向上突破PSYMA曲线后,开始向下回调至PSYMA曲线, ...

  10. cakephp 的事件系统(Getting to grips with CakePHP’s events system), 基于观察者模式

    This article was written about CakePHP 2.x and has been untested with CakePHP 3.x CakePHP seems to g ...